diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-04-27 03:10:53 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-04-27 03:10:53 +0000 |
commit | a8e354ed7bb38f8be8bfdda33841f3f238e8bbab (patch) | |
tree | e2ab48a8b041c1146f33e87de60689314e52a1e1 /gtk2_ardour | |
parent | 56469c195640b561119852fd6d27a4b56e5af7e2 (diff) |
yet more work on Ye Fabled Solo Architecture. now do forward and backward propagation of solo status from a soloed track. tweak GUI appearance
git-svn-id: svn://localhost/ardour2/branches/3.0@7001 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour3_ui_dark.rc.in | 10 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui2.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor_routes.cc | 7 | ||||
-rw-r--r-- | gtk2_ardour/editor_routes.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/route_time_axis.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 25 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.h | 2 |
8 files changed, 25 insertions, 29 deletions
diff --git a/gtk2_ardour/ardour3_ui_dark.rc.in b/gtk2_ardour/ardour3_ui_dark.rc.in index f338a736dc..8458d46316 100644 --- a/gtk2_ardour/ardour3_ui_dark.rc.in +++ b/gtk2_ardour/ardour3_ui_dark.rc.in @@ -395,6 +395,15 @@ style "mixer_solo_button_alternate" = "solo_button_alternate" xthickness = 0 ythickness = 0 } + +style "mixer_solo_button_alternate2" = "solo_button_alternate2" +{ + font_name = "@FONT_SMALLER@" + xthickness = 0 + ythickness = 0 +} + + style "mixer_solo_button_active" = "solo_button_active" { font_name = "@FONT_SMALLER@" @@ -1457,6 +1466,7 @@ widget "*SoloButton-alternate2" style:highest "solo_button_alternate2" widget "*SoloButton-active" style:highest "solo_button_active" widget "*MixerSoloButton" style:highest "mixer_solo_button" widget "*MixerSoloButton-alternate" style:highest "mixer_solo_button_alternate" +widget "*MixerSoloButton-alternate2" style:highest "mixer_solo_button_alternate2" widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active" widget "*TrackLoopButton*" style:highest "track_loop_button" widget "*PanAutomationLineSelector*" style:highest "multiline_combo" diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc index 8aa28e2685..9991a1dc14 100644 --- a/gtk2_ardour/ardour_ui2.cc +++ b/gtk2_ardour/ardour_ui2.cc @@ -494,8 +494,6 @@ ARDOUR_UI::reattach_tearoff (Box* b, Widget* w, int32_t n) void ARDOUR_UI::soloing_changed (bool onoff) { - cerr << "solo change, " << onoff << endl; - if (solo_alert_button.get_active() != onoff) { solo_alert_button.set_active (onoff); } diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc index 3d5cb3522c..81a1635e77 100644 --- a/gtk2_ardour/editor_routes.cc +++ b/gtk2_ardour/editor_routes.cc @@ -461,14 +461,14 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes) } (*x)->route()->mute_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_mute_display, this), gui_context()); - (*x)->route()->solo_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this), gui_context()); + (*x)->route()->solo_changed.connect (*this, MISSING_INVALIDATOR, ui_bind (&EditorRoutes::update_solo_display, this, _1), gui_context()); (*x)->route()->solo_isolated_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_isolate_display, this), gui_context()); (*x)->route()->solo_safe_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_safe_display, this), gui_context()); } update_rec_display (); update_mute_display (); - update_solo_display (); + update_solo_display (true); update_solo_isolate_display (); update_solo_safe_display (); resume_redisplay (); @@ -1026,7 +1026,7 @@ EditorRoutes::update_mute_display () } void -EditorRoutes::update_solo_display () +EditorRoutes::update_solo_display (bool /* selfsoloed */) { TreeModel::Children rows = _model->children(); TreeModel::Children::iterator i; @@ -1098,7 +1098,6 @@ EditorRoutes::name_edit (Glib::ustring const & path, Glib::ustring const & new_t void EditorRoutes::solo_changed_so_update_mute () { - ENSURE_GUI_THREAD (*this, &EditorRoutes::solo_changed_so_update_mute) update_mute_display (); } diff --git a/gtk2_ardour/editor_routes.h b/gtk2_ardour/editor_routes.h index b37607aad9..d0798ee5bc 100644 --- a/gtk2_ardour/editor_routes.h +++ b/gtk2_ardour/editor_routes.h @@ -74,7 +74,7 @@ private: void handle_gui_changes (std::string const &, void *); void update_rec_display (); void update_mute_display (); - void update_solo_display (); + void update_solo_display (bool); void update_solo_isolate_display (); void update_solo_safe_display (); void set_all_tracks_visibility (bool); diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index cb030287ca..6f3d10d94b 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -328,7 +328,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt) /* map the current state */ mute_changed (0); - solo_changed (0); + update_solo_display (); delete input_selector; input_selector = 0; @@ -435,7 +435,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt) /* now force an update of all the various elements */ mute_changed (0); - solo_changed (0); + update_solo_display (); name_changed (); comment_changed (0); route_group_changed (); diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index bf999d23d6..0c52b96dc3 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -133,7 +133,7 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, boost::sh } mute_changed (0); - solo_changed (0); + update_solo_display (); timestretch_rect = 0; no_redraw = false; diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index ee66bf4c90..816343a2cb 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -209,10 +209,12 @@ RouteUI::set_route (boost::shared_ptr<Route> rp) _route->active_changed.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::route_active_changed, this), gui_context()); _route->mute_changed.connect (route_connections, invalidator (*this), ui_bind (&RouteUI::mute_changed, this, _1), gui_context()); - _route->solo_changed.connect (route_connections, invalidator (*this), ui_bind (&RouteUI::solo_changed, this, _1), gui_context()); - _route->solo_safe_changed.connect (route_connections, invalidator (*this), ui_bind (&RouteUI::solo_changed, this, _1), gui_context()); - _route->listen_changed.connect (route_connections, invalidator (*this), ui_bind (&RouteUI::listen_changed, this, _1), gui_context()); - _route->solo_isolated_changed.connect (route_connections, invalidator (*this), ui_bind (&RouteUI::solo_changed, this, _1), gui_context()); + + _route->solo_changed.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::update_solo_display, this), gui_context()); + _route->solo_safe_changed.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::update_solo_display, this), gui_context()); + _route->listen_changed.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::update_solo_display, this), gui_context()); + _route->solo_isolated_changed.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::update_solo_display, this), gui_context()); + _route->phase_invert_changed.connect (route_connections, invalidator (*this), boost::bind (&RouteUI::polarity_changed, this), gui_context()); _route->PropertyChanged.connect (route_connections, invalidator (*this), ui_bind (&RouteUI::property_changed, this, _1), gui_context()); @@ -691,19 +693,6 @@ RouteUI::send_blink (bool onoff) } } -void -RouteUI::solo_changed(void* /*src*/) -{ - Gtkmm2ext::UI::instance()->call_slot (invalidator (*this), boost::bind (&RouteUI::update_solo_display, this)); -} - - -void -RouteUI::listen_changed(void* /*src*/) -{ - Gtkmm2ext::UI::instance()->call_slot (invalidator (*this), boost::bind (&RouteUI::update_solo_display, this)); -} - int RouteUI::solo_visual_state (boost::shared_ptr<Route> r) { @@ -740,7 +729,7 @@ RouteUI::solo_visual_state_with_isolate (boost::shared_ptr<Route> r) if (r->listening()) { return 1; } else { - return 0; + return 0; } } diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index bbe18bfc4f..1dae38d9d9 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -131,7 +131,7 @@ class RouteUI : public virtual AxisView void create_sends (ARDOUR::Placement); void create_selected_sends (ARDOUR::Placement); - void solo_changed(void*); + void solo_changed(bool, void*); void solo_changed_so_update_mute (); void mute_changed(void*); void listen_changed(void*); |