GenericUI: replace if() by assert()
[ardour.git] / gtk2_ardour / export_dialog.h
index 756a3e7b53a4fda2f5b0288262157b7e894d445c..fee7013577b29400bb8385f2bb5e761cbd6e8348 100644 (file)
@@ -32,6 +32,7 @@
 #include "export_file_notebook.h"
 #include "export_preset_selector.h"
 #include "ardour_dialog.h"
+#include "soundcloud_export_selector.h"
 
 #include <gtkmm.h>
 
@@ -43,7 +44,8 @@ namespace ARDOUR {
 class ExportTimespanSelector;
 class ExportChannelSelector;
 
-class ExportDialog : public ArdourDialog {
+class ExportDialog : public ArdourDialog, public PBD::ScopedConnectionList
+{
 
   public:
 
@@ -75,26 +77,23 @@ class ExportDialog : public ArdourDialog {
        // Must initialize all the shared_ptrs below
        virtual void init_components ();
 
-       // Override if the channel selector should not be grown
-       virtual bool channel_selector_is_expandable() { return true; }
-
        boost::scoped_ptr<ExportPresetSelector>   preset_selector;
        boost::scoped_ptr<ExportTimespanSelector> timespan_selector;
        boost::scoped_ptr<ExportChannelSelector>  channel_selector;
        boost::scoped_ptr<ExportFileNotebook>     file_notebook;
 
+       boost::shared_ptr<SoundcloudExportSelector> soundcloud_selector;
+
        Gtk::VBox                                 warning_widget;
        Gtk::VBox                                 progress_widget;
 
-       Gtk::Label *                              timespan_label;
-       Gtk::Label *                              channels_label;
+       /*** GUI components ***/
+       Gtk::Notebook export_notebook;
 
   private:
 
        void init ();
 
-       void expanded_changed();
-
        void notify_errors (bool force = false);
        void close_dialog ();
 
@@ -104,6 +103,9 @@ class ExportDialog : public ArdourDialog {
 
        void do_export ();
 
+       void update_realtime_selection ();
+       void parameter_changed (std::string const&);
+
        void show_progress ();
        gint progress_timeout ();
 
@@ -112,10 +114,7 @@ class ExportDialog : public ArdourDialog {
        PublicEditor &  editor;
        StatusPtr       status;
 
-       /*** GUI components ***/
 
-       Glib::RefPtr<Gtk::SizeGroup> advanced_sizegroup;
-       Gtk::Expander * advanced;
 
        /* Warning area */
 
@@ -138,6 +137,8 @@ class ExportDialog : public ArdourDialog {
 
        float previous_progress; // Needed for gtk bug workaround
 
+       void soundcloud_upload_progress(double total, double now, std::string title);
+
        /* Buttons */
 
        Gtk::Button *           cancel_button;
@@ -170,9 +171,6 @@ class ExportRegionDialog : public ExportDialog
   public:
        ExportRegionDialog (PublicEditor & editor, ARDOUR::AudioRegion const & region, ARDOUR::AudioTrack & track);
 
-  protected:
-       virtual bool channel_selector_is_expandable() { return false; }
-
   private:
        void init_gui ();
        void init_components ();