implement designated enable/bypass port for lua-proc

This commit is contained in:
Robin Gareus
2016-07-07 16:44:41 +02:00
parent d83be1baa3
commit 266ecfbeec
2 changed files with 11 additions and 0 deletions

View File

@@ -89,6 +89,10 @@ public:
bool parameter_is_input (uint32_t) const;
bool parameter_is_output (uint32_t) const;
uint32_t designated_bypass_port () {
return _designated_bypass_port;
}
std::string state_node_name() const { return "luaproc"; }
void add_state (XMLNode *) const;
int set_state (const XMLNode&, int version);
@@ -145,6 +149,7 @@ private:
std::vector<std::pair<bool, int> > _ctrl_params;
std::map<int, ARDOUR::ParameterDescriptor> _param_desc;
std::map<int, std::string> _param_doc;
uint32_t _designated_bypass_port;
float* _control_data;
float* _shadow_data;

View File

@@ -52,6 +52,7 @@ LuaProc::LuaProc (AudioEngine& engine,
, _script (script)
, _lua_does_channelmapping (false)
, _lua_has_inline_display (false)
, _designated_bypass_port (UINT32_MAX)
, _control_data (0)
, _shadow_data (0)
, _has_midi_input (false)
@@ -75,6 +76,7 @@ LuaProc::LuaProc (const LuaProc &other)
, _script (other.script ())
, _lua_does_channelmapping (false)
, _lua_has_inline_display (false)
, _designated_bypass_port (UINT32_MAX)
, _control_data (0)
, _shadow_data (0)
, _has_midi_input (false)
@@ -286,6 +288,10 @@ LuaProc::load_script ()
_param_desc[pn].sr_dependent = lr["ratemult"].isBoolean () && (lr["ratemult"]).cast<bool> ();
_param_desc[pn].enumeration = lr["enum"].isBoolean () && (lr["enum"]).cast<bool> ();
if (lr["bypass"].isBoolean () && (lr["bypass"]).cast<bool> ()) {
_designated_bypass_port = pn - 1; // lua table starts at 1.
}
if (lr["unit"].isString ()) {
std::string unit = lr["unit"].cast<std::string> ();
if (unit == "dB") { _param_desc[pn].unit = ParameterDescriptor::DB; }