#include <sigc++/bind.h>
#include <gtkmm/stock.h>
+#include <gtkmm/messagedialog.h>
#include <gtkmm/separator.h>
#include <gtkmm/table.h>
using namespace std;
using namespace PBD;
using namespace ARDOUR;
+using namespace ARDOUR_UI_UTILS;
std::vector<std::string> AddRouteDialog::channel_combo_strings;
-AddRouteDialog::AddRouteDialog (Session* s)
+AddRouteDialog::AddRouteDialog ()
: ArdourDialog (_("Add Track or Bus"))
, routes_adjustment (1, 1, 128, 1, 4)
, routes_spinner (routes_adjustment)
, configuration_label (_("Configuration:"))
, mode_label (_("Track mode:"))
, instrument_label (_("Instrument:"))
+ , reasonable_synth_id(0)
{
- set_session (s);
-
set_name ("AddRouteDialog");
- set_position (Gtk::WIN_POS_MOUSE);
set_modal (true);
set_skip_taskbar_hint (true);
set_resizable (false);
build_instrument_list ();
instrument_combo.set_model (instrument_list);
instrument_combo.pack_start (instrument_list_columns.name);
- instrument_combo.set_active (0);
+ instrument_combo.set_active (reasonable_synth_id);
instrument_combo.set_button_sensitivity (Gtk::SENSITIVITY_AUTO);
VBox* vbox = manage (new VBox);
instrument_label.set_sensitive (true);
break;
case MixedTrack:
+ {
+ MessageDialog msg (_("Audio+MIDI tracks are intended for use <b>ONLY</b> with plugins that use both audio and MIDI input data\n\n"
+ "If you do not plan to use such a plugin, then use a normal audio or MIDI track instead."),
+ true, MESSAGE_INFO, BUTTONS_OK, true);
+ msg.set_position (WIN_POS_MOUSE);
+ msg.run ();
+ }
channel_combo.set_sensitive (true);
mode_combo.set_sensitive (true);
instrument_combo.set_sensitive (true);
string
-AddRouteDialog::name_template ()
+AddRouteDialog::name_template () const
{
return name_template_entry.get_text ();
}
+bool
+AddRouteDialog::name_template_is_default() const
+{
+ string n = name_template();
+
+ if (n == _("Audio") ||
+ n == _("MIDI") ||
+ n == _("Audio+MIDI") ||
+ n == _("Bus")) {
+ return true;
+ }
+
+ return false;
+}
+
int
AddRouteDialog::count ()
{
RouteGroup*
AddRouteDialog::route_group ()
{
- if (route_group_combo.get_active_row_number () == 2) {
+ if (!_session || route_group_combo.get_active_row_number () == 2) {
return 0;
}
route_group_combo.append_text (_("No Group"));
- _session->foreach_route_group (sigc::mem_fun (*this, &AddRouteDialog::add_route_group));
+ if (_session) {
+ _session->foreach_route_group (sigc::mem_fun (*this, &AddRouteDialog::add_route_group));
+ }
route_group_combo.set_active (2);
}
delete g;
route_group_combo.set_active (2);
} else {
- _session->add_route_group (g);
+ if (_session) {
+ _session->add_route_group (g);
+ }
add_route_group (g);
route_group_combo.set_active (3);
}
row[instrument_list_columns.info_ptr] = PluginInfoPtr ();
row[instrument_list_columns.name] = _("-none-");
+ uint32_t n = 1;
for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end(); ++i) {
if (manager.get_status (*i) == PluginManager::Hidden) continue;
row = *(instrument_list->append());
row[instrument_list_columns.name] = (*i)->name;
row[instrument_list_columns.info_ptr] = *i;
+ if ((*i)->unique_id == "https://community.ardour.org/node/7596") {
+ reasonable_synth_id = n;
+ }
+ n++;
}
}
}