summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-02-27 01:59:04 +0000
committerCarl Hetherington <carl@carlh.net>2011-02-27 01:59:04 +0000
commit7590b859fd0f836c624394c674aac09f812b3cfb (patch)
tree0157c4f2bf1aa94b032ba60cb7e549c88d172377 /gtk2_ardour
parent90c69e71168d665abfa8c605a5e666fe9e4fdb5b (diff)
Allow naming of new tracks/busses in the add route dialogue (#3376).
git-svn-id: svn://localhost/ardour2/branches/3.0@8976 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/add_route_dialog.cc53
-rw-r--r--gtk2_ardour/add_route_dialog.h1
-rw-r--r--gtk2_ardour/ardour_ui.cc24
-rw-r--r--gtk2_ardour/ardour_ui.h36
4 files changed, 85 insertions, 29 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index 95ee556ebe..1f7239f6e9 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -130,27 +130,37 @@ AddRouteDialog::AddRouteDialog (Session* s)
l->set_padding (8, 0);
table2->attach (*l, 0, 1, 0, 3, Gtk::FILL, Gtk::FILL, 0, 0);
+ int n = 0;
+
+ l = manage (new Label (_("Name:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
+ table2->attach (*l, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
+ table2->attach (name_template_entry, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+ ++n;
+
/* Route configuration */
l = manage (new Label (_("Configuration:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
- table2->attach (*l, 1, 2, 0, 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
- table2->attach (channel_combo, 2, 3, 0, 1, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
+ table2->attach (*l, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
+ table2->attach (channel_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+ ++n;
if (!ARDOUR::Profile->get_sae ()) {
/* Track mode */
mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
- table2->attach (mode_label, 1, 2, 1, 2, Gtk::FILL, Gtk::EXPAND, 0, 0);
- table2->attach (mode_combo, 2, 3, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
+ table2->attach (mode_label, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
+ table2->attach (mode_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+ ++n;
}
/* Group choice */
l = manage (new Label (_("Group:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false));
- table2->attach (*l, 1, 2, 2, 3, Gtk::FILL, Gtk::EXPAND, 0, 0);
- table2->attach (route_group_combo, 2, 3, 2, 3, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
+ table2->attach (*l, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
+ table2->attach (route_group_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+ ++n;
options_box->pack_start (*table2, false, true);
vbox->pack_start (*options_box, false, true);
@@ -158,6 +168,7 @@ AddRouteDialog::AddRouteDialog (Session* s)
get_vbox()->pack_start (*vbox, false, false);
track_bus_combo.signal_changed().connect (sigc::mem_fun (*this, &AddRouteDialog::track_type_chosen));
+ channel_combo.signal_changed().connect (sigc::mem_fun (*this, &AddRouteDialog::maybe_update_name_template_entry));
channel_combo.set_row_separator_func (sigc::mem_fun (*this, &AddRouteDialog::channel_separator));
route_group_combo.set_row_separator_func (sigc::mem_fun (*this, &AddRouteDialog::route_separator));
route_group_combo.signal_changed ().connect (sigc::mem_fun (*this, &AddRouteDialog::group_changed));
@@ -179,18 +190,34 @@ AddRouteDialog::~AddRouteDialog ()
}
void
-AddRouteDialog::track_type_chosen ()
+AddRouteDialog::maybe_update_name_template_entry ()
{
- if (track()) {
- mode_label.set_text (_("Track mode:"));
- set_popdown_strings (mode_combo, track_mode_strings);
- mode_combo.set_sensitive (true);
- mode_combo.set_active_text (track_mode_strings.front());
+ if (
+ name_template_entry.get_text() != "" &&
+ name_template_entry.get_text() != _("Audio") &&
+ name_template_entry.get_text() != _("MIDI") &&
+ name_template_entry.get_text() != _("Bus")) {
+ return;
+ }
+
+ if (track ()) {
+ if (type () == DataType::MIDI) {
+ name_template_entry.set_text (_("MIDI"));
+ } else {
+ name_template_entry.set_text (_("Audio"));
+ }
} else {
- mode_combo.set_sensitive (false);
+ name_template_entry.set_text (_("Bus"));
}
}
+void
+AddRouteDialog::track_type_chosen ()
+{
+ mode_combo.set_sensitive (track ());
+ maybe_update_name_template_entry ();
+}
+
bool
AddRouteDialog::track ()
{
diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h
index bc0434e461..9d4d89906a 100644
--- a/gtk2_ardour/add_route_dialog.h
+++ b/gtk2_ardour/add_route_dialog.h
@@ -75,6 +75,7 @@ class AddRouteDialog : public ArdourDialog
void group_changed ();
bool channel_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
bool route_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
+ void maybe_update_name_template_entry ();
void reset_template_option_visibility ();
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index d98be0ae7f..bfe8458b62 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -1334,7 +1334,7 @@ ARDOUR_UI::open_session ()
void
-ARDOUR_UI::session_add_midi_route (bool disk, RouteGroup* route_group, uint32_t how_many)
+ARDOUR_UI::session_add_midi_route (bool disk, RouteGroup* route_group, uint32_t how_many, string const & name_template)
{
list<boost::shared_ptr<MidiTrack> > tracks;
@@ -1346,7 +1346,7 @@ ARDOUR_UI::session_add_midi_route (bool disk, RouteGroup* route_group, uint32_t
try {
if (disk) {
- tracks = _session->new_midi_track (ARDOUR::Normal, route_group, how_many);
+ tracks = _session->new_midi_track (ARDOUR::Normal, route_group, how_many, name_template);
if (tracks.size() != how_many) {
if (how_many == 1) {
@@ -1374,7 +1374,15 @@ restart JACK with more ports."), PROGRAM_NAME));
void
-ARDOUR_UI::session_add_audio_route (bool track, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, RouteGroup* route_group, uint32_t how_many)
+ARDOUR_UI::session_add_audio_route (
+ bool track,
+ int32_t input_channels,
+ int32_t output_channels,
+ ARDOUR::TrackMode mode,
+ RouteGroup* route_group,
+ uint32_t how_many,
+ string const & name_template
+ )
{
list<boost::shared_ptr<AudioTrack> > tracks;
RouteList routes;
@@ -1386,7 +1394,7 @@ ARDOUR_UI::session_add_audio_route (bool track, int32_t input_channels, int32_t
try {
if (track) {
- tracks = _session->new_audio_track (input_channels, output_channels, mode, route_group, how_many);
+ tracks = _session->new_audio_track (input_channels, output_channels, mode, route_group, how_many, name_template);
if (tracks.size() != how_many) {
if (how_many == 1) {
@@ -1399,7 +1407,7 @@ ARDOUR_UI::session_add_audio_route (bool track, int32_t input_channels, int32_t
} else {
- routes = _session->new_audio_route (input_channels, output_channels, route_group, how_many);
+ routes = _session->new_audio_route (input_channels, output_channels, route_group, how_many, name_template);
if (routes.size() != how_many) {
if (how_many == 1) {
@@ -3219,7 +3227,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
if (add_route_dialog->type() == ARDOUR::DataType::MIDI) {
if (track) {
- session_add_midi_track (route_group, count);
+ session_add_midi_track (route_group, count, name_template);
} else {
MessageDialog msg (*editor,
_("Sorry, MIDI Busses are not supported at this time."));
@@ -3228,9 +3236,9 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
}
} else {
if (track) {
- session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count);
+ session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count, name_template);
} else {
- session_add_audio_bus (input_chan, output_chan, route_group, count);
+ session_add_audio_bus (input_chan, output_chan, route_group, count, name_template);
}
}
}
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 03eaf1379b..d38dabc085 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -204,16 +204,36 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
void add_route (Gtk::Window* float_window);
- void session_add_audio_track (int input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
- session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many);
+ void session_add_audio_track (
+ int input_channels,
+ int32_t output_channels,
+ ARDOUR::TrackMode mode,
+ ARDOUR::RouteGroup* route_group,
+ uint32_t how_many,
+ std::string const & name_template
+ ) {
+
+ session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many, name_template);
}
- void session_add_audio_bus (int input_channels, int32_t output_channels, ARDOUR::RouteGroup* route_group, uint32_t how_many) {
- session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many);
+ void session_add_audio_bus (
+ int input_channels,
+ int32_t output_channels,
+ ARDOUR::RouteGroup* route_group,
+ uint32_t how_many,
+ std::string const & name_template
+ ) {
+
+ session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many, name_template);
}
- void session_add_midi_track (ARDOUR::RouteGroup* route_group, uint32_t how_many) {
- session_add_midi_route (true, route_group, how_many);
+ void session_add_midi_track (
+ ARDOUR::RouteGroup* route_group,
+ uint32_t how_many,
+ std::string const & name_template
+ ) {
+
+ session_add_midi_route (true, route_group, how_many, name_template);
}
/*void session_add_midi_bus () {
@@ -549,8 +569,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
void edit_metadata ();
void import_metadata ();
- void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode, ARDOUR::RouteGroup *, uint32_t how_many);
- void session_add_midi_route (bool disk, ARDOUR::RouteGroup *, uint32_t how_many);
+ void session_add_audio_route (bool, int32_t, int32_t, ARDOUR::TrackMode, ARDOUR::RouteGroup *, uint32_t, std::string const &);
+ void session_add_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &);
void set_transport_sensitivity (bool);