summaryrefslogtreecommitdiff
path: root/gtk2_ardour/route_ui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-05-05 20:29:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-05-05 20:29:46 +0000
commit1ae1eeb25762887599fcc12e1fc9163c76014525 (patch)
tree410d49990b2a429dbb68c415b89096903d74f6ae /gtk2_ardour/route_ui.cc
parent958d5ffefd8cbd386ec334060b9e887797afa728 (diff)
led\'s for solo-safe and solo-isolate, rather than a context menu (mixer strip only). not finished and some logic errors in terms of turning things on and off
git-svn-id: svn://localhost/ardour2/branches/3.0@7066 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_ui.cc')
-rw-r--r--gtk2_ardour/route_ui.cc44
1 files changed, 38 insertions, 6 deletions
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index 851a96da5a..3c424f446b 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -35,6 +35,7 @@
#include "ardour_ui.h"
#include "editor.h"
#include "route_ui.h"
+#include "led.h"
#include "keyboard.h"
#include "utils.h"
#include "prompter.h"
@@ -99,6 +100,8 @@ RouteUI::init ()
main_mute_check = 0;
solo_safe_check = 0;
solo_isolated_check = 0;
+ solo_isolated_led = 0;
+ solo_safe_led = 0;
ignore_toggle = false;
_solo_release = 0;
_mute_release = 0;
@@ -372,11 +375,14 @@ RouteUI::solo_press(GdkEventButton* ev)
if (Keyboard::is_context_menu_event (ev)) {
- if (solo_menu == 0) {
- build_solo_menu ();
- }
-
- solo_menu->popup (1, ev->time);
+ if (!solo_isolated_led) {
+
+ if (solo_menu == 0) {
+ build_solo_menu ();
+ }
+
+ solo_menu->popup (1, ev->time);
+ }
} else {
@@ -811,7 +817,16 @@ RouteUI::update_solo_display ()
set_button_names ();
- solo_button->set_visual_state (solo_visual_state_with_isolate (_route));
+ if (solo_isolated_led) {
+ cerr << _route->name() << " reset iso vis = " << (_route->solo_isolated() ? 1 : 0) << endl;
+ solo_isolated_led->set_visual_state (_route->solo_isolated() ? 1 : 0);
+ }
+
+ if (solo_safe_led) {
+ solo_safe_led->set_visual_state (_route->solo_safe() ? 1 : 0);
+ }
+
+ solo_button->set_visual_state (solo_visual_state (_route));
}
void
@@ -1055,6 +1070,23 @@ RouteUI::muting_change ()
}
}
+bool
+RouteUI::solo_isolate_button_release (GdkEventButton* ev)
+{
+ bool view = (solo_isolated_led->visual_state() != 0);
+ cerr << _route->name() << "button release, view is " << view << " set to " << !view << endl;
+ _route->set_solo_isolated (!view, this);
+ cerr << "DONE with SSI\n";
+ return true;
+}
+
+bool
+RouteUI::solo_safe_button_release (GdkEventButton* ev)
+{
+ _route->set_solo_safe (!(solo_safe_led->visual_state() > 0), this);
+ return true;
+}
+
void
RouteUI::toggle_solo_isolated (Gtk::CheckMenuItem* check)
{