X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fadd_route_dialog.h;h=78dd51035c08d3bbd03716afb936d04b5632ae6c;hb=a7f4f660956250cc98cc519321ad5b8e715f9d0f;hp=52cb70a5daf8e8b7eeda0e43396954c6164a879a;hpb=e0aaed6d65f160c328cb8b56d7c6552ee15d65e2;p=ardour.git diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 52cb70a5da..78dd51035c 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -30,35 +30,69 @@ #include #include #include +#include #include "ardour/types.h" -#include "ardour/data_type.h" +#include "ardour/template_utils.h" +#include "ardour/session.h" -class AddRouteDialog : public Gtk::Dialog +#include "ardour_dialog.h" + +class Editor; + +class AddRouteDialog : public ArdourDialog { public: - AddRouteDialog (); + AddRouteDialog (ARDOUR::Session &); ~AddRouteDialog (); bool track (); - ARDOUR::DataType type(); - std::string name_template (); int channels (); int count (); + + std::string name_template (); + std::string track_template (); + + ARDOUR::DataType type(); ARDOUR::TrackMode mode(); + ARDOUR::RouteGroup* route_group (); 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::Label track_mode_label; Gtk::ComboBoxText track_mode_combo; - Gtk::Frame aframe; - Gtk::Frame ccframe; + Gtk::ComboBoxText route_group_combo; + std::vector route_templates; + void track_type_chosen (); + void refill_channel_setups (); + void refill_route_groups (); + void add_route_group (ARDOUR::RouteGroup *); + void group_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 reset_template_option_visibility (); + + void on_show (); + + struct ChannelSetup { + std::string name; + std::string template_path; + uint32_t channels; + }; + + typedef std::vector ChannelSetups; + ChannelSetups channel_setups; + + std::vector channel_combo_strings; + std::vector track_mode_strings; }; #endif /* __gtk_ardour_add_route_dialog_h__ */