summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-02-19 17:30:47 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-02-19 17:30:47 +0000
commit4c6b2c7eb7fa4b8fffe8ea9cbc5eb775f6b12cd8 (patch)
tree260e4b1ba4587b8cb5b3b3d8d1cef5f924a864ca /libs
parent60b8dce6379426ccdf54832e11c83a7b13c44d57 (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.h1
-rw-r--r--libs/ardour/ardour/session.h2
-rw-r--r--libs/ardour/ardour/types.h7
-rw-r--r--libs/ardour/enums.cc6
-rw-r--r--libs/ardour/globals.cc1
-rw-r--r--libs/ardour/session.cc21
-rw-r--r--libs/ardour/session_state.cc2
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 ();