X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstartup.h;h=06642c1d80a215d2bb4d969bced476300fbfa162;hb=b78d036aa056af0ef4f5821c45dae5f70bc69231;hp=9a4202b3995d4595fbea95e81c09f7c0e26dc9c9;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/startup.h b/gtk2_ardour/startup.h index 9a4202b399..06642c1d80 100644 --- a/gtk2_ardour/startup.h +++ b/gtk2_ardour/startup.h @@ -1,3 +1,22 @@ +/* + Copyright (C) 2010 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 __gtk2_ardour_startup_h__ #define __gtk2_ardour_startup_h__ @@ -20,6 +39,8 @@ #include #include +#include "ardour/utils.h" + class EngineControl; class ArdourStartup : public Gtk::Assistant { @@ -28,12 +49,13 @@ class ArdourStartup : public Gtk::Assistant { ~ArdourStartup (); void set_new_only (bool); + void set_load_template( std::string load_template ); - Glib::ustring session_name (bool& should_be_new); - Glib::ustring session_folder (); + std::string session_name (bool& should_be_new); + std::string session_folder (); bool use_session_template(); - Glib::ustring session_template_name(); + std::string session_template_name(); EngineControl* engine_control() { return engine_dialog; } @@ -42,9 +64,6 @@ class ArdourStartup : public Gtk::Assistant { bool create_master_bus() const; int master_channel_count() const; - bool create_control_bus() const; - int control_channel_count() const; - bool connect_inputs() const; bool limit_inputs_used_for_connection() const; int input_limit_count() const; @@ -54,17 +73,21 @@ class ArdourStartup : public Gtk::Assistant { int output_limit_count() const; bool connect_outs_to_master() const; - bool connect_outs_to_physical() const ; + bool connect_outs_to_physical() const; + + gint response () const { + return _response; + } private: - bool applying; + gint _response; bool config_modified; bool new_user; bool new_only; void on_apply (); void on_cancel (); - void on_close (); + bool on_delete_event (GdkEventAny*); void on_prepare (Gtk::Widget*); static ArdourStartup *the_startup; @@ -77,6 +100,7 @@ class ArdourStartup : public Gtk::Assistant { bool splash_expose (GdkEventExpose* ev); void setup_first_time_config_page (); + void config_changed (); /* first page */ Gtk::FileChooserButton* default_dir_chooser; @@ -89,7 +113,8 @@ class ArdourStartup : public Gtk::Assistant { Gtk::VBox ic_vbox; Gtk::RadioButton ic_new_session_button; Gtk::RadioButton ic_existing_session_button; - bool initial_choice_activated(GdkEventButton *); + bool initial_button_press(GdkEventButton *); + void initial_button_activated(); /* monitoring choices */ @@ -99,6 +124,14 @@ class ArdourStartup : public Gtk::Assistant { Gtk::RadioButton monitor_via_ardour_button; void setup_monitoring_choice_page (); + /* monitor section choices */ + + Gtk::VBox mon_sec_vbox; + Gtk::Label monitor_section_label; + Gtk::RadioButton use_monitor_section_button; + Gtk::RadioButton no_monitor_section_button; + void setup_monitor_section_choice_page (); + /* session page (could be new or existing) */ void setup_session_page (); @@ -120,18 +153,21 @@ class ArdourStartup : public Gtk::Assistant { add (visible_name); add (fullpath); } - Gtk::TreeModelColumn visible_name; - Gtk::TreeModelColumn fullpath; + Gtk::TreeModelColumn visible_name; + Gtk::TreeModelColumn fullpath; }; RecentSessionModelColumns recent_session_columns; Gtk::TreeView recent_session_display; Glib::RefPtr recent_session_model; Gtk::ScrolledWindow recent_scroller; - void redisplay_recent_sessions (); + Gtk::FileChooserButton existing_session_chooser; + int redisplay_recent_sessions (); void recent_session_row_selected (); void recent_row_activated (const Gtk::TreePath& path, Gtk::TreeViewColumn* col); + void existing_session_selected (); + /* audio setup page */ void setup_audio_page (); @@ -143,6 +179,7 @@ class ArdourStartup : public Gtk::Assistant { Gtk::Entry new_name_entry; Gtk::FileChooserButton new_folder_chooser; Gtk::FileChooserButton session_template_chooser; + void new_name_mapped (); struct SessionTemplateColumns : public Gtk::TreeModel::ColumnRecord { SessionTemplateColumns () { @@ -159,10 +196,12 @@ class ArdourStartup : public Gtk::Assistant { Gtk::ComboBox template_chooser; Gtk::VBox session_new_vbox; + Gtk::VBox session_existing_vbox; Gtk::CheckButton more_new_session_options_button; Gtk::RadioButtonGroup session_template_group; Gtk::RadioButton use_session_as_template_button; Gtk::RadioButton use_template_button; + std::string load_template_override; void more_new_session_options_button_clicked(); void new_name_changed (); @@ -173,7 +212,6 @@ class ArdourStartup : public Gtk::Assistant { Gtk::VBox more_options_vbox; Gtk::Label chan_count_label_1; - Gtk::Label chan_count_label_2; Gtk::Label chan_count_label_3; Gtk::Label chan_count_label_4; Gtk::Table advanced_table; @@ -203,9 +241,6 @@ class ArdourStartup : public Gtk::Assistant { Gtk::CheckButton _create_master_bus; Gtk::SpinButton _master_bus_channel_count; - Gtk::CheckButton _create_control_bus; - Gtk::SpinButton _control_bus_channel_count; - Gtk::CheckButton _connect_inputs; Gtk::CheckButton _limit_input_ports; Gtk::SpinButton _input_limit_count; @@ -220,7 +255,6 @@ class ArdourStartup : public Gtk::Assistant { Gtk::Adjustment _output_limit_count_adj; Gtk::Adjustment _input_limit_count_adj; - Gtk::Adjustment _control_bus_channel_count_adj; Gtk::Adjustment _master_bus_channel_count_adj; void connect_inputs_clicked (); @@ -228,7 +262,6 @@ class ArdourStartup : public Gtk::Assistant { void limit_inputs_clicked (); void limit_outputs_clicked (); void master_bus_button_clicked (); - void monitor_bus_button_clicked (); void setup_more_options_page (); /* final page */ @@ -246,6 +279,7 @@ class ArdourStartup : public Gtk::Assistant { gint new_user_page_index; gint default_folder_page_index; gint monitoring_page_index; + gint monitor_section_page_index; gint session_page_index; gint initial_choice_index; gint final_page_index; @@ -253,6 +287,7 @@ class ArdourStartup : public Gtk::Assistant { void move_along_now (); + bool _existing_session_chooser_used; ///< set to true when the existing session chooser has been used }; #endif /* __gtk2_ardour_startup_h__ */