allow to sum channel maps
This commit is contained in:
parent
1316e85d41
commit
5278d56031
|
@ -97,6 +97,20 @@ public:
|
|||
return ! (*this == other);
|
||||
}
|
||||
|
||||
ChanMapping operator+=(const ChanMapping& other) {
|
||||
const ChanMapping::Mappings& mp (other.mappings());
|
||||
for (Mappings::const_iterator tm = mp.begin(); tm != mp.end(); ++tm) {
|
||||
for (TypeMapping::const_iterator i = tm->second.begin(); i != tm->second.end(); ++i) {
|
||||
#if 0
|
||||
bool valid; uint32_t x = get (tm->first, i->first, &valid);
|
||||
assert (!valid || x == i->second);
|
||||
#endif
|
||||
set (tm->first, i->first, i->second);
|
||||
}
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
Mappings _mappings;
|
||||
};
|
||||
|
|
|
@ -69,7 +69,7 @@ class LIBARDOUR_API PluginInsert : public Processor
|
|||
|
||||
int set_block_size (pframes_t nframes);
|
||||
|
||||
ChanMapping input_map (uint32_t num=0) const {
|
||||
ChanMapping input_map (uint32_t num) const {
|
||||
if (num < _in_map.size()) {
|
||||
return _in_map.find (num)->second;
|
||||
} else {
|
||||
|
@ -77,7 +77,7 @@ class LIBARDOUR_API PluginInsert : public Processor
|
|||
}
|
||||
}
|
||||
|
||||
ChanMapping output_map (uint32_t num=0) const {
|
||||
ChanMapping output_map (uint32_t num) const {
|
||||
if (num < _out_map.size()) {
|
||||
return _out_map.find (num)->second;
|
||||
} else {
|
||||
|
@ -85,6 +85,22 @@ class LIBARDOUR_API PluginInsert : public Processor
|
|||
}
|
||||
}
|
||||
|
||||
ChanMapping input_map () const {
|
||||
ChanMapping rv;
|
||||
for (PinMappings::const_iterator i = _in_map.begin (); i != _in_map.end (); ++i) {
|
||||
rv += i->second;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
ChanMapping output_map () const {
|
||||
ChanMapping rv;
|
||||
for (PinMappings::const_iterator i = _out_map.begin (); i != _out_map.end (); ++i) {
|
||||
rv += i->second;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
void set_input_map (uint32_t, ChanMapping);
|
||||
void set_output_map (uint32_t, ChanMapping);
|
||||
|
||||
|
|
|
@ -374,8 +374,8 @@ LuaBindings::common (lua_State* L)
|
|||
.addFunction ("deactivate", &PluginInsert::deactivate)
|
||||
.addFunction ("strict_io_configured", &PluginInsert::strict_io_configured)
|
||||
.addFunction ("no_inplace", &PluginInsert::no_inplace)
|
||||
.addFunction ("input_map", &PluginInsert::input_map)
|
||||
.addFunction ("output_map", &PluginInsert::output_map)
|
||||
.addFunction ("input_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::input_map)
|
||||
.addFunction ("output_map", (ARDOUR::ChanMapping (PluginInsert::*)(uint32_t) const)&PluginInsert::output_map)
|
||||
.addFunction ("set_no_inplace", &PluginInsert::set_no_inplace) // XXX
|
||||
.addFunction ("set_input_map", &PluginInsert::set_input_map)
|
||||
.addFunction ("set_output_map", &PluginInsert::set_output_map)
|
||||
|
|
Loading…
Reference in New Issue
Block a user