summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-03-08 23:26:28 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-03-08 23:26:28 +0000
commit06ee54887d679289b6aca10f6c8a0fb4ad95ea47 (patch)
treee867ab654ee296d23a6e79cb938ac740e9e4db6b /libs/ardour/route.cc
parentb4c174433387944af95f816ced982091d699a1ae (diff)
add/remove edit groups via buttons (still a bit of work left to do)
git-svn-id: svn://localhost/trunk/ardour2@364 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc28
1 files changed, 25 insertions, 3 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 7f7b56cc2b..18ce52dd43 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1833,16 +1833,27 @@ void
Route::set_edit_group (RouteGroup *eg, void *src)
{
+ if (eg == _edit_group) {
+ return;
+ }
+
if (_edit_group) {
_edit_group->remove (this);
}
- if ((_edit_group = eg)) {
+ if ((_edit_group = eg) != 0) {
_edit_group->add (this);
}
_session.set_dirty ();
+ edit_group_changed (src); /* EMIT SIGNAL */
+}
+void
+Route::drop_edit_group (void *src)
+{
+ _edit_group = 0;
+ _session.set_dirty ();
edit_group_changed (src); /* EMIT SIGNAL */
}
@@ -1850,16 +1861,27 @@ void
Route::set_mix_group (RouteGroup *mg, void *src)
{
+ if (mg == _mix_group) {
+ return;
+ }
+
if (_mix_group) {
_mix_group->remove (this);
}
- if ((_mix_group = mg)) {
+ if ((_mix_group = mg) != 0) {
_mix_group->add (this);
}
_session.set_dirty ();
-
+ mix_group_changed (src); /* EMIT SIGNAL */
+}
+
+void
+Route::drop_mix_group (void *src)
+{
+ _mix_group = 0;
+ _session.set_dirty ();
mix_group_changed (src); /* EMIT SIGNAL */
}