X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui.h;h=3b62065a3094fe5f55fd3f4b1d8d30528b9696a1;hb=23b1944beac919e80225c50400d9b2ed973ed13c;hp=b6ec8a87991df3428981cb10e7f99382750f41d1;hpb=5c8e239f95138d2a0fa989da7ccbf77a7716fdf4;p=ardour.git diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index b6ec8a8799..3b62065a30 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -67,23 +67,22 @@ #include "video_timeline.h" -#include "about.h" +#include "add_route_dialog.h" #include "ardour_button.h" #include "ardour_dialog.h" #include "ardour_window.h" #include "editing.h" -#include "engine_dialog.h" -#include "export_video_dialog.h" -#include "meterbridge.h" -#include "ui_config.h" #include "enums.h" #include "visibility_group.h" #include "window_manager.h" -#include "add_route_dialog.h" +#ifdef COMPILER_MSVC +#include "about.h" #include "add_video_dialog.h" #include "big_clock_window.h" #include "bundle_manager.h" +#include "engine_dialog.h" +#include "export_video_dialog.h" #include "global_port_matrix.h" #include "keyeditor.h" #include "location_ui.h" @@ -91,23 +90,40 @@ #include "route_params_ui.h" #include "session_option_editor.h" #include "speaker_dialog.h" +#else +class About; +class AddRouteDialog; +class AddVideoDialog; +class BigClockWindow; +class BundleManager; +class EngineControl; +class ExportVideoDialog; +class KeyEditor; +class LocationUIWindow; +class RCOptionEditor; +class RouteParams_UI; +class SessionOptionEditor; +class SpeakerDialog; +class GlobalPortMatrixWindow; +#endif class VideoTimeLine; class ArdourKeyboard; class AudioClock; class ButtonJoiner; class ConnectionEditor; +class DuplicateRouteDialog; class MainClock; class Mixer_UI; +class ArdourPrompter; class PublicEditor; -class RCOptionEditor; -class RouteParams_UI; class SaveAsDialog; class SessionDialog; class SessionOptionEditor; class ShuttleControl; class Splash; class TimeInfoBox; +class Meterbridge; class MidiTracer; class NSM_Client; class LevelMeterHBox; @@ -133,14 +149,8 @@ namespace Gtk { class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr { - private: - /* This must be the first data element because constructor ordering - relies on it. - */ - UIConfiguration* ui_config; - public: - ARDOUR_UI (int *argcp, char **argvp[], const char* localedir, UIConfiguration*); + ARDOUR_UI (int *argcp, char **argvp[], const char* localedir); ~ARDOUR_UI(); bool run_startup (bool should_be_new, std::string load_template); @@ -172,7 +182,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr ARDOUR::Session* the_session() { return _session; } bool get_smart_mode () const; - + int get_session_parameters (bool quit_on_cancel, bool should_be_new = false, std::string load_template = ""); int build_session_from_dialog (SessionDialog&, const std::string& session_name, const std::string& session_path); bool ask_about_loading_existing_session (const std::string& session_path); @@ -185,19 +195,17 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void save_state (const std::string & state_name = "", bool switch_to_it = false); static ARDOUR_UI *instance () { return theArdourUI; } - static UIConfiguration *config () { return theArdourUI->ui_config; } - static float ui_scale; - + PublicEditor& the_editor() { return *editor;} Mixer_UI* the_mixer() { return mixer; } void new_midi_tracer_window (); void toggle_editing_space(); void toggle_mixer_space(); + void toggle_mixer_list(); + void toggle_monitor_section_visibility (); void toggle_keep_tearoffs(); - Gtk::Tooltips& tooltips() { return _tooltips; } - static PublicEditor* _instance; /** Emitted frequently with the audible frame, false, and the edit point as @@ -223,7 +231,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void create_xrun_marker (framepos_t); GUIObjectState* gui_object_state; - + MainClock* primary_clock; MainClock* secondary_clock; void focus_on_clock (); @@ -243,6 +251,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void add_routes_part_two (); void add_routes_thread (); + void start_duplicate_routes (); + void add_video (Gtk::Window* float_window); void remove_video (); void start_video_server_menu (Gtk::Window* float_window); @@ -290,6 +300,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void show_ui_prefs (); + bool check_audioengine(Gtk::Window&); + void update_tearoff_visibility (); void setup_profile (); @@ -306,8 +318,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr const std::string& announce_string() const { return _announce_string; } - int disconnect_from_engine (); - int reconnect_to_engine (); void hide_application (); protected: @@ -332,10 +342,10 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr private: PublicEditor* editor; Mixer_UI* mixer; - Gtk::Tooltips _tooltips; NSM_Client* nsm; bool _was_dirty; bool _mixer_on_top; + bool _initial_verbose_plugin_scan; bool first_time_engine_run; void goto_editor_window (); @@ -349,6 +359,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void setup_clock (); static ARDOUR_UI *theArdourUI; + SessionDialog *_session_dialog; int starting (); @@ -419,7 +430,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr }; TransportControllable (std::string name, ARDOUR_UI&, ToggleType); - void set_value (double); + void set_value (double, PBD::Controllable::GroupControlDisposition group_override); double get_value (void) const; ARDOUR_UI& ui; @@ -474,18 +485,19 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void blink_handler (bool); sigc::connection blink_connection; + void cancel_solo (); void solo_blink (bool); void sync_blink (bool); void audition_blink (bool); void feedback_blink (bool); void error_blink (bool); - + void set_flat_buttons(); void soloing_changed (bool); void auditioning_changed (bool); void _auditioning_changed (bool); - + bool solo_alert_press (GdkEventButton* ev); bool audition_alert_press (GdkEventButton* ev); bool feedback_alert_press (GdkEventButton *); @@ -501,34 +513,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr Gtk::Menu* session_popup_menu; - struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord { - RecentSessionModelColumns() { - add (visible_name); - add (tip); - add (fullpath); - } - Gtk::TreeModelColumn visible_name; - Gtk::TreeModelColumn tip; - Gtk::TreeModelColumn fullpath; - }; - - RecentSessionModelColumns recent_session_columns; - Gtk::TreeView recent_session_display; - Glib::RefPtr recent_session_model; - - ArdourDialog* session_selector_window; - Gtk::FileChooserDialog* open_session_selector; - - void build_session_selector(); - void redisplay_recent_sessions(); - void recent_session_row_activated (const Gtk::TreePath& path, Gtk::TreeViewColumn* col); - - struct RecentSessionsSorter { - bool operator() (std::pair a, std::pair b) const { - return ARDOUR::cmp_nocase(a.first, b.first) == -1; - } - }; - /* menu bar and associated stuff */ Gtk::MenuBar* menu_bar; @@ -553,6 +537,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr Gtk::Label xrun_label; void update_xrun_count (); + Gtk::Label peak_thread_work_label; + void update_peak_thread_work (); + Gtk::Label buffer_load_label; void update_buffer_load (); @@ -561,7 +548,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr Gtk::Label format_label; void update_format (); - + void every_second (); void every_point_one_seconds (); void every_point_zero_something_seconds (); @@ -575,6 +562,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void open_session (); void open_recent_session (); + bool process_save_template_prompter (ArdourPrompter& prompter); void save_template (); void edit_metadata (); @@ -602,7 +590,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void transport_record (bool roll); void transport_roll (); void transport_play_selection(); - void transport_play_preroll(); + void transport_play_preroll(); void transport_forward (int option); void transport_rewind (int option); void transport_loop (); @@ -618,8 +606,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr guint32 last_key_press_time; + bool process_snapshot_session_prompter (ArdourPrompter& prompter, bool switch_to_it); void snapshot_session (bool switch_to_it); + void quick_snapshot_session (bool switch_to_it); //does not promtp for name, just makes a timestamped file + SaveAsDialog* save_as_dialog; bool save_as_progress_update (float fraction, int64_t cnt, int64_t total, Gtk::Label* label, Gtk::ProgressBar* bar); @@ -658,7 +649,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr SessionOptionEditor* create_session_option_editor (); BundleManager* create_bundle_manager (); AddVideoDialog* create_add_video_dialog (); - BigClockWindow* create_big_clock_window(); + BigClockWindow* create_big_clock_window(); GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType); ARDOUR::SystemExec *video_server_process; @@ -688,6 +679,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void display_cleanup_results (ARDOUR::CleanupReport& rep, const gchar* list_title, const bool msg_delete); void cleanup (); + void cleanup_peakfiles (); void flush_trash (); bool have_configure_timeout; @@ -739,7 +731,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void check_memory_locking (); - bool check_audioengine(); void audioengine_setup (); void display_message (const char *prefix, gint prefix_len, @@ -751,7 +742,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void loading_message (const std::string& msg); PBD::ScopedConnectionList forever_connections; - PBD::ScopedConnection halt_connection; + PBD::ScopedConnection halt_connection; void step_edit_status_change (bool); @@ -802,7 +793,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr int do_audio_midi_setup (uint32_t); void audioengine_became_silent (); + + DuplicateRouteDialog* duplicate_routes_dialog; }; #endif /* __ardour_gui_h__ */ -