Prepare central engine check and user notification
[ardour.git] / gtk2_ardour / export_file_notebook.h
index 7a021057ef716c64a99c0cd769533fd9a432db17..d2545cb0ae61ddde9fd7e4b5de8f36d4a3a3b222 100644 (file)
 #define __export_file_notebook_h__
 
 #include <sigc++/signal.h>
-#include <gtkmm.h>
+
+#include <gtkmm/alignment.h>
+#include <gtkmm/box.h>
+#include <gtkmm/button.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/label.h>
+#include <gtkmm/notebook.h>
 
 #include "ardour/export_profile_manager.h"
 #include "ardour/session_handle.h"
 
 #include "export_format_selector.h"
 #include "export_filename_selector.h"
+#include "soundcloud_export_selector.h"
 
 class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr
 {
-  public:
+public:
 
        ExportFileNotebook ();
 
        void set_session_and_manager (ARDOUR::Session * s, boost::shared_ptr<ARDOUR::ExportProfileManager> manager);
        void sync_with_manager ();
-
        void update_example_filenames();
 
-       std::string get_nth_format_name (uint32_t n);
+       boost::shared_ptr<SoundcloudExportSelector> soundcloud_export_selector;
 
        sigc::signal<void> CriticalSelectionChanged;
 
-  private:
+private:
 
        typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ManagerPtr;
        typedef boost::shared_ptr<ARDOUR::ExportFormatSpecification> FormatPtr;
@@ -70,8 +76,9 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr
        uint32_t     last_visible_page;
        uint32_t     page_counter;
 
-       class FilePage : public Gtk::VBox {
-         public:
+       class FilePage : public Gtk::VBox
+       {
+       public:
                FilePage (ARDOUR::Session * s, ManagerPtr profile_manager, ExportFileNotebook * parent, uint32_t number,
                          ARDOUR::ExportProfileManager::FormatStatePtr format_state,
                          ARDOUR::ExportProfileManager::FilenameStatePtr filename_state);
@@ -85,15 +92,20 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr
 
                void update_example_filename();
 
+               void update_analysis_button ();
+               void update_soundcloud_upload_button ();
+
                ARDOUR::ExportProfileManager::FormatStatePtr   get_format_state () const { return format_state; }
                ARDOUR::ExportProfileManager::FilenameStatePtr get_filename_state () const { return filename_state; }
 
                sigc::signal<void> CriticalSelectionChanged;
 
-         private:
+       private:
                void save_format_to_manager (FormatPtr format);
                void update_tab_label ();
                void critical_selection_changed ();
+               void analysis_changed ();
+               void soundcloud_upload_changed ();
 
                ARDOUR::ExportProfileManager::FormatStatePtr   format_state;
                ARDOUR::ExportProfileManager::FilenameStatePtr filename_state;
@@ -110,7 +122,8 @@ class ExportFileNotebook : public Gtk::Notebook, public ARDOUR::SessionHandlePtr
                Gtk::Alignment          filename_align;
                ExportFilenameSelector  filename_selector;
 
-               Gtk::CheckButton        soundcloud_upload_button;
+               Gtk::CheckButton        soundcloud_upload_button;
+               Gtk::CheckButton        analysis_button;
                Gtk::HBox               tab_widget;
                Gtk::Label              tab_label;
                Gtk::Alignment          tab_close_alignment;