RouteDialog: Move built-in types into template list experiment
[ardour.git] / gtk2_ardour / ardour_ui.h
index f66f9b467b7c6afbe84c570c02116ae5961d1cde..fbe1486736008289c3ded60fb763f32d274a93a6 100644 (file)
@@ -125,9 +125,9 @@ class ConnectionEditor;
 class DuplicateRouteDialog;
 class MainClock;
 class Mixer_UI;
-class ArdourPrompter;
 class PublicEditor;
 class SaveAsDialog;
+class SaveTemplateDialog;
 class SessionDialog;
 class SessionOptionEditorWindow;
 class Splash;
@@ -154,6 +154,7 @@ namespace Gtk {
 }
 
 namespace ArdourWidgets {
+       class Prompter;
        class Tabbable;
 }
 
@@ -187,7 +188,7 @@ public:
        int load_session (const std::string& path, const std::string& snapshot, std::string mix_template = std::string());
        bool session_loaded;
        bool session_load_in_progress;
-       int build_session (const std::string& path, const std::string& snapshot, ARDOUR::BusProfile&);
+       int build_session (const std::string& path, const std::string& snapshot, ARDOUR::BusProfile*);
        bool session_is_new() const { return _session_is_new; }
 
        ARDOUR::Session* the_session() { return _session; }
@@ -282,54 +283,21 @@ 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,
-               ARDOUR::TrackMode mode,
-               ARDOUR::RouteGroup* route_group,
-               uint32_t how_many,
-               std::string const & name_template,
-               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, order);
-       }
-
-       void session_add_audio_bus (
-                       int input_channels,
-                       int32_t output_channels,
-                       ARDOUR::RouteGroup* route_group,
-                       uint32_t how_many,
-                       std::string const & name_template,
-                       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, order);
-       }
-
-       void session_add_midi_track (
-                       ARDOUR::RouteGroup* route_group,
-                       uint32_t how_many,
-                       std::string const & name_template,
-                       bool strict_io,
-                       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,
+
+       void session_add_mixed_track (const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, ARDOUR::RouteGroup*,
+                                     uint32_t, std::string const &, bool strict_io,
                                      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,
+
+       void session_add_midi_bus (ARDOUR::RouteGroup*, uint32_t, std::string const &, bool strict_io,
+                                  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 ();
@@ -380,6 +348,8 @@ public:
 
        ARDOUR::PresentationInfo::order_t translate_order (RouteDialogs::InsertAt);
 
+       std::map<std::string, std::string> route_setup_info (const std::string& script_path);
+
 protected:
        friend class PublicEditor;
 
@@ -652,10 +622,13 @@ private:
 
        void open_session ();
        void open_recent_session ();
-       bool process_save_template_prompter (ArdourPrompter& prompter);
+       void save_template_dialog_response (int response, SaveTemplateDialog* d);
        void save_template ();
        void manage_templates ();
 
+       void meta_session_setup (const std::string& script_path);
+       void meta_route_setup (const std::string& script_path);
+
        void edit_metadata ();
        void import_metadata ();
 
@@ -697,7 +670,7 @@ private:
 
        guint32  last_key_press_time;
 
-       bool process_snapshot_session_prompter (ArdourPrompter& prompter, bool switch_to_it);
+       bool process_snapshot_session_prompter (ArdourWidgets::Prompter& prompter, bool switch_to_it);
        void snapshot_session (bool switch_to_it);
 
        void quick_snapshot_session (bool switch_to_it);  //does not promtp for name, just makes a timestamped file