X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui.h;h=c6e9a4546e9015df4f360034aa2aa187257c24fc;hb=9ab70fb55284537228577d575f15aa03949bd678;hp=cbb69af320a448d4023dfcaf5559efd497a850d5;hpb=6039331bea9afb0ce8888659832a04b39ff6be7a;p=ardour.git diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index cbb69af320..c6e9a4546e 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -53,8 +53,8 @@ #include #include #include -#include #include +#include #include #include @@ -106,9 +106,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI void show_splash (); void hide_splash (); - int load_session (string path, string snapshot, string* mix_template = 0); + int load_session (const string & path, const string & snapshot, string* mix_template = 0); bool session_loaded; - int build_session (string path, string snapshot, + int build_session (const string & path, const string & snapshot, uint32_t ctl_chns, uint32_t master_chns, ARDOUR::Session::AutoConnectOption input_connect, @@ -129,12 +129,12 @@ class ARDOUR_UI : public Gtkmm2ext::UI } void new_session(bool startup = false, std::string path = string()); - gint cmdline_new_session (std::string path); + gint cmdline_new_session (string path); int unload_session (); void close_session() { unload_session(); } int save_state_canfail (string state_name = ""); - void save_state (string state_name = ""); + void save_state (const string & state_name = ""); void restore_state (string state_name = ""); static double gain_to_slider_position (ARDOUR::gain_t g); @@ -150,6 +150,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void toggle_connection_editor (); void toggle_route_params_window (); void toggle_tempo_window (); + void toggle_editing_space(); gint32 select_diskstream (GdkEventButton *ev); @@ -188,12 +189,12 @@ class ARDOUR_UI : public Gtkmm2ext::UI void add_route (); - void session_add_audio_track (int input_channels, int32_t output_channels) { - session_add_audio_route (true, input_channels, output_channels); + void session_add_audio_track (int input_channels, int32_t output_channels, ARDOUR::TrackMode mode) { + session_add_audio_route (true, input_channels, output_channels, mode); } void session_add_audio_bus (int input_channels, int32_t output_channels) { - session_add_audio_route (false, input_channels, output_channels); + session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal); } void session_add_midi_track (); @@ -202,6 +203,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI gint exit_on_main_window_close (GdkEventAny *); + void maximise_editing_space (); + void restore_editing_space (); + protected: friend class PublicEditor; @@ -212,7 +216,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI void toggle_punch_out (); void toggle_auto_return (); void toggle_click (); - void toggle_follow (); void toggle_session_auto_loop (); void toggle_session_punch_in (); @@ -286,7 +289,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void shutdown (); void finish(); - int ask_about_saving_session (string why); + int ask_about_saving_session (const string & why); gint ask_about_save_deleted (GdkEventAny*); void save_session_choice_made (int); int save_the_session; @@ -300,14 +303,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI void engine_stopped (); void engine_running (); - void map_some_session_state (Gtk::ToggleButton& button, - bool (ARDOUR::Session::*get)() const); - - void toggle_some_session_state (Gtk::ToggleButton& button, - bool (ARDOUR::Session::*get)() const, - void (ARDOUR::Session::*set)(bool)); - void map_button_state (); - void clear_meters (); static gint _blink (void *); @@ -339,7 +334,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void detach_tearoff (Gtk::Box* parent, Gtk::Widget* contents); void reattach_tearoff (Gtk::Box* parent, Gtk::Widget* contents, int32_t order); - Gtkmm2ext::TearOff* transport_tearoff; + Gtkmm2ext::TearOff* transport_tearoff; Gtk::Frame transport_frame; Gtk::HBox transport_tearoff_hbox; Gtk::HBox transport_hbox; @@ -355,11 +350,22 @@ class ARDOUR_UI : public Gtkmm2ext::UI Gtk::HBox primary_clock_hbox; Gtk::HBox secondary_clock_hbox; - Gtk::Button goto_start_button; - Gtk::Button goto_end_button; - Gtk::Button rewind_button; - Gtk::Button forward_button; - Gtk::Button stop_button; + Gtkmm2ext::StatefulButton roll_button; + Gtkmm2ext::StatefulButton stop_button; + Gtkmm2ext::StatefulButton rewind_button; + Gtkmm2ext::StatefulButton forward_button; + Gtkmm2ext::StatefulButton goto_start_button; + Gtkmm2ext::StatefulButton goto_end_button; + Gtkmm2ext::StatefulButton auto_loop_button; + Gtkmm2ext::StatefulButton play_selection_button; + + Gtkmm2ext::StatefulButton rec_button; + + Gtk::ToggleButton time_master_button; + Gtk::ComboBoxText sync_option_combo; + + void sync_option_changed (); + void toggle_time_master (); enum ShuttleBehaviour { Sprung, @@ -371,21 +377,22 @@ class ARDOUR_UI : public Gtkmm2ext::UI Semitones }; - Gtk::DrawingArea shuttle_box; - Gtk::EventBox speed_display_box; - Gtk::Label speed_display_label; - Gtk::Button shuttle_units_button; - Gtk::Button shuttle_style_button; - Gtk::Menu* shuttle_unit_menu; - Gtk::Menu* shuttle_style_menu; - ShuttleBehaviour shuttle_behaviour; - ShuttleUnits shuttle_units; - - void shuttle_style_clicked (); + Gtk::DrawingArea shuttle_box; + Gtk::EventBox speed_display_box; + Gtk::Label speed_display_label; + Gtk::Button shuttle_units_button; + Gtk::ComboBoxText shuttle_style_button; + Gtk::Menu* shuttle_unit_menu; + Gtk::Menu* shuttle_style_menu; + ShuttleBehaviour shuttle_behaviour; + ShuttleUnits shuttle_units; + + void shuttle_style_changed(); void shuttle_unit_clicked (); void set_shuttle_behaviour (ShuttleBehaviour); void set_shuttle_units (ShuttleUnits); void update_speed_display (); + float last_speed_displayed; gint shuttle_box_button_press (GdkEventButton*); gint shuttle_box_button_release (GdkEventButton*); @@ -397,25 +404,17 @@ class ARDOUR_UI : public Gtkmm2ext::UI bool shuttle_grabbed; double shuttle_fract; - Gtk::ToggleButton auto_loop_button; - Gtk::ToggleButton play_selection_button; - Gtk::ToggleButton roll_button; - - Gtk::ToggleButton rec_button; Gtk::ToggleButton punch_in_button; Gtk::ToggleButton punch_out_button; Gtk::ToggleButton auto_return_button; Gtk::ToggleButton auto_play_button; Gtk::ToggleButton auto_input_button; Gtk::ToggleButton click_button; - Gtk::ToggleButton follow_button; Gtk::ToggleButton auditioning_alert_button; Gtk::ToggleButton solo_alert_button; Gtk::VBox alert_box; - void follow_changed (); - void solo_blink (bool); void audition_blink (bool); @@ -474,7 +473,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI /* menu bar and associated stuff */ Gtk::MenuBar* menu_bar; - Gtk::Fixed menu_bar_base; + Gtk::EventBox menu_bar_base; Gtk::HBox menu_hbox; void build_menu_bar (); @@ -528,7 +527,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI void save_template (); - void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels); + void session_add_audio_route (bool disk, int32_t input_channels, int32_t output_channels, ARDOUR::TrackMode mode); void add_diskstream_to_menu (ARDOUR::DiskStream&); void diskstream_selected (gint32); @@ -563,13 +562,12 @@ class ARDOUR_UI : public Gtkmm2ext::UI void connect_dependents_to_session (ARDOUR::Session *); void we_have_dependents (); void setup_keybindings (); - + void setup_options (); + guint32 last_key_press_time; void snapshot_session (); - void map_control_change (ARDOUR::Session::ControlType); - void queue_map_control_change (ARDOUR::Session::ControlType); void map_record_state (); void queue_map_record_state (); @@ -588,10 +586,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI LocationUI *location_ui; int create_location_ui (); - /* Various options */ - - void toggle_recording_plugins (); - /* Options window */ OptionEditor *option_editor; @@ -630,7 +624,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI Gtk::MenuItem *cleanup_item; - void display_cleanup_results (ARDOUR::Session::cleanup_report& rep, const gchar* list_title, string msg); + void display_cleanup_results (ARDOUR::Session::cleanup_report& rep, const gchar* list_title, const string & msg); void cleanup (); void flush_trash (); @@ -669,6 +663,43 @@ class ARDOUR_UI : public Gtkmm2ext::UI bool filter_ardour_session_dirs (const Gtk::FileFilter::Info&); Glib::RefPtr common_actions; + + void editor_realized (); + + std::vector positional_sync_strings; + + void toggle_config_state (const char* group, const char* action, void (ARDOUR::Configuration::*set)(bool)); + void toggle_session_state (const char* group, const char* action, void (ARDOUR::Session::*set)(bool), bool (ARDOUR::Session::*get)(void) const); + void toggle_session_state (const char* group, const char* action, sigc::slot theSlot); + void toggle_send_midi_feedback (); + void toggle_use_mmc (); + void toggle_send_mmc (); + void toggle_use_midi_control(); + void toggle_send_mtc (); + + void toggle_AutoConnectNewTrackInputsToHardware(); + void toggle_AutoConnectNewTrackOutputsToHardware(); + void toggle_AutoConnectNewTrackOutputsToMaster(); + void toggle_ManuallyConnectNewTrackOutputs(); + void toggle_UseHardwareMonitoring(); + void toggle_UseSoftwareMonitoring(); + void toggle_UseExternalMonitoring(); + void toggle_StopPluginsWithTransport(); + void toggle_DoNotRunPluginsWhileRecording(); + void toggle_VerifyRemoveLastCapture(); + void toggle_StopRecordingOnXrun(); + void toggle_StopTransportAtEndOfSession(); + void toggle_GainReduceFastTransport(); + void toggle_LatchedSolo(); + void toggle_SoloViaBus(); + void toggle_AutomaticallyCreateCrossfades(); + void toggle_UnmuteNewFullCrossfades(); + void toggle_LatchedRecordEnable (); + + void mtc_port_changed (); + void map_some_session_state (const char* group, const char* action, bool (ARDOUR::Session::*get)() const); + void queue_session_control_changed (ARDOUR::Session::ControlType t); + void session_control_changed (ARDOUR::Session::ControlType t); };