diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-19 17:30:47 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-02-19 17:30:47 +0000 |
commit | 4c6b2c7eb7fa4b8fffe8ea9cbc5eb775f6b12cd8 (patch) | |
tree | 260e4b1ba4587b8cb5b3b3d8d1cef5f924a864ca /libs | |
parent | 60b8dce6379426ccdf54832e11c83a7b13c44d57 (diff) |
remote control IDs follow editor/mixer view order; fix multiple display of disk over/under run errors; don't show automation editing cursor unless you actually edit it
git-svn-id: svn://localhost/ardour2/trunk@1474 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/configuration_vars.h | 1 | ||||
-rw-r--r-- | libs/ardour/ardour/session.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/types.h | 7 | ||||
-rw-r--r-- | libs/ardour/enums.cc | 6 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 1 | ||||
-rw-r--r-- | libs/ardour/session.cc | 21 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 2 |
7 files changed, 40 insertions, 0 deletions
diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h index a779c77df7..c1e59baf35 100644 --- a/libs/ardour/ardour/configuration_vars.h +++ b/libs/ardour/ardour/configuration_vars.h @@ -24,6 +24,7 @@ CONFIG_VARIABLE (bool, midi_control, "midi-control", false) CONFIG_VARIABLE (uint32_t, feedback_interval_ms, "feedback-interval-ms", 100) CONFIG_VARIABLE (bool, use_tranzport, "use-tranzport", false) CONFIG_VARIABLE (std::string, mackie_emulation, "mackie-emulation", "mcu") +CONFIG_VARIABLE (RemoteModel, remote_model, "remote-model", MixerOrdered) /* disk operations */ diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index f4e5f3dedc..8341e94d82 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -476,6 +476,8 @@ class Session : public PBD::StatefulDestructible void resort_routes (); void resort_routes_using (boost::shared_ptr<RouteList>); + void set_remote_control_ids(); + AudioEngine &engine() { return _engine; }; int32_t max_level; diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index 4fe8a54f71..d8c54df6bd 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -267,6 +267,12 @@ namespace ARDOUR { ExternalMonitoring, }; + enum RemoteModel { + UserOrdered, + MixerOrdered, + EditorOrdered, + }; + enum CrossfadeModel { FullCrossfade, ShortCrossfade @@ -349,6 +355,7 @@ std::istream& operator>>(std::istream& o, ARDOUR::HeaderFormat& sf); std::istream& operator>>(std::istream& o, ARDOUR::AutoConnectOption& sf); std::istream& operator>>(std::istream& o, ARDOUR::EditMode& sf); std::istream& operator>>(std::istream& o, ARDOUR::MonitorModel& sf); +std::istream& operator>>(std::istream& o, ARDOUR::RemoteModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::SoloModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::LayerModel& sf); std::istream& operator>>(std::istream& o, ARDOUR::CrossfadeModel& sf); diff --git a/libs/ardour/enums.cc b/libs/ardour/enums.cc index 0460df43d8..4220adf7eb 100644 --- a/libs/ardour/enums.cc +++ b/libs/ardour/enums.cc @@ -31,6 +31,7 @@ setup_enum_writer () RegionPoint _RegionPoint; Placement _Placement; MonitorModel _MonitorModel; + RemoteModel _RemoteModel; CrossfadeModel _CrossfadeModel; LayerModel _LayerModel; SoloModel _SoloModel; @@ -142,6 +143,11 @@ setup_enum_writer () REGISTER_ENUM (ExternalMonitoring); REGISTER (_MonitorModel); + REGISTER_ENUM (UserOrdered); + REGISTER_ENUM (MixerOrdered); + REGISTER_ENUM (EditorOrdered); + REGISTER (_RemoteModel); + REGISTER_ENUM (FullCrossfade); REGISTER_ENUM (ShortCrossfade); REGISTER (_CrossfadeModel); diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index c9e663e984..b000be377d 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -614,6 +614,7 @@ std::istream& operator>>(std::istream& o, HeaderFormat& var) { return int_to_typ std::istream& operator>>(std::istream& o, SampleFormat& var) { return int_to_type<SampleFormat> (o, var); } std::istream& operator>>(std::istream& o, AutoConnectOption& var) { return int_to_type<AutoConnectOption> (o, var); } std::istream& operator>>(std::istream& o, MonitorModel& var) { return int_to_type<MonitorModel> (o, var); } +std::istream& operator>>(std::istream& o, RemoteModel& var) { return int_to_type<RemoteModel> (o, var); } std::istream& operator>>(std::istream& o, EditMode& var) { return int_to_type<EditMode> (o, var); } std::istream& operator>>(std::istream& o, SoloModel& var) { return int_to_type<SoloModel> (o, var); } std::istream& operator>>(std::istream& o, LayerModel& var) { return int_to_type<LayerModel> (o, var); } diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 2da80e28f7..e327d0eaa9 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1770,6 +1770,27 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod return ret; } +void +Session::set_remote_control_ids () +{ + RemoteModel m = Config->get_remote_model(); + + shared_ptr<RouteList> r = routes.reader (); + + for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { + if ( MixerOrdered == m) { + long order = (*i)->order_key(N_("signal")); + (*i)->set_remote_control_id( order+1 ); + } else if ( EditorOrdered == m) { + long order = (*i)->order_key(N_("editor")); + (*i)->set_remote_control_id( order+1 ); + } else if ( UserOrdered == m) { + //do nothing ... only changes to remote id's are initiated by user + } + } +} + + Session::RouteList Session::new_audio_route (int input_channels, int output_channels, uint32_t how_many) { diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index b62f4f3896..861e03302f 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -3167,6 +3167,8 @@ Session::config_changed (const char* parameter_name) } else if (PARAM_IS ("slave-source")) { set_slave_source (Config->get_slave_source()); + } else if (PARAM_IS ("remote-model")) { + set_remote_control_ids (); } set_dirty (); |