X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Fadd_route_dialog.h;h=685622029516d3c8e6763f1e8f89509d5613c9a8;hb=7aa5ada0e07e13387ddac42b22d7da80a1c0b717;hp=28d8916985b4c5ac3aafd5144c5b6b5dd07bdab1;hpb=8ca561f8d322d237d7aaa74ebf82f6892064da94;p=ardour.git diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 28d8916985..6856220295 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -1,3 +1,22 @@ +/* + 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 + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef __gtk_ardour_add_route_dialog_h__ #define __gtk_ardour_add_route_dialog_h__ @@ -10,34 +29,99 @@ #include #include #include +#include #include +#include +#include + +#include "ardour/plugin.h" +#include "ardour/types.h" +#include "ardour/template_utils.h" -#include +#include "ardour_dialog.h" +#include "instrument_selector.h" -class AddRouteDialog : public Gtk::Dialog +class Editor; +class RouteGroupDialog; + +class AddRouteDialog : public ArdourDialog { public: AddRouteDialog (); ~AddRouteDialog (); - bool track (); - std::string name_template (); - int channels (); + enum TypeWanted { + AudioTrack, + MidiTrack, + MixedTrack, + AudioBus, + MidiBus, + VCAMaster, + }; + TypeWanted type_wanted() const; + + ARDOUR::ChanCount channels (); int count (); + + std::string name_template () const; + bool name_template_is_default () const; + std::string track_template (); + ARDOUR::PluginInfoPtr requested_instrument (); + ARDOUR::TrackMode mode(); + ARDOUR::RouteGroup* route_group (); + enum InsertAt { + BeforeSelection, + AfterSelection, + First, + Last + }; + InsertAt insert_at(); + bool use_strict_io(); private: 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::Frame aframe; - Gtk::Frame ccframe; + 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 { + std::string name; + std::string template_path; + uint32_t channels; + }; + + typedef std::vector ChannelSetups; + ChannelSetups channel_setups; + + static std::vector channel_combo_strings; + static std::vector bus_mode_strings; }; #endif /* __gtk_ardour_add_route_dialog_h__ */