X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui.h;h=59a3c963e5f417062b3e07c2e5da9e72c7da08a8;hb=5583929a3491075df4e1862579e8df7318dc7370;hp=6d2cb636e3d2f0c92fc7fcc48978a85345b15ff5;hpb=05baa2d1c11116679172c6faadc21d01e5f5565b;p=ardour.git diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 6d2cb636e3..59a3c963e5 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -59,6 +59,7 @@ #include "gtkmm2ext/stateful_button.h" #include "gtkmm2ext/bindable_button.h" #include "gtkmm2ext/bindings.h" +#include "gtkmm2ext/visibility_tracker.h" #include "ardour/ardour.h" #include "ardour/types.h" @@ -201,6 +202,12 @@ public: static ARDOUR_UI *instance () { return theArdourUI; } + /* signal emitted when escape key is pressed. All UI components that + need to respond to Escape in some way (e.g. break drag, clear + selection, etc) should connect to and handle this. + */ + PBD::Signal0 Escape; + PublicEditor& the_editor() { return *editor;} Mixer_UI* the_mixer() { return mixer; } @@ -225,6 +232,7 @@ public: XMLNode* main_window_settings() const; XMLNode* editor_settings() const; + XMLNode* preferences_settings() const; XMLNode* mixer_settings () const; XMLNode* keyboard_settings () const; XMLNode* tearoff_settings (const char*) const; @@ -254,6 +262,8 @@ public: void synchronize_sync_source_and_video_pullup (); void add_route (); + void add_route_dialog_finished (int); + void add_routes_part_two (); void add_routes_thread (); @@ -270,6 +280,9 @@ public: void flush_videotimeline_cache (bool localcacheonly=false); void export_video (bool range = false); + void session_add_vca (std::string const &, uint32_t); + + 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_track ( int input_channels, int32_t output_channels, @@ -277,9 +290,10 @@ public: ARDOUR::RouteGroup* route_group, uint32_t how_many, std::string const & name_template, - bool strict_io + bool strict_io, + ARDOUR::PresentationInfo::order_t order ) { - session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many, name_template, strict_io); + session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many, name_template, strict_io, order); } void session_add_audio_bus ( @@ -288,9 +302,10 @@ public: ARDOUR::RouteGroup* route_group, uint32_t how_many, std::string const & name_template, - bool strict_io + bool strict_io, + ARDOUR::PresentationInfo::order_t order ) { - session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many, name_template, strict_io); + session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many, name_template, strict_io, order); } void session_add_midi_track ( @@ -298,15 +313,21 @@ public: uint32_t how_many, std::string const & name_template, bool strict_io, - ARDOUR::PluginInfoPtr instrument) { - session_add_midi_route (true, route_group, how_many, name_template, strict_io, instrument); + ARDOUR::PluginInfoPtr instrument, + ARDOUR::Plugin::PresetRecord* preset, + ARDOUR::PresentationInfo::order_t order + ) { + session_add_midi_route (true, route_group, how_many, name_template, strict_io, instrument, preset, order); } - void session_add_mixed_track (const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr); - void session_add_midi_bus (ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr); - void session_add_audio_route (bool, int32_t, int32_t, ARDOUR::TrackMode, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool); - void session_add_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr); - + void session_add_mixed_track (const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, + ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord* pset, + ARDOUR::PresentationInfo::order_t order); + void session_add_midi_bus (ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord* pset, + ARDOUR::PresentationInfo::order_t order); + void session_add_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, + ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord*, + ARDOUR::PresentationInfo::order_t order); void display_insufficient_ports_message (); void attach_to_engine (); @@ -376,6 +397,7 @@ protected: private: Gtk::Window _main_window; + Gtkmm2ext::VisibilityTracker* main_window_visibility; Gtk::VBox main_vpacker; Gtk::HBox status_bar_hpacker; Gtk::Notebook _tabs; @@ -395,7 +417,7 @@ private: void button_change_tabbable_visibility (Gtkmm2ext::Tabbable*); void key_change_tabbable_visibility (Gtkmm2ext::Tabbable*); void toggle_editor_and_mixer (); - + void tabbable_state_change (Gtkmm2ext::Tabbable&); void toggle_meterbridge (); @@ -658,12 +680,13 @@ private: bool save_as_progress_update (float fraction, int64_t cnt, int64_t total, Gtk::Label* label, Gtk::ProgressBar* bar); void save_session_as (); void rename_session (); - void setup_order_hint (AddRouteDialog::InsertAt); + ARDOUR::PresentationInfo::order_t translate_order (AddRouteDialog::InsertAt); int create_mixer (); int create_editor (); int create_meterbridge (); int create_luawindow (); + int create_masters (); Meterbridge *meterbridge; LuaWindow *luawindow; @@ -713,7 +736,7 @@ private: void install_actions (); - void toggle_record_enable (uint32_t); + void toggle_record_enable (uint16_t); uint32_t rec_enabled_streams; void count_recenabled_streams (ARDOUR::Route&); @@ -862,6 +885,9 @@ private: void step_up_through_tabs (); void step_down_through_tabs (); + + void escape (); + void pre_release_dialog (); }; #endif /* __ardour_gui_h__ */