mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
lincoln's patch from mantis 2757 to add route group property checkboxes in the route groups
editor list, and to initialise new route groups with some appropriate properties. git-svn-id: svn://localhost/ardour2/branches/3.0@5295 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
da148faf00
commit
26328c9ef1
11 changed files with 303 additions and 26 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -1600,6 +1600,7 @@ 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);
|
||||
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ();
|
||||
|
|
@ -272,6 +272,72 @@ Editor::route_group_list_button_press_event (GdkEventButton* ev)
|
|||
break;
|
||||
|
||||
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;
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue