summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor.cc48
-rw-r--r--gtk2_ardour/editor.h26
-rw-r--r--gtk2_ardour/editor_edit_groups.cc174
-rw-r--r--gtk2_ardour/mixer_strip.cc7
-rw-r--r--gtk2_ardour/mixer_ui.cc2
-rw-r--r--gtk2_ardour/route_group_dialog.cc9
-rw-r--r--gtk2_ardour/route_group_menu.cc26
-rw-r--r--gtk2_ardour/route_group_menu.h25
-rw-r--r--gtk2_ardour/route_time_axis.cc6
-rw-r--r--libs/ardour/ardour/route_group.h2
-rw-r--r--libs/ardour/route_group.cc4
11 files changed, 303 insertions, 26 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 93a69de8c3..7e9d17b80e 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -558,6 +558,7 @@ Editor::Editor ()
route_list_display.set_name ("TrackListDisplay");
route_list_display.get_selection()->set_mode (SELECTION_NONE);
route_list_display.set_reorderable (true);
+ route_list_display.set_rules_hint (true);
route_list_display.set_size_request (100,-1);
route_list_display.add_object_drag (route_display_columns.route.index(), "routes");
@@ -577,12 +578,36 @@ Editor::Editor ()
group_model = ListStore::create(group_columns);
route_group_display.set_model (group_model);
+
route_group_display.append_column (_("Name"), group_columns.text);
+
+ route_group_display.append_column (_("G"), group_columns.gain);
+ route_group_display.append_column (_("R"), group_columns.record);
+ route_group_display.append_column (_("M"), group_columns.mute);
+ route_group_display.append_column (_("S"), group_columns.solo);
+ route_group_display.append_column (_("Sel"), group_columns.select);
+ route_group_display.append_column (_("E"), group_columns.edits);
+
route_group_display.append_column (_("Show"), group_columns.is_visible);
+
route_group_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
route_group_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
+ route_group_display.get_column (2)->set_data (X_("colnum"), GUINT_TO_POINTER(2));
+ route_group_display.get_column (3)->set_data (X_("colnum"), GUINT_TO_POINTER(3));
+ route_group_display.get_column (4)->set_data (X_("colnum"), GUINT_TO_POINTER(4));
+ route_group_display.get_column (5)->set_data (X_("colnum"), GUINT_TO_POINTER(5));
+ route_group_display.get_column (6)->set_data (X_("colnum"), GUINT_TO_POINTER(6));
+ route_group_display.get_column (7)->set_data (X_("colnum"), GUINT_TO_POINTER(7));
+
route_group_display.get_column (0)->set_expand (true);
route_group_display.get_column (1)->set_expand (false);
+ route_group_display.get_column (2)->set_expand (false);
+ route_group_display.get_column (3)->set_expand (false);
+ route_group_display.get_column (4)->set_expand (false);
+ route_group_display.get_column (5)->set_expand (false);
+ route_group_display.get_column (6)->set_expand (false);
+ route_group_display.get_column (7)->set_expand (false);
+
route_group_display.set_headers_visible (true);
/* name is directly editable */
@@ -597,12 +622,33 @@ Editor::Editor ()
active_cell->property_activatable() = true;
active_cell->property_radio() = false;
- active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (1));
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (2));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (3));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (4));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (5));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (6));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (7));
active_cell->property_activatable() = true;
active_cell->property_radio() = false;
group_model->signal_row_changed().connect (mem_fun (*this, &Editor::route_group_row_change));
+
route_group_display.set_name ("EditGroupList");
route_group_display.get_selection()->set_mode (SELECTION_SINGLE);
route_group_display.set_headers_visible (true);
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 990f6f2136..a05ff655d3 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1600,7 +1600,8 @@ public:
void redisplay_tempo (bool immediate_redraw);
void snap_to (nframes64_t& first, int32_t direction = 0, bool for_mark = false);
-
+ void snap_to (nframes64_t& first, nframes64_t& last, int32_t direction = 0, bool for_mark = false);
+
double snap_length_beats (nframes64_t start);
uint32_t bbt_beat_subdivision;
@@ -1844,17 +1845,32 @@ public:
/* edit group management */
struct GroupListModelColumns : public Gtk::TreeModel::ColumnRecord {
+
GroupListModelColumns () {
- add (is_visible);
- add (text);
- add (routegroup);
+ add (is_visible);
+ add (gain);
+ add (record);
+ add (mute);
+ add (solo);
+ add (select);
+ add (edits);
+ add (text);
+ add (routegroup);
}
+
Gtk::TreeModelColumn<bool> is_visible;
+ Gtk::TreeModelColumn<bool> gain;
+ Gtk::TreeModelColumn<bool> record;
+ Gtk::TreeModelColumn<bool> mute;
+ Gtk::TreeModelColumn<bool> solo;
+ Gtk::TreeModelColumn<bool> select;
+ Gtk::TreeModelColumn<bool> edits;
Gtk::TreeModelColumn<std::string> text;
- Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
+ Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
};
GroupListModelColumns group_columns;
+
Glib::RefPtr<Gtk::ListStore> group_model;
Glib::RefPtr<Gtk::TreeSelection> group_selection;
diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc
index 54547b5a0d..6eac473c7e 100644
--- a/gtk2_ardour/editor_edit_groups.cc
+++ b/gtk2_ardour/editor_edit_groups.cc
@@ -106,7 +106,7 @@ Editor::set_route_group_activation (RouteGroup* g, bool a)
void
Editor::new_route_group ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -121,7 +121,7 @@ Editor::new_route_group ()
void
Editor::new_route_group_from_selection ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::Select));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -144,7 +144,7 @@ Editor::new_route_group_from_selection ()
void
Editor::new_route_group_from_rec_enabled ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::RecEnable));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -167,7 +167,7 @@ Editor::new_route_group_from_rec_enabled ()
void
Editor::new_route_group_from_soloed ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -273,6 +273,72 @@ Editor::route_group_list_button_press_event (GdkEventButton* ev)
case 1:
if ((iter = group_model->get_iter (path))) {
+ bool gain = (*iter)[group_columns.gain];
+ (*iter)[group_columns.gain] = !gain;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 2:
+ if ((iter = group_model->get_iter (path))) {
+ bool record = (*iter)[group_columns.record];
+ (*iter)[group_columns.record] = !record;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 3:
+ if ((iter = group_model->get_iter (path))) {
+ bool mute = (*iter)[group_columns.mute];
+ (*iter)[group_columns.mute] = !mute;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 4:
+ if ((iter = group_model->get_iter (path))) {
+ bool solo = (*iter)[group_columns.solo];
+ (*iter)[group_columns.solo] = !solo;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 5:
+ if ((iter = group_model->get_iter (path))) {
+ bool select = (*iter)[group_columns.select];
+ (*iter)[group_columns.select] = !select;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 6:
+ if ((iter = group_model->get_iter (path))) {
+ bool edits = (*iter)[group_columns.edits];
+ (*iter)[group_columns.edits] = !edits;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 7:
+ if ((iter = group_model->get_iter (path))) {
bool visible = (*iter)[group_columns.is_visible];
(*iter)[group_columns.is_visible] = !visible;
#ifdef GTKOSX
@@ -316,6 +382,90 @@ Editor::route_group_row_change (const Gtk::TreeModel::Path& path,const Gtk::Tree
}
}
+ if ((*iter)[group_columns.gain]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Gain, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Gain, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.record]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::RecEnable, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::RecEnable, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.mute]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Mute, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Mute, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.solo]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Solo, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Solo, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.select]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Select, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Select, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.edits]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Edit, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Edit, false);
+ }
+ }
+ }
+
string name = (*iter)[group_columns.text];
if (name != group->name()) {
@@ -330,7 +480,14 @@ Editor::add_route_group (RouteGroup* group)
bool focus = false;
TreeModel::Row row = *(group_model->append());
+
row[group_columns.is_visible] = !group->is_hidden();
+ row[group_columns.gain] = group->property(RouteGroup::Gain);
+ row[group_columns.record] = group->property(RouteGroup::RecEnable);
+ row[group_columns.mute] = group->property(RouteGroup::Mute);
+ row[group_columns.solo] = group->property(RouteGroup::Solo);
+ row[group_columns.select] = group->property(RouteGroup::Select);
+ row[group_columns.edits] = group->property(RouteGroup::Edit);
in_route_group_row_change = true;
@@ -345,7 +502,7 @@ Editor::add_route_group (RouteGroup* group)
group->FlagsChanged.connect (bind (mem_fun(*this, &Editor::group_flags_changed), group));
- if (focus) {
+ if (focus) {
TreeViewColumn* col = route_group_display.get_column (0);
CellRendererText* name_cell = dynamic_cast<CellRendererText*>(route_group_display.get_column_cell_renderer (0));
route_group_display.set_cursor (group_model->get_path (row), *col, *name_cell, true);
@@ -384,10 +541,17 @@ Editor::group_flags_changed (void* src, RouteGroup* group)
in_route_group_row_change = true;
Gtk::TreeModel::Children children = group_model->children();
+
for(Gtk::TreeModel::Children::iterator iter = children.begin(); iter != children.end(); ++iter) {
if (group == (*iter)[group_columns.routegroup]) {
(*iter)[group_columns.is_visible] = !group->is_hidden();
(*iter)[group_columns.text] = group->name();
+ (*iter)[group_columns.gain] = group->property(RouteGroup::Gain);
+ (*iter)[group_columns.record] = group->property(RouteGroup::RecEnable);
+ (*iter)[group_columns.mute] = group->property(RouteGroup::Mute);
+ (*iter)[group_columns.solo] = group->property(RouteGroup::Solo);
+ (*iter)[group_columns.select] = group->property(RouteGroup::Select);
+ (*iter)[group_columns.edits] = group->property(RouteGroup::Edit);
}
}
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 00c7503efa..33bc024ee8 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -1068,7 +1068,12 @@ MixerStrip::select_route_group (GdkEventButton *ev)
if (ev->button == 1) {
if (group_menu == 0) {
- group_menu = new RouteGroupMenu (_session);
+
+ group_menu = new RouteGroupMenu (
+ _session,
+ (RouteGroup::Property) (RouteGroup::Gain | RouteGroup::Mute | RouteGroup::Solo)
+ );
+
group_menu->GroupSelected.connect (mem_fun (*this, &MixerStrip::set_route_group));
}
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index eb79d8042c..156947a709 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -1112,7 +1112,7 @@ Mixer_UI::route_groups_changed ()
void
Mixer_UI::new_route_group ()
{
- session->add_route_group (new RouteGroup (*session, ""));
+ session->add_route_group (new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Gain |RouteGroup::Mute | RouteGroup::Solo)));
}
void
diff --git a/gtk2_ardour/route_group_dialog.cc b/gtk2_ardour/route_group_dialog.cc
index 6a87ea3c95..1e5ddaa5dc 100644
--- a/gtk2_ardour/route_group_dialog.cc
+++ b/gtk2_ardour/route_group_dialog.cc
@@ -2,9 +2,11 @@
#include "ardour/route_group.h"
#include "route_group_dialog.h"
#include "i18n.h"
+#include <iostream>
using namespace Gtk;
using namespace ARDOUR;
+using namespace std;
RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
: Dialog (_("Route group")),
@@ -35,9 +37,9 @@ RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
get_vbox()->pack_start (*h);
get_vbox()->pack_start (_active);
- get_vbox()->pack_start (_gain);
h = manage (new HBox);
+ h->pack_start (_gain);
h->pack_start (_relative, PACK_EXPAND_PADDING);
get_vbox()->pack_start (*h);
@@ -61,15 +63,14 @@ RouteGroupDialog::do_run ()
int const r = run ();
if (r == Gtk::RESPONSE_OK) {
- _group->set_name (_name.get_text ());
- _group->set_active (_active.get_active (), this);
-
_group->set_property (RouteGroup::Gain, _gain.get_active ());
_group->set_property (RouteGroup::Mute, _mute.get_active ());
_group->set_property (RouteGroup::Solo, _solo.get_active ());
_group->set_property (RouteGroup::RecEnable, _rec_enable.get_active ());
_group->set_property (RouteGroup::Select, _select.get_active ());
_group->set_property (RouteGroup::Edit, _edit.get_active ());
+ _group->set_name (_name.get_text ()); // This emits changed signal
+ _group->set_active (_active.get_active (), this);
_group->set_relative (_relative.get_active(), this);
}
diff --git a/gtk2_ardour/route_group_menu.cc b/gtk2_ardour/route_group_menu.cc
index e42cdedfac..cdb264aa9c 100644
--- a/gtk2_ardour/route_group_menu.cc
+++ b/gtk2_ardour/route_group_menu.cc
@@ -1,3 +1,22 @@
+/*
+ Copyright (C) 2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
#include <gtkmm/menu.h>
#include <gtkmm/stock.h>
#include "ardour/session.h"
@@ -9,8 +28,9 @@
using namespace Gtk;
using namespace ARDOUR;
-RouteGroupMenu::RouteGroupMenu (Session& s)
- : _session (s)
+RouteGroupMenu::RouteGroupMenu (Session& s, RouteGroup::Property p)
+ : _session (s),
+ _default_properties (p)
{
rebuild (0);
}
@@ -57,7 +77,7 @@ RouteGroupMenu::set_group (RouteGroup* g)
void
RouteGroupMenu::new_group ()
{
- RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active, _default_properties);
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
diff --git a/gtk2_ardour/route_group_menu.h b/gtk2_ardour/route_group_menu.h
index 09a31e60ed..7827179acb 100644
--- a/gtk2_ardour/route_group_menu.h
+++ b/gtk2_ardour/route_group_menu.h
@@ -1,12 +1,32 @@
+/*
+ Copyright (C) 2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "ardour/route_group.h"
+
namespace ARDOUR {
class Session;
- class RouteGroup;
}
class RouteGroupMenu : public Gtk::Menu
{
public:
- RouteGroupMenu (ARDOUR::Session &);
+ RouteGroupMenu (ARDOUR::Session &, ARDOUR::RouteGroup::Property);
void rebuild (ARDOUR::RouteGroup *);
@@ -18,4 +38,5 @@ private:
void set_group (ARDOUR::RouteGroup *);
ARDOUR::Session& _session;
+ ARDOUR::RouteGroup::Property _default_properties;
};
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index f0a0857030..7d5ac17735 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -253,7 +253,11 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::sh
_editor.ZoomChanged.connect (mem_fun(*this, &RouteTimeAxisView::reset_samples_per_unit));
ColorsChanged.connect (mem_fun (*this, &RouteTimeAxisView::color_handler));
- route_group_menu = new RouteGroupMenu (_session);
+ route_group_menu = new RouteGroupMenu (
+ _session,
+ (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit)
+ );
+
route_group_menu->GroupSelected.connect (mem_fun (*this, &RouteTimeAxisView::set_route_group_from_menu));
gm.get_gain_slider().signal_scroll_event().connect(mem_fun(*this, &RouteTimeAxisView::controls_ebox_scroll), false);
diff --git a/libs/ardour/ardour/route_group.h b/libs/ardour/ardour/route_group.h
index 2ea7b95208..7b7166decd 100644
--- a/libs/ardour/ardour/route_group.h
+++ b/libs/ardour/ardour/route_group.h
@@ -52,7 +52,7 @@ public:
Edit = 0x20
};
- RouteGroup (Session& s, const std::string &n, Flag f = Flag(0));
+ RouteGroup (Session& s, const std::string &n, Flag f = Flag(0), Property p = Property(0));
const std::string& name() { return _name; }
void set_name (std::string str);
diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc
index 826341092f..f88df5c86a 100644
--- a/libs/ardour/route_group.cc
+++ b/libs/ardour/route_group.cc
@@ -38,8 +38,8 @@ using namespace ARDOUR;
using namespace sigc;
using namespace std;
-RouteGroup::RouteGroup (Session& s, const string &n, Flag f)
- : _session (s), _name (n), _flags (f), _properties (Property (0))
+RouteGroup::RouteGroup (Session& s, const string &n, Flag f, Property p)
+ : _session (s), _name (n), _flags (f), _properties (Property (p))
{
}