Merge branch 'master' into cairocanvas
[ardour.git] / gtk2_ardour / ardour_ui.h
index 0af4cd6d2a3c78ce960b23d3b365463d73d363ee..a24fe16a7c071e9d84a8a6cbf49cd9acde65f8c0 100644 (file)
@@ -35,7 +35,6 @@
 #include <list>
 #include <cmath>
 
-#include <libgnomecanvasmm/canvas.h>
 
 #include "pbd/xml++.h"
 #include "pbd/controllable.h"
 #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;
@@ -116,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);
@@ -203,6 +208,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        TimeInfoBox* time_info_box;
 
+       VideoTimeLine *video_timeline;
+
        void store_clock_modes ();
        void restore_clock_modes ();
        void reset_main_clocks ();
@@ -210,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,
@@ -261,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;
 
@@ -285,6 +303,8 @@ 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 ();
@@ -464,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<std::string> visible_name;
+           Gtk::TreeModelColumn<std::string> tip;
            Gtk::TreeModelColumn<std::string> fullpath;
        };
 
@@ -600,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;
@@ -622,8 +649,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
 
        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 ();
 
@@ -639,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);
@@ -685,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);
@@ -723,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__ */