Forward instrument MIDNAM changed signal

This commit is contained in:
Robin Gareus 2020-04-04 01:23:58 +02:00
parent 096d23fcc2
commit d0a116b2ae
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
2 changed files with 17 additions and 0 deletions

View file

@ -86,6 +86,8 @@ private:
_plugin_mode = ""; _plugin_mode = "";
} }
void emit_changed ();
std::string _external_instrument_model; std::string _external_instrument_model;
std::string _external_instrument_mode; std::string _external_instrument_mode;
@ -93,6 +95,8 @@ private:
mutable std::string _plugin_mode; mutable std::string _plugin_mode;
boost::weak_ptr<ARDOUR::Processor> internal_instrument; 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"; //std::cerr << "InstrumentInfo::set_internal_instrument -- NO CHANGE\n";
return; return;
} }
_midnam_changed.disconnect ();
//std::cerr << "InstrumentInfo::set_internal_instrument -> '" << (p ? p->name () : "(NULL)") << "'\n"; //std::cerr << "InstrumentInfo::set_internal_instrument -> '" << (p ? p->name () : "(NULL)") << "'\n";
internal_instrument = p; internal_instrument = p;
if (_external_instrument_model.empty () || _external_instrument_model == _("Unknown")) { if (_external_instrument_model.empty () || _external_instrument_model == _("Unknown")) {
Changed (); /* EMIT SIGNAL */ 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 bool