summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-04-27 03:10:53 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-04-27 03:10:53 +0000
commita8e354ed7bb38f8be8bfdda33841f3f238e8bbab (patch)
treee2ab48a8b041c1146f33e87de60689314e52a1e1 /gtk2_ardour
parent56469c195640b561119852fd6d27a4b56e5af7e2 (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.in10
-rw-r--r--gtk2_ardour/ardour_ui2.cc2
-rw-r--r--gtk2_ardour/editor_routes.cc7
-rw-r--r--gtk2_ardour/editor_routes.h2
-rw-r--r--gtk2_ardour/mixer_strip.cc4
-rw-r--r--gtk2_ardour/route_time_axis.cc2
-rw-r--r--gtk2_ardour/route_ui.cc25
-rw-r--r--gtk2_ardour/route_ui.h2
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*);