X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fadd_route_dialog.h;h=c49e1a1692ef30df0fec4db4c99edfc9145ee50e;hb=0034f246cb283cea1ad100bfe383ad7801140da9;hp=6fe726645238da0ffe19a9076be0127519dd1d7c;hpb=55a10480945f2a41fe6cfda2173bed12d3d5bc89;p=ardour.git diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 6fe7266452..c49e1a1692 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -31,56 +31,82 @@ #include #include #include +#include #include +#include +#include #include +#include #include "ardour/plugin.h" #include "ardour/types.h" #include "ardour/template_utils.h" #include "ardour_dialog.h" +#include "instrument_selector.h" +#include "route_dialogs.h" class Editor; +class RouteGroupDialog; class AddRouteDialog : public ArdourDialog { - public: - AddRouteDialog (ARDOUR::Session*); +public: + AddRouteDialog (); ~AddRouteDialog (); - enum TypeWanted { + enum ResponseId { + Add, + AddAndClose, + }; + + enum TypeWanted { AudioTrack, MidiTrack, MixedTrack, - AudioBus + AudioBus, + MidiBus, + VCAMaster, }; - TypeWanted type_wanted() const; - - ARDOUR::ChanCount channels (); + TypeWanted type_wanted() const; + + ARDOUR::ChanCount channels (); + uint32_t channel_count (); int count (); - std::string name_template () const; - bool name_template_is_default () const; - std::string track_template (); + std::string name_template () const; + bool name_template_is_default () const; ARDOUR::PluginInfoPtr requested_instrument (); - + ARDOUR::TrackMode mode(); ARDOUR::RouteGroup* route_group (); - private: + RouteDialogs::InsertAt insert_at(); + bool use_strict_io(); + + std::string get_template_path(); + +private: Gtk::Entry name_template_entry; Gtk::ComboBoxText track_bus_combo; Gtk::Adjustment routes_adjustment; Gtk::SpinButton routes_spinner; Gtk::ComboBoxText channel_combo; Gtk::Label configuration_label; + Gtk::Label manual_label; + Gtk::Label add_label; + Gtk::Label type_label; + Gtk::Label name_label; + Gtk::Label group_label; + Gtk::Label insert_label; + Gtk::Label strict_io_label; Gtk::Label mode_label; Gtk::Label instrument_label; Gtk::ComboBoxText mode_combo; Gtk::ComboBoxText route_group_combo; - Gtk::ComboBox instrument_combo; - - std::vector route_templates; + InstrumentSelector instrument_combo; + Gtk::ComboBoxText insert_at_combo; + Gtk::ComboBoxText strict_io_combo; void track_type_chosen (); void refill_channel_setups (); @@ -93,14 +119,38 @@ class AddRouteDialog : public ArdourDialog bool route_separator (const Glib::RefPtr &m, const Gtk::TreeModel::iterator &i); void maybe_update_name_template_entry (); - void reset_template_option_visibility (); + struct TrackTemplateColumns : public Gtk::TreeModel::ColumnRecord { + TrackTemplateColumns () { + add (name); + add (path); + add (description); + add (created_with); + } + + Gtk::TreeModelColumn name; + Gtk::TreeModelColumn path; + Gtk::TreeModelColumn description; + Gtk::TreeModelColumn created_with; + }; + + TrackTemplateColumns track_template_columns; + + Glib::RefPtr trk_template_model; + Gtk::TreeView trk_template_chooser; + void trk_template_row_selected (); + + Gtk::TextView trk_template_desc; + Gtk::Frame trk_template_desc_frame; + + void reset_template_option_visibility (); + void new_group_dialog_finished (int, RouteGroupDialog*); void on_show (); + void on_response (int); struct ChannelSetup { - std::string name; - std::string template_path; - uint32_t channels; + std::string name; + uint32_t channels; }; typedef std::vector ChannelSetups; @@ -109,19 +159,9 @@ class AddRouteDialog : public ArdourDialog static std::vector channel_combo_strings; static std::vector bus_mode_strings; - struct InstrumentListColumns : public Gtk::TreeModel::ColumnRecord { - InstrumentListColumns () { - add (name); - add (info_ptr); - } - Gtk::TreeModelColumn name; - Gtk::TreeModelColumn info_ptr; - }; - - Glib::RefPtr instrument_list; - InstrumentListColumns instrument_list_columns; - - void build_instrument_list (); + bool name_edited_by_user; + void name_template_entry_insertion (Glib::ustring const &,int*); + void name_template_entry_deletion (int, int); }; #endif /* __gtk_ardour_add_route_dialog_h__ */