X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fsession_dialog.h;h=d5fe14af05095a9786c3f374c89615eff93e7922;hb=61d26e5678de2738120c5be9832d4e9c480d3c47;hp=0443ffd648b90bd67b62461adf810bda3a254457;hpb=63ea7b6516dbd7554d1eff6c98de50cf61fc9a72;p=ardour.git diff --git a/gtk2_ardour/session_dialog.h b/gtk2_ardour/session_dialog.h index 0443ffd648..d5fe14af05 100644 --- a/gtk2_ardour/session_dialog.h +++ b/gtk2_ardour/session_dialog.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -45,10 +46,11 @@ class EngineControl; -class SessionDialog : public ArdourDialog { - public: +class SessionDialog : public ArdourDialog +{ +public: SessionDialog (bool require_new, const std::string& session_name, const std::string& session_path, - const std::string& template_name, bool cancel_not_quit); + const std::string& template_name, bool cancel_not_quit); SessionDialog (); ~SessionDialog (); @@ -57,31 +59,17 @@ class SessionDialog : public ArdourDialog { std::string session_name (bool& should_be_new); std::string session_folder (); - bool use_session_template(); + bool use_session_template() const; std::string session_template_name(); - // advanced session options - - bool create_master_bus() const; - int master_channel_count() const; - - bool connect_inputs() const; - bool limit_inputs_used_for_connection() const; - int input_limit_count() const; - - bool connect_outputs() const; - bool limit_outputs_used_for_connection() const; - int output_limit_count() const; - - bool connect_outs_to_master() const; - bool connect_outs_to_physical() const; + uint32_t master_channel_count(); void set_provided_session(const std::string& session_name, const std::string& session_path) { _provided_session_name = session_name; _provided_session_path = session_path; } - private: +private: bool new_only; std::string _provided_session_name; std::string _provided_session_path; @@ -110,29 +98,33 @@ class SessionDialog : public ArdourDialog { void setup_existing_session_page (); - struct RecentSessionsSorter { - bool operator() (std::pair a, std::pair b) const { - return ARDOUR::cmp_nocase(a.first, b.first) == -1; - } + struct RecentSessionsSorter + { + bool operator() (std::pair a, std::pair b) const { + return ARDOUR::cmp_nocase(a.first, b.first) == -1; + } }; struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord { - RecentSessionModelColumns() { - add (visible_name); - add (tip); - add (fullpath); - add (sample_rate); - add (disk_format); - add (time_modified); - add (time_formatted); - } - Gtk::TreeModelColumn visible_name; - Gtk::TreeModelColumn tip; - Gtk::TreeModelColumn fullpath; - Gtk::TreeModelColumn sample_rate; - Gtk::TreeModelColumn disk_format; - Gtk::TreeModelColumn time_modified; - Gtk::TreeModelColumn time_formatted; + RecentSessionModelColumns() + { + add (visible_name); + add (tip); + add (fullpath); + add (sample_rate); + add (disk_format); + add (modified_with); + add (time_modified); + add (time_formatted); + } + Gtk::TreeModelColumn visible_name; + Gtk::TreeModelColumn tip; + Gtk::TreeModelColumn fullpath; + Gtk::TreeModelColumn sample_rate; + Gtk::TreeModelColumn disk_format; + Gtk::TreeModelColumn modified_with; + Gtk::TreeModelColumn time_modified; + Gtk::TreeModelColumn time_formatted; }; RecentSessionModelColumns recent_session_columns; @@ -162,88 +154,44 @@ class SessionDialog : public ArdourDialog { SessionTemplateColumns () { add (name); add (path); + add (description); + add (modified_with_short); + add (modified_with_long); } Gtk::TreeModelColumn name; Gtk::TreeModelColumn path; + Gtk::TreeModelColumn description; + Gtk::TreeModelColumn modified_with_short; + Gtk::TreeModelColumn modified_with_long; }; SessionTemplateColumns session_template_columns; - Glib::RefPtr template_model; - Gtk::ComboBox template_chooser; + + Glib::RefPtr template_model; + Gtk::TreeView template_chooser; + Gtk::ScrolledWindow template_scroller; + + void template_row_selected (); + + Gtk::TextView template_desc; + Gtk::Frame template_desc_frame; Gtk::VBox session_new_vbox; Gtk::VBox session_existing_vbox; - Gtk::Expander more_new_session_options_button; - Gtk::CheckButton use_template_button; std::string load_template_override; - void more_new_session_options_button_clicked(); void new_name_changed (); void new_name_activated (); void populate_session_templates (); - /* more options for new sessions */ - - Gtk::VBox more_options_vbox; - - Gtk::Label chan_count_label_1; - Gtk::Label chan_count_label_3; - Gtk::Label chan_count_label_4; - Gtk::Table advanced_table; - Gtk::HBox input_port_limit_hbox; - Gtk::VBox input_port_vbox; - Gtk::Table input_table; - Gtk::HBox input_hbox; - - Gtk::Label bus_label; - Gtk::Frame bus_frame; - Gtk::Table bus_table; - Gtk::HBox bus_hbox; - - Gtk::Label input_label; - Gtk::Frame input_frame; - Gtk::HBox output_port_limit_hbox; - Gtk::VBox output_port_vbox; - Gtk::VBox output_conn_vbox; - Gtk::VBox output_vbox; - Gtk::HBox output_hbox; - - Gtk::Label output_label; - Gtk::Frame output_frame; - Gtk::VBox advanced_vbox; - Gtk::Label advanced_label; - - Gtk::CheckButton _create_master_bus; - Gtk::SpinButton _master_bus_channel_count; - - Gtk::CheckButton _connect_inputs; - Gtk::CheckButton _limit_input_ports; - Gtk::SpinButton _input_limit_count; - - Gtk::CheckButton _connect_outputs; - Gtk::CheckButton _limit_output_ports; - Gtk::SpinButton _output_limit_count; - - Gtk::RadioButtonGroup connect_outputs_group; - Gtk::RadioButton _connect_outputs_to_master; - Gtk::RadioButton _connect_outputs_to_physical; - - Gtk::Adjustment _output_limit_count_adj; - Gtk::Adjustment _input_limit_count_adj; - Gtk::Adjustment _master_bus_channel_count_adj; - - void connect_inputs_clicked (); - void connect_outputs_clicked (); - void limit_inputs_clicked (); - void limit_outputs_clicked (); - void master_bus_button_clicked (); - void setup_more_options_box (); - /* --disable plugins UI */ Gtk::CheckButton _disable_plugins; void disable_plugins_clicked (); + /* meta-template */ + uint32_t meta_master_bus_profile (std::string script) const; + /* always there */ Glib::RefPtr layout;