X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui.h;h=a24fe16a7c071e9d84a8a6cbf49cd9acde65f8c0;hb=6ae4f104371ed433a79c8845de97428d964edd8b;hp=2b687cd11eeaa660d604a2f9ac7287ca4c127eec;hpb=a7a445c044b5103241bf33c2e30ff1d7f624460e;p=ardour.git diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 2b687cd11e..a24fe16a7c 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -35,7 +35,6 @@ #include #include -#include #include "pbd/xml++.h" #include "pbd/controllable.h" @@ -65,9 +64,12 @@ #include "ardour/plugin.h" #include "ardour/session_handle.h" +#include "video_timeline.h" + #include "ardour_dialog.h" #include "ardour_button.h" #include "editing.h" +#include "nsm.h" #include "ui_config.h" #include "window_proxy.h" #include "enums.h" @@ -75,6 +77,9 @@ class About; class AddRouteDialog; +class AddVideoDialog; +class VideoTimeLine; +class SystemExec; class ArdourStartup; class ArdourKeyboard; class AudioClock; @@ -83,6 +88,7 @@ class ButtonJoiner; class ConnectionEditor; class KeyEditor; class LocationUIWindow; +class MainClock; class Mixer_UI; class PublicEditor; class RCOptionEditor; @@ -115,7 +121,7 @@ namespace ARDOUR { class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr { public: - ARDOUR_UI (int *argcp, char **argvp[]); + ARDOUR_UI (int *argcp, char **argvp[], const char* localedir); ~ARDOUR_UI(); bool run_startup (bool should_be_new, std::string load_template); @@ -139,6 +145,8 @@ 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_nsd (const std::string& session_name, const std::string& session_path); bool ask_about_loading_existing_session (const std::string& session_path); @@ -194,12 +202,14 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr GUIObjectState* gui_object_state; - AudioClock* primary_clock; - AudioClock* secondary_clock; + MainClock* primary_clock; + MainClock* secondary_clock; void focus_on_clock (); TimeInfoBox* time_info_box; + VideoTimeLine *video_timeline; + void store_clock_modes (); void restore_clock_modes (); void reset_main_clocks (); @@ -207,6 +217,15 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void synchronize_sync_source_and_video_pullup (); void add_route (Gtk::Window* float_window); + void add_routes_part_two (); + void add_routes_thread (); + + void add_video (Gtk::Window* float_window); + void remove_video (); + void start_video_server_menu (Gtk::Window* float_window); + bool start_video_server (Gtk::Window* float_window, bool popup_msg); + void stop_video_server (bool ask_confirm=false); + void flush_videotimeline_cache (bool localcacheonly=false); void session_add_audio_track ( int input_channels, @@ -230,6 +249,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr session_add_midi_route (true, route_group, how_many, name_template, instrument); } + void session_add_mixed_track (const ARDOUR::ChanCount& input, const ARDOUR::ChanCount& output, ARDOUR::RouteGroup* route_group, uint32_t how_many, std::string const & name_template, + ARDOUR::PluginInfoPtr instrument); + /*void session_add_midi_bus () { session_add_midi_route (false); }*/ @@ -242,6 +264,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void maximise_editing_space (); void restore_editing_space (); + void update_tearoff_visibility (); + void setup_profile (); void setup_tooltips (); @@ -253,6 +277,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void get_process_buffers (); void drop_process_buffers (); + const std::string& announce_string() const { return _announce_string; } + protected: friend class PublicEditor; @@ -277,11 +303,13 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr ArdourStartup* _startup; ARDOUR::AudioEngine *engine; Gtk::Tooltips _tooltips; + NSM_Client *nsm; + bool _was_dirty; - void goto_editor_window (); - void goto_mixer_window (); - void toggle_mixer_window (); - void toggle_mixer_on_top (); + void goto_editor_window (); + void goto_mixer_window (); + void toggle_mixer_window (); + void toggle_mixer_on_top (); int setup_windows (); void setup_transport (); @@ -412,8 +440,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr ArdourButton play_selection_button; ArdourButton rec_button; - ButtonJoiner* transport_joiner; - void toggle_external_sync (); void toggle_time_master (); void toggle_video_sync (); @@ -421,7 +447,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr ShuttleControl* shuttle_box; ArdourButton auto_return_button; - ArdourButton auto_play_button; + ArdourButton follow_edits_button; ArdourButton auto_input_button; ArdourButton click_button; ArdourButton sync_button; @@ -440,7 +466,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr 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 *); @@ -458,9 +484,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr struct RecentSessionModelColumns : public Gtk::TreeModel::ColumnRecord { RecentSessionModelColumns() { add (visible_name); + add (tip); add (fullpath); } Gtk::TreeModelColumn visible_name; + Gtk::TreeModelColumn tip; Gtk::TreeModelColumn fullpath; }; @@ -496,6 +524,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr Gtk::Label disk_space_label; void update_disk_space (); + Gtk::Label timecode_format_label; + void update_timecode_format (); + Gtk::Label cpu_load_label; void update_cpu_load (); @@ -529,8 +560,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void set_transport_sensitivity (bool); - void remove_last_capture (); - void transport_goto_zero (); void transport_goto_start (); void transport_goto_end (); @@ -539,6 +568,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_forward (int option); void transport_rewind (int option); void transport_loop (); @@ -592,6 +622,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr AddRouteDialog *add_route_dialog; + /* video dialog */ + + AddVideoDialog *add_video_dialog; + SystemExec *video_server_process; + /* Keyboard Handling */ ArdourKeyboard* keyboard; @@ -607,14 +642,14 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr About* about; Splash* splash; + void pop_back_splash (Gtk::Window&); /* cleanup */ Gtk::MenuItem *cleanup_item; - void display_cleanup_results (ARDOUR::CleanupReport& rep, const gchar* list_title, - const std::string& plural_msg, const std::string& singular_msg); + void display_cleanup_results (ARDOUR::CleanupReport& rep, const gchar* list_title, const bool msg_delete); void cleanup (); void flush_trash (); @@ -630,6 +665,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void disk_overrun_handler (); void disk_underrun_handler (); + void session_format_mismatch (std::string, std::string); + void session_dialog (std::string); int pending_state_dialog (); int sr_mismatch_dialog (ARDOUR::framecnt_t, ARDOUR::framecnt_t); @@ -676,8 +713,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr void loading_message (const std::string& msg); - void toggle_translations (); - PBD::ScopedConnectionList forever_connections; void step_edit_status_change (bool); @@ -714,6 +749,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr bool _feedback_exists; void resize_text_widgets (); + + std::string _announce_string; + void check_announcements (); }; #endif /* __ardour_gui_h__ */