13
0

some improvements to the add track/bus dialog to make it more obvious how to add MIDI tracks

git-svn-id: svn://localhost/ardour2/branches/3.0@11348 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2012-01-25 18:45:19 +00:00
parent 9ac351e60c
commit a880cb543d
3 changed files with 32 additions and 44 deletions

View File

@ -61,7 +61,7 @@ AddRouteDialog::AddRouteDialog (Session* s)
set_resizable (false);
name_template_entry.set_name (X_("AddRouteDialogNameTemplateEntry"));
routes_spinner.set_name (X_("AddRouteDialogSpinner"));
// routes_spinner.set_name (X_("AddRouteDialogSpinner"));
channel_combo.set_name (X_("ChannelCountSelector"));
mode_combo.set_name (X_("ChannelCountSelector"));
@ -71,8 +71,9 @@ AddRouteDialog::AddRouteDialog (Session* s)
channel_combo.set_active_text (channel_combo_strings.front());
track_bus_combo.append_text (_("tracks"));
track_bus_combo.append_text (_("busses"));
track_bus_combo.append_text (_("Audio Tracks"));
track_bus_combo.append_text (_("MIDI Tracks"));
track_bus_combo.append_text (_("Busses"));
track_bus_combo.set_active (0);
VBox* vbox = manage (new VBox);
@ -186,12 +187,10 @@ AddRouteDialog::maybe_update_name_template_entry ()
return;
}
if (track ()) {
if (type () == DataType::MIDI) {
name_template_entry.set_text (_("MIDI"));
} else {
name_template_entry.set_text (_("Audio"));
}
if (audio_tracks_wanted ()) {
name_template_entry.set_text (_("Audio"));
} else if (midi_tracks_wanted()) {
name_template_entry.set_text (_("MIDI"));
} else {
name_template_entry.set_text (_("Bus"));
}
@ -200,22 +199,30 @@ AddRouteDialog::maybe_update_name_template_entry ()
void
AddRouteDialog::track_type_chosen ()
{
mode_combo.set_sensitive (track ());
if (midi_tracks_wanted()) {
channel_combo.set_sensitive (false);
mode_combo.set_sensitive (false);
} else if (audio_tracks_wanted()) {
mode_combo.set_sensitive (true);
channel_combo.set_sensitive (true);
} else {
mode_combo.set_sensitive (false);
channel_combo.set_sensitive (true);
}
maybe_update_name_template_entry ();
}
bool
AddRouteDialog::track ()
AddRouteDialog::audio_tracks_wanted ()
{
return track_bus_combo.get_active_row_number () == 0;
}
ARDOUR::DataType
AddRouteDialog::type ()
bool
AddRouteDialog::midi_tracks_wanted ()
{
return (channel_combo.get_active_text() == _("MIDI"))
? ARDOUR::DataType::MIDI
: ARDOUR::DataType::AUDIO;
return track_bus_combo.get_active_row_number () == 1;
}
string
@ -239,10 +246,7 @@ AddRouteDialog::refill_track_modes ()
if (!ARDOUR::Profile->get_sae ()) {
s.push_back (_("Non Layered"));
if (type() != DataType::MIDI) {
s.push_back (_("Tape"));
}
s.push_back (_("Tape"));
}
set_popdown_strings (mode_combo, s);
@ -329,13 +333,6 @@ AddRouteDialog::refill_channel_setups ()
chn.name = "separator";
channel_setups.push_back (chn);
chn.name = _("MIDI");
chn.channels = 0;
channel_setups.push_back (chn);
chn.name = "separator";
channel_setups.push_back (chn);
ARDOUR::find_route_templates (route_templates);
if (!ARDOUR::Profile->get_sae()) {

View File

@ -45,14 +45,14 @@ class AddRouteDialog : public ArdourDialog
AddRouteDialog (ARDOUR::Session*);
~AddRouteDialog ();
bool track ();
bool audio_tracks_wanted ();
bool midi_tracks_wanted ();
int channels ();
int count ();
std::string name_template ();
std::string track_template ();
ARDOUR::DataType type();
ARDOUR::TrackMode mode();
ARDOUR::RouteGroup* route_group ();

View File

@ -3260,6 +3260,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
if (add_route_dialog == 0) {
add_route_dialog = new AddRouteDialog (_session);
add_route_dialog->set_position (WIN_POS_MOUSE);
if (float_window) {
add_route_dialog->set_transient_for (*float_window);
}
@ -3296,7 +3297,6 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
uint32_t input_chan = add_route_dialog->channels ();
uint32_t output_chan;
string name_template = add_route_dialog->name_template ();
bool track = add_route_dialog->track ();
RouteGroup* route_group = add_route_dialog->route_group ();
AutoConnectOption oac = Config->get_output_auto_connect();
@ -3309,21 +3309,12 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
/* XXX do something with name template */
if (add_route_dialog->type() == ARDOUR::DataType::MIDI) {
if (track) {
session_add_midi_track (route_group, count, name_template);
} else {
MessageDialog msg (*editor,
_("Sorry, MIDI Busses are not supported at this time."));
msg.run ();
//session_add_midi_bus();
}
if (add_route_dialog->midi_tracks_wanted()) {
session_add_midi_track (route_group, count, name_template);
} else if (add_route_dialog->audio_tracks_wanted()) {
session_add_audio_track (input_chan, output_chan, add_route_dialog->mode(), route_group, count, name_template);
} else {
if (track) {
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, name_template);
}
session_add_audio_bus (input_chan, output_chan, route_group, count, name_template);
}
}