X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui.h;h=d570dc79bb2d3abef156da56e60b4b78aa226a93;hb=863a6ade9ee42ca6623980b122aed9c8378066df;hp=4bfd1f7cbc2c726d23bad7360382ff2765e9ac74;hpb=ea5fa64c0bcfb6a916326756b5f84a78a2478025;p=ardour.git diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 4bfd1f7cbc..d570dc79bb 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -37,7 +37,6 @@ #include "pbd/xml++.h" -#include "pbd/controllable.h" #include #include #include @@ -79,6 +78,8 @@ #include "enums.h" #include "mini_timeline.h" #include "shuttle_control.h" +#include "transport_control.h" +#include "transport_control_ui.h" #include "visibility_group.h" #include "window_manager.h" @@ -86,6 +87,7 @@ #include "about.h" #include "add_video_dialog.h" #include "big_clock_window.h" +#include "big_transport_window.h" #include "bundle_manager.h" #include "engine_dialog.h" #include "export_video_dialog.h" @@ -94,16 +96,19 @@ #include "keyeditor.h" #include "location_ui.h" #include "lua_script_manager.h" +#include "plugin_dspload_window.h" #include "rc_option_editor.h" #include "route_dialogs.h" #include "route_params_ui.h" #include "session_option_editor.h" #include "speaker_dialog.h" +#include "transport_masters_dialog.h" #else class About; class AddRouteDialog; class AddVideoDialog; class BigClockWindow; +class BigTransportWindow; class BundleManager; class EngineControl; class ExportVideoDialog; @@ -116,6 +121,8 @@ class SessionOptionEditor; class SpeakerDialog; class GlobalPortMatrixWindow; class IdleOMeter; +class PluginDSPLoadWindow; +class TransportMastersWindow; #endif class VideoTimeLine; @@ -158,7 +165,9 @@ namespace ArdourWidgets { class Tabbable; } -class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr +#define MAX_LUA_ACTION_SCRIPTS 12 + +class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr, public TransportControlProvider { public: ARDOUR_UI (int *argcp, char **argvp[], const char* localedir); @@ -195,6 +204,9 @@ public: bool get_smart_mode () const; + RCOptionEditor* get_rc_option_editor() { return rc_option_editor; } + void show_tabbable (ArdourWidgets::Tabbable*); + 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); @@ -224,6 +236,11 @@ public: void toggle_monitor_section_visibility (); void toggle_keep_tearoffs(); + void toggle_vca_pane(); +#ifdef MIXBUS + void toggle_mixbus_pane(); +#endif + void reset_focus (Gtk::Widget*); static PublicEditor* _instance; @@ -233,7 +250,7 @@ public: * * (either RapidScreenUpdate || SuperRapidScreenUpdate - user-config) */ - static sigc::signal Clock; + static sigc::signal Clock; static void close_all_dialogs () { CloseAllDialogs(); } static sigc::signal CloseAllDialogs; @@ -283,7 +300,8 @@ public: void flush_videotimeline_cache (bool localcacheonly=false); void export_video (bool range = false); - void session_add_audio_route (bool, int32_t, int32_t, ARDOUR::TrackMode, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, ARDOUR::PresentationInfo::order_t order); + void session_add_audio_route (bool, int32_t, int32_t, ARDOUR::TrackMode, ARDOUR::RouteGroup *, + uint32_t, std::string const &, bool, ARDOUR::PresentationInfo::order_t order); void session_add_mixed_track (const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, ARDOUR::RouteGroup*, uint32_t, std::string const &, bool strict_io, @@ -298,6 +316,8 @@ public: ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord*, ARDOUR::PresentationInfo::order_t order); + void session_add_foldback_bus (uint32_t, std::string const &); + void display_insufficient_ports_message (); void attach_to_engine (); @@ -372,6 +392,7 @@ protected: void toggle_session_options_window (); private: + Gtk::Window _main_window; Gtkmm2ext::VisibilityTracker* main_window_visibility; Gtk::VBox main_vpacker; @@ -386,7 +407,6 @@ private: bool _initial_verbose_plugin_scan; bool first_time_engine_run; - void show_tabbable (ArdourWidgets::Tabbable*); void hide_tabbable (ArdourWidgets::Tabbable*); void detach_tabbable (ArdourWidgets::Tabbable*); void attach_tabbable (ArdourWidgets::Tabbable*); @@ -451,46 +471,13 @@ private: ArdourWidgets::ArdourVSpacer* secondary_clock_spacer; void repack_transport_hbox (); void update_clock_visibility (); - - struct TransportControllable : public PBD::Controllable { - enum ToggleType { - Roll = 0, - Stop, - RecordEnable, - GotoStart, - GotoEnd, - AutoLoop, - PlaySelection, - }; - - TransportControllable (std::string name, ARDOUR_UI&, ToggleType); - void set_value (double, PBD::Controllable::GroupControlDisposition group_override); - double get_value (void) const; - - ARDOUR_UI& ui; - ToggleType type; - }; - - boost::shared_ptr roll_controllable; - boost::shared_ptr stop_controllable; - boost::shared_ptr goto_start_controllable; - boost::shared_ptr goto_end_controllable; - boost::shared_ptr auto_loop_controllable; - boost::shared_ptr play_selection_controllable; - boost::shared_ptr rec_controllable; - void toggle_follow_edits (); void set_transport_controllable_state (const XMLNode&); XMLNode& get_transport_controllable_state (); - ArdourWidgets::ArdourButton roll_button; - ArdourWidgets::ArdourButton stop_button; - ArdourWidgets::ArdourButton goto_start_button; - ArdourWidgets::ArdourButton goto_end_button; - ArdourWidgets::ArdourButton auto_loop_button; - ArdourWidgets::ArdourButton play_selection_button; - ArdourWidgets::ArdourButton rec_button; + TransportControlUI transport_ctrl; + ArdourWidgets::ArdourButton punch_in_button; ArdourWidgets::ArdourButton punch_out_button; ArdourWidgets::ArdourButton layered_button; @@ -512,13 +499,16 @@ private: void toggle_time_master (); void toggle_video_sync (); - ShuttleControl shuttle_box; - MiniTimeline mini_timeline; - TimeInfoBox *time_info_box; + ShuttleControl shuttle_box; + MiniTimeline mini_timeline; + TimeInfoBox* time_info_box; + + + ArdourWidgets::ArdourVSpacer meterbox_spacer; + ArdourWidgets::ArdourVSpacer meterbox_spacer2; ArdourWidgets::ArdourButton auto_return_button; ArdourWidgets::ArdourButton follow_edits_button; - ArdourWidgets::ArdourButton click_button; ArdourWidgets::ArdourButton sync_button; ArdourWidgets::ArdourButton auditioning_alert_button; @@ -526,11 +516,11 @@ private: ArdourWidgets::ArdourButton feedback_alert_button; ArdourWidgets::ArdourButton error_alert_button; - ArdourWidgets::ArdourButton action_script_call_btn[10]; + ArdourWidgets::ArdourButton action_script_call_btn[MAX_LUA_ACTION_SCRIPTS]; Gtk::Table action_script_table; Gtk::VBox alert_box; - Gtk::VBox meter_box; + Gtk::Table editor_meter_table; ArdourWidgets::ArdourButton editor_meter_peak_display; LevelMeterHBox * editor_meter; float editor_meter_max_peak; @@ -585,24 +575,19 @@ private: Gtk::Label wall_clock_label; gint update_wall_clock (); - Gtk::Label disk_space_label; + Gtk::Label disk_space_label; void update_disk_space (); + void format_disk_space_label (float); Gtk::Label timecode_format_label; void update_timecode_format (); - Gtk::Label cpu_load_label; + Gtk::Label dsp_load_label; void update_cpu_load (); - 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 (); - Gtk::Label sample_rate_label; void update_sample_rate (ARDOUR::samplecnt_t); @@ -632,7 +617,6 @@ private: void edit_metadata (); void import_metadata (); - void set_loop_sensitivity (); void set_transport_sensitivity (bool); //stuff for ProTools-style numpad @@ -705,6 +689,8 @@ private: WM::Proxy export_video_dialog; WM::Proxy lua_script_window; WM::Proxy idleometer; + WM::Proxy plugin_dsp_load_window; + WM::Proxy transport_masters_window; /* Windows/Dialogs that require a creator method */ @@ -712,6 +698,7 @@ private: WM::ProxyWithConstructor add_video_dialog; WM::ProxyWithConstructor bundle_manager; WM::ProxyWithConstructor big_clock_window; + WM::ProxyWithConstructor big_transport_window; WM::ProxyWithConstructor audio_port_matrix; WM::ProxyWithConstructor midi_port_matrix; WM::ProxyWithConstructor key_editor; @@ -722,6 +709,7 @@ private: BundleManager* create_bundle_manager (); AddVideoDialog* create_add_video_dialog (); BigClockWindow* create_big_clock_window(); + BigTransportWindow* create_big_transport_window(); GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType); KeyEditor* create_key_editor (); @@ -806,9 +794,7 @@ private: void audioengine_setup (); - void display_message (const char *prefix, gint prefix_len, - Glib::RefPtr ptag, Glib::RefPtr mtag, - const char *msg); + void display_message (const char* prefix, gint prefix_len, Glib::RefPtr, Glib::RefPtr, const char* msg); Gtk::Label status_bar_label; bool status_bar_button_press (GdkEventButton*); @@ -818,8 +804,6 @@ private: PBD::ScopedConnection halt_connection; PBD::ScopedConnection editor_meter_connection; - void step_edit_status_change (bool); - /* these are used only in response to a platform-specific "ShouldQuit" signal */ bool idle_finish (); void queue_finish (); @@ -829,7 +813,6 @@ private: int ambiguous_file (std::string file, std::vector hits); bool click_button_clicked (GdkEventButton *); - bool click_button_scroll (GdkEventScroll *); bool sync_button_clicked (GdkEventButton *); VisibilityGroup _status_bar_visibility;