Skip to content

Commit a2abd79

Browse files
authored
Release Save selected tracks floating Input FX windows to slot v1.00 (ReaTeam#1190)
1 parent 4b3beb1 commit a2abd79

3 files changed

+78
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-- @description Save selected tracks floating Input FX windows to slot
2+
-- @author Edgemeal
3+
-- @version 1.00
4+
-- @metapackage
5+
-- @provides
6+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 1.lua
7+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 1.lua > edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 2.lua
8+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 1.lua > edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 3.lua
9+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 1.lua > edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Save selected tracks floating input FX windows to slot 4.lua
10+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 1.lua
11+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 1.lua > edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 2.lua
12+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 1.lua > edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 3.lua
13+
-- [main] edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 1.lua > edgemeal_Save selected tracks floating Input FX windows to slot/edgemeal_Restore tracks floating Input fx windows from slot 4.lua
14+
-- @link Thread https://forum.cockos.com/showthread.php?t=277748
15+
-- @donation Donate https://www.paypal.me/Edgemeal
16+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
-- @noindex
2+
3+
local offset = 0x1000000
4+
local track_count = reaper.CountTracks(0)
5+
6+
function View(track, guid)
7+
local track_fx_count = reaper.TrackFX_GetRecCount(track)
8+
for j = 0, track_fx_count-1 do
9+
if reaper.TrackFX_GetFXGUID(track, j+offset) == guid then
10+
local hwnd = reaper.TrackFX_GetFloatingWindow(track, j+offset)
11+
if hwnd == nil then
12+
reaper.TrackFX_Show(track, j+offset, 3) -- show floating window
13+
else
14+
reaper.TrackFX_Show(track, j+offset, 2) -- hide floating window
15+
end
16+
return
17+
end
18+
end
19+
end
20+
21+
function ShowFx(guid)
22+
for i = 0, track_count-1 do
23+
local track = reaper.GetTrack(0, i)
24+
View(track, guid)
25+
end
26+
end
27+
28+
function Main()
29+
local name = ({reaper.get_action_context()})[2]:match("([^/\\_]+).lua$")
30+
local slot = tonumber(name:match(" slot (%d+)"))
31+
if slot == nil then
32+
reaper.MB("Error reading slot # from filename","ERROR",0)
33+
return
34+
end
35+
local guids = reaper.GetExtState("Edgemeal_infx_float", tostring(slot))
36+
for guid in guids:gmatch("[^,]+") do ShowFx(guid) end
37+
end
38+
39+
Main()
40+
reaper.defer(function() end)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-- @noindex
2+
3+
local offset = 0x1000000
4+
local name = ({reaper.get_action_context()})[2]:match("([^/\\_]+).lua$")
5+
local slot = tonumber(name:match(" slot (%d+)"))
6+
if slot ~= nil then
7+
local guid = ""
8+
local sel_tracks_count = reaper.CountSelectedTracks2(0, true)
9+
for i = 0, sel_tracks_count-1 do
10+
local track = reaper.GetSelectedTrack2(0, i, true)
11+
local track_fx_count = reaper.TrackFX_GetRecCount(track)
12+
for j = 0, track_fx_count-1 do
13+
local hwnd = reaper.TrackFX_GetFloatingWindow(track, j+offset)
14+
if hwnd ~= nil then
15+
local fx_GUID = reaper.TrackFX_GetFXGUID(track, j+offset)
16+
guid = guid .. fx_GUID .. ','
17+
end
18+
end
19+
end
20+
reaper.SetExtState("Edgemeal_infx_float", tostring(slot), guid, false)
21+
end
22+
reaper.defer(function() end)

0 commit comments

Comments
 (0)