diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-05 20:29:46 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-05 20:29:46 +0000 |
commit | 1ae1eeb25762887599fcc12e1fc9163c76014525 (patch) | |
tree | 410d49990b2a429dbb68c415b89096903d74f6ae /gtk2_ardour/route_ui.cc | |
parent | 958d5ffefd8cbd386ec334060b9e887797afa728 (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.cc | 44 |
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) { |