X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=scripts%2Fmixer_settings_store.lua;h=c8e329ae5b77e42f82dd6aa3daac12477997f5ca;hb=95a61717faa4b427be0e7821ee91f7df81065815;hp=ca8af27c7bd45b43ba69a0b84839bd7c416291fb;hpb=1d55ac1706fe6427252493521fe42293135939ab;p=ardour.git diff --git a/scripts/mixer_settings_store.lua b/scripts/mixer_settings_store.lua index ca8af27c7b..c8e329ae5b 100644 --- a/scripts/mixer_settings_store.lua +++ b/scripts/mixer_settings_store.lua @@ -53,10 +53,6 @@ function factory () return function () if not(isdir(global_path)) then global_ok, _, _ = os.execute('mkdir '.. global_path) if global_ok == 0 then - local default_file = ARDOUR.LuaAPI.build_filename(global_path, 'FactoryDefault-'..whoami()..'.lua') - local file = io.open(default_file, "w") - file:write("") - file:close() global_ok = true end else @@ -65,10 +61,6 @@ function factory () return function () if not(isdir(local_path)) then local_ok, _, _ = os.execute('mkdir '.. local_path) if local_ok == 0 then - local stub_file = ARDOUR.LuaAPI.build_filename(local_path, 'stub') - local file = io.open(stub_file, "w") - file:write("") - file:close() local_ok = true end else @@ -90,13 +82,6 @@ function factory () return function () until proc:isnil() end - function new_plugin(name) - for x = 0, 6 do - local plugin = ARDOUR.LuaAPI.new_plugin(Session, name, x, "") - if not(plugin:isnil()) then return plugin end - end - end - function group_by_id(id) local id = tonumber(id) for g in Session:route_groups():iter() do @@ -130,6 +115,7 @@ function factory () return function () function empty_last_store(path) --empty current file from last run local file = io.open(path, "w") + --file:write(string.format("instance = { whoami = '%s' }", whoami()) file:write("") file:close() end @@ -141,15 +127,16 @@ function factory () return function () local route_string = [[instance = { route_id = %d, route_name = '%s', - gain_control = %f, - trim_control = %f, + gain_control = %s, + trim_control = %s, pan_control = %s, muted = %s, soloed = %s, order = {%s}, cache = {%s}, group = %s, - group_name = '%s' + group_name = '%s', + pi_order = %d }]] local group_string = [[instance = { @@ -160,6 +147,7 @@ function factory () return function () local processor_string = [[instance = { plugin_id = %d, + type = %d, display_name = '%s', owned_by_route_name = '%s', owned_by_route_id = %d, @@ -169,8 +157,8 @@ function factory () return function () local group_route_string = " [%d] = %s," local proc_order_string = " [%d] = %d," - local proc_cache_string = " [%d] = '%s'," - local params_string = " [%d] = %f," + local proc_cache_string = " [%d] = {'%s', %d}," + local params_string = " [%d] = %s," --ensure easy-to-read formatting doesn't make it through local route_string = string.gsub(route_string, "[\n\t]", "") @@ -181,7 +169,7 @@ function factory () return function () local groups_to_write = {} local i = 0 - local tracks = Session:get_routes() + local tracks = Session:get_stripables() if selected then tracks = sel.tracks:routelist() end @@ -219,8 +207,9 @@ function factory () return function () end for r in tracks:iter() do - if r:is_monitor () or r:is_auditioner () then goto nextroute end -- skip special routes - + if r:is_monitor () or r:is_auditioner () or not(r:to_vca():isnil()) then goto nextroute end -- skip special routes + r = r:to_route() + if r:isnil() then goto nextroute end local order = ARDOUR.ProcessorList() local x = 0 repeat @@ -231,6 +220,7 @@ function factory () return function () x = x + 1 until proc:isnil() + local route_group = route_group_interrogate(r) if route_group then route_group = route_group:name() else route_group = "" end local rid = r:to_stateful():id():to_s() @@ -240,10 +230,15 @@ function factory () return function () local order_nmbr = 0 local tmp_order_str, tmp_cache_str = "", "" for p in order:iter() do + if not(p:to_insert():isnil()) then + type = p:to_insert():plugin(0):get_info().type + else + type = 99 + end local pid = p:to_stateful():id():to_s() if not(string.find(p:display_name(), "latcomp")) then tmp_order_str = tmp_order_str .. string.format(proc_order_string, order_nmbr, pid) - tmp_cache_str = tmp_cache_str .. string.format(proc_cache_string, pid, p:display_name()) + tmp_cache_str = tmp_cache_str .. string.format(proc_cache_string, pid, p:display_name(), type) end order_nmbr = order_nmbr + 1 end @@ -252,15 +247,16 @@ function factory () return function () route_string, rid, r:name(), - r:gain_control():get_value(), - r:trim_control():get_value(), + ARDOUR.LuaAPI.ascii_dtostr(r:gain_control():get_value()), + ARDOUR.LuaAPI.ascii_dtostr(r:trim_control():get_value()), tostring(pan), r:muted(), r:soloed(), tmp_order_str, tmp_cache_str, route_groupid_interrogate(r), - route_group + route_group, + r:presentation_info_ptr():order() ) file = io.open(path, "a") @@ -275,15 +271,16 @@ function factory () return function () local active = proc:active() local id = proc:to_stateful():id():to_s() local plug = proc:to_insert ():plugin (0) + local type = proc:to_insert():plugin(0):get_info().type local n = 0 -- count control-ports for j = 0, plug:parameter_count () - 1 do -- iterate over all plugin parameters if plug:parameter_is_control (j) then local label = plug:parameter_label (j) if plug:parameter_is_input (j) and label ~= "hidden" and label:sub (1,1) ~= "#" then - local _, _, pd = ARDOUR.LuaAPI.plugin_automation(proc, n) + --local _, _, pd = ARDOUR.LuaAPI.plugin_automation(proc, n) local val = ARDOUR.LuaAPI.get_processor_param(proc, j, true) - --print(r:name(), "->", proc:display_name(), label, val) - params[n] = val + print(r:name(), "->", proc:display_name(), label, val) + params[j] = val end n = n + 1 end @@ -292,12 +289,13 @@ function factory () return function () local tmp_params_str = "" for k, v in pairs(params) do - tmp_params_str = tmp_params_str .. string.format(params_string, k, v) + tmp_params_str = tmp_params_str .. string.format(params_string, k, ARDOUR.LuaAPI.ascii_dtostr(v)) end local proc_str = string.format( processor_string, id, + type, proc:display_name(), r:name(), r:to_stateful():id():to_s(), @@ -313,19 +311,19 @@ function factory () return function () end local store_options = { - { type = "label", col=0, colspan=1, align="left", title = "Settings name:" }, - { type = "entry", col=1, colspan=1, align="right" , key = "filename", default = Session:name(), title=""}, - { type = "label", col=0, colspan=1, align="left", title = "Selected Tracks Only:" }, - { type = "checkbox", col=1, colspan=1, align="right", key = "selected", default = false, title = ""}, - { type = "hseparator", title="", col=0, colspan = 3}, - { type = "label", col=0, colspan=1, align="left", title = "Store Settings:" }, + { type = "label", col=0, colspan=1, align="right", title = "Name:" }, + { type = "entry", col=1, colspan=1, align="left" , key = "filename", default = Session:name(), title=""}, + { type = "label", col=0, colspan=1, align="right", title = "Location:" }, { - type = "radio", col=1, colspan=3, align="right", key = "store-dir", title = "", values = + type = "radio", col=1, colspan=3, align="left", key = "store-dir", title = "", values = { - ['Global (accessible from any session)'] = 1, ['Locally (this session only)'] = 2 + ['Global (accessible from any session)'] = 1, ['Local (this session only)'] = 2 }, default = 'Locally (this session only)' }, + { type = "hseparator", title="", col=0, colspan = 3}, + { type = "label", col=0, colspan=1, align="right", title = "Selected Tracks Only:" }, + { type = "checkbox", col=1, colspan=1, align="left", key = "selected", default = false, title = ""}, --{ type = "label", col=0, colspan=2, align="left", title = ''}, --{ type = "label", col=0, colspan=2, align="left", title = "Global Path: " .. global_path}, --{ type = "label", col=0, colspan=2, align="left", title = "Local Path: " .. local_path},