Forward instrument MIDNAM changed signal
This commit is contained in:
parent
096d23fcc2
commit
d0a116b2ae
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue