X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fadd_route_dialog.h;h=1a571039260211a14e3ba2ba132f4bbd1dcb3273;hb=f66f7ba136c8588e47b3381ab07353e85f4100bf;hp=6103cec80cfb2bdf95eaf7529d0fe8dc585ba0d1;hpb=955d731fa6933e6769986687a781d16f7889da67;p=ardour.git diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 6103cec80c..1a57103926 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2000-2007 Paul Davis + Copyright (C) 2000-2007 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 @@ -29,48 +29,82 @@ #include #include #include +#include #include +#include +#include +#include "ardour/plugin.h" #include "ardour/types.h" #include "ardour/template_utils.h" -#include "ardour/session.h" -class AddRouteDialog : public Gtk::Dialog +#include "ardour_dialog.h" +#include "instrument_selector.h" +#include "route_dialogs.h" + +class Editor; +class RouteGroupDialog; + +class AddRouteDialog : public ArdourDialog { public: - AddRouteDialog (ARDOUR::Session &); + AddRouteDialog (); ~AddRouteDialog (); - bool track (); - int channels (); + enum TypeWanted { + AudioTrack, + MidiTrack, + MixedTrack, + AudioBus, + MidiBus, + VCAMaster, + }; + TypeWanted type_wanted() const; + + ARDOUR::ChanCount channels (); int count (); - std::string name_template (); + std::string name_template () const; + bool name_template_is_default () const; std::string track_template (); + ARDOUR::PluginInfoPtr requested_instrument (); - ARDOUR::DataType type(); ARDOUR::TrackMode mode(); ARDOUR::RouteGroup* route_group (); + RouteDialogs::InsertAt insert_at(); + bool use_strict_io(); + private: - ARDOUR::Session& _session; Gtk::Entry name_template_entry; - Gtk::RadioButton track_button; - Gtk::RadioButton bus_button; + Gtk::ComboBoxText track_bus_combo; Gtk::Adjustment routes_adjustment; Gtk::SpinButton routes_spinner; Gtk::ComboBoxText channel_combo; - Gtk::ComboBoxText track_mode_combo; + Gtk::Label configuration_label; + Gtk::Label mode_label; + Gtk::Label instrument_label; + Gtk::ComboBoxText mode_combo; Gtk::ComboBoxText route_group_combo; + InstrumentSelector instrument_combo; + Gtk::ComboBoxText insert_at_combo; + Gtk::ComboBoxText strict_io_combo; std::vector route_templates; - + void track_type_chosen (); void refill_channel_setups (); + void refill_route_groups (); + void refill_track_modes (); void add_route_group (ARDOUR::RouteGroup *); + void group_changed (); + void channel_combo_changed (); + bool channel_separator (const Glib::RefPtr &m, const Gtk::TreeModel::iterator &i); + bool route_separator (const Glib::RefPtr &m, const Gtk::TreeModel::iterator &i); + void maybe_update_name_template_entry (); void reset_template_option_visibility (); - + void new_group_dialog_finished (int, RouteGroupDialog*); void on_show (); struct ChannelSetup { @@ -82,8 +116,8 @@ class AddRouteDialog : public Gtk::Dialog typedef std::vector ChannelSetups; ChannelSetups channel_setups; - std::vector channel_combo_strings; - std::vector track_mode_strings; + static std::vector channel_combo_strings; + static std::vector bus_mode_strings; }; #endif /* __gtk_ardour_add_route_dialog_h__ */