, _flags (flg)
, _pending_declick (true)
, _meter_point (MeterPostFader)
+ , _meter_type (MeterPeak)
, _self_solo (false)
, _soloed_by_others_upstream (0)
, _soloed_by_others_downstream (0)
_monitor_control->activate ();
}
- if (is_master() || is_monitor() || is_hidden()) {
+ if (is_master() || is_monitor() || is_auditioner()) {
_mute_master->set_solo_ignore (true);
}
void
Route::set_remote_control_id_from_order_key (RouteSortOrderKey /*key*/, uint32_t rid)
{
- if (is_master() || is_monitor() || is_hidden()) {
+ if (is_master() || is_monitor() || is_auditioner()) {
/* hard-coded remote IDs, or no remote ID */
return;
}
void
Route::set_solo_isolated (bool yn, void *src)
{
- if (is_master() || is_monitor() || is_hidden()) {
+ if (is_master() || is_monitor() || is_auditioner()) {
return;
}
boost::shared_ptr<RouteList> routes = _session.get_routes ();
for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) {
- if ((*i).get() == this || (*i)->is_master() || (*i)->is_monitor() || (*i)->is_hidden()) {
+ if ((*i).get() == this || (*i)->is_master() || (*i)->is_monitor() || (*i)->is_auditioner()) {
continue;
}
node->add_property("denormal-protection", _denormal_protection?"yes":"no");
node->add_property("meter-point", enum_2_string (_meter_point));
+ node->add_property("meter-type", enum_2_string (_meter_type));
+
if (_route_group) {
node->add_property("route-group", _route_group->name());
}
_flags = Flag (0);
}
- if (is_master() || is_monitor() || is_hidden()) {
+ if (is_master() || is_monitor() || is_auditioner()) {
_mute_master->set_solo_ignore (true);
}
}
}
+ if ((prop = node.property (X_("meter-type"))) != 0) {
+ _meter_type = MeterType (string_2_enum (prop->value (), _meter_type));
+ }
+
set_processor_state (processor_state);
// this looks up the internal instrument in processors
_flags = Flag (0);
}
- if (is_master() || is_monitor() || is_hidden()) {
+ if (is_master() || is_monitor() || is_auditioner()) {
_mute_master->set_solo_ignore (true);
}
continue;
}
- if (processor->set_state (**niter, Stateful::current_state_version) != 0) {
- /* This processor could not be configured. Turn it into a UnknownProcessor */
- processor.reset (new UnknownProcessor (_session, **niter));
+ if (boost::dynamic_pointer_cast<PluginInsert>(processor)) {
+#ifndef NO_PLUGIN_STATE
+ if (processor->set_state (**niter, Stateful::current_state_version) != 0) {
+ /* This processor could not be configured. Turn it into a UnknownProcessor */
+ processor.reset (new UnknownProcessor (_session, **niter));
+ }
+#else
+ /* plugin, with NO_PLUGIN_STATE defined
+ * =>::set_state() not allowed. Do not
+ * display a message here - things will
+ * get too verbose.
+ */
+#endif
+ } else {
+ if (processor->set_state (**niter, Stateful::current_state_version) != 0) {
+ /* This processor could not be configured. Turn it into a UnknownProcessor */
+ processor.reset (new UnknownProcessor (_session, **niter));
+ }
}
/* we have to note the monitor send here, otherwise a new one will be created
contains ConfigurationChanged
*/
need_to_queue_solo_change = false;
+ configure_processors (0);
+ io_changed (); /* EMIT SIGNAL */
}
if (!_output->connected() && _soloed_by_others_downstream) {
}
/* establish the initial setup of the buffer set, reflecting what was
- copied into it.
+ copied into it. unless, of course, we are the auditioner, in which
+ case nothing was fed into it from the inputs at all.
*/
- bufs.set_count (io->n_ports());
+ if (!is_auditioner()) {
+ bufs.set_count (io->n_ports());
+ }
}