Forward instrument MIDNAM changed signal

This commit is contained in:
Robin Gareus 2020-04-04 01:23:58 +02:00
parent 096d23fcc2
commit d0a116b2ae
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 17 additions and 0 deletions

View File

@ -86,6 +86,8 @@ private:
_plugin_mode = "";
}
void emit_changed ();
std::string _external_instrument_model;
std::string _external_instrument_mode;
@ -93,6 +95,8 @@ private:
mutable std::string _plugin_mode;
boost::weak_ptr<ARDOUR::Processor> internal_instrument;
PBD::ScopedConnection _midnam_changed;
};
}

View File

@ -68,11 +68,24 @@ InstrumentInfo::set_internal_instrument (boost::shared_ptr<Processor> p)
//std::cerr << "InstrumentInfo::set_internal_instrument -- NO CHANGE\n";
return;
}
_midnam_changed.disconnect ();
//std::cerr << "InstrumentInfo::set_internal_instrument -> '" << (p ? p->name () : "(NULL)") << "'\n";
internal_instrument = p;
if (_external_instrument_model.empty () || _external_instrument_model == _("Unknown")) {
Changed (); /* EMIT SIGNAL */
}
boost::shared_ptr<PluginInsert> pi = boost::dynamic_pointer_cast<PluginInsert> (p);
if (pi && pi->plugin ()->has_midnam ()) {
pi->plugin()->UpdatedMidnam.connect_same_thread (_midnam_changed, boost::bind (&InstrumentInfo::emit_changed, this));
}
}
void
InstrumentInfo::emit_changed () {
if (_external_instrument_model.empty ()) {
Changed ();
}
}
bool