mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
Forward instrument MIDNAM changed signal
This commit is contained in:
parent
096d23fcc2
commit
d0a116b2ae
2 changed files with 17 additions and 0 deletions
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue