summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-01-29 14:49:28 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-01-29 16:15:41 -0500
commit9fe4b7a92a03d934691d9c2f8d4f0014520e5e0f (patch)
tree4664b98abb2210d0db5a3fbe8ea83a3983ccdf56
parent4a6724868d1b11fe351032377b6fee46b2b9866c (diff)
mackie: if a subview mode is not OK because there's no selection, show no message
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc53
1 files changed, 28 insertions, 25 deletions
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index a4f241febc..36e812a354 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -1696,34 +1696,37 @@ MackieControlProtocol::set_subview_mode (SubViewMode sm, boost::shared_ptr<Route
if (!subview_mode_would_be_ok (sm, r)) {
- Glib::Threads::Mutex::Lock lm (surfaces_lock);
+ if (r) {
- if (!surfaces.empty()) {
+ Glib::Threads::Mutex::Lock lm (surfaces_lock);
- string msg;
+ if (!surfaces.empty()) {
- switch (sm) {
- case Sends:
- msg = _("no sends for selected track/bus");
- break;
- case EQ:
- msg = _("no EQ in the track/bus");
- break;
- case Dynamics:
- msg = _("no dynamics in selected track/bus");
- break;
- default:
- break;
- }
- if (!msg.empty()) {
- surfaces.front()->display_message_for (msg, 1000);
- if (_subview_mode != None) {
- /* redisplay current subview mode after
- that message goes away.
- */
- Glib::RefPtr<Glib::TimeoutSource> redisplay_timeout = Glib::TimeoutSource::create (1000); // milliseconds
- redisplay_timeout->connect (sigc::mem_fun (*this, &MackieControlProtocol::redisplay_subview_mode));
- redisplay_timeout->attach (main_loop()->get_context());
+ string msg;
+
+ switch (sm) {
+ case Sends:
+ msg = _("no sends for selected track/bus");
+ break;
+ case EQ:
+ msg = _("no EQ in the track/bus");
+ break;
+ case Dynamics:
+ msg = _("no dynamics in selected track/bus");
+ break;
+ default:
+ break;
+ }
+ if (!msg.empty()) {
+ surfaces.front()->display_message_for (msg, 1000);
+ if (_subview_mode != None) {
+ /* redisplay current subview mode after
+ that message goes away.
+ */
+ Glib::RefPtr<Glib::TimeoutSource> redisplay_timeout = Glib::TimeoutSource::create (1000); // milliseconds
+ redisplay_timeout->connect (sigc::mem_fun (*this, &MackieControlProtocol::redisplay_subview_mode));
+ redisplay_timeout->attach (main_loop()->get_context());
+ }
}
}
}