#include <gtkmm/eventbox.h>
#include <gtkmm/menu.h>
#include <gtkmm/menuitem.h>
+#include <gtkmm/messagedialog.h>
+#include <gtkmm/notebook.h>
#include <gtkmm/button.h>
#include <gtkmm/togglebutton.h>
#include <gtkmm/treeview.h>
#include <gtkmm/adjustment.h>
#include "gtkmm2ext/gtk_ui.h"
-#include "gtkmm2ext/click_box.h"
-#include "gtkmm2ext/stateful_button.h"
-#include "gtkmm2ext/bindable_button.h"
#include "gtkmm2ext/bindings.h"
#include "gtkmm2ext/visibility_tracker.h"
class DuplicateRouteDialog;
class MainClock;
class Mixer_UI;
-class ArdourPrompter;
class PublicEditor;
class SaveAsDialog;
+class SaveTemplateDialog;
class SessionDialog;
class SessionOptionEditorWindow;
class Splash;
class ProgressBar;
}
-namespace Gtkmm2ext {
+namespace ArdourWidgets {
+ class Prompter;
class Tabbable;
}
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; }
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 ();
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;
bool _initial_verbose_plugin_scan;
bool first_time_engine_run;
- void show_tabbable (Gtkmm2ext::Tabbable*);
- void hide_tabbable (Gtkmm2ext::Tabbable*);
- void detach_tabbable (Gtkmm2ext::Tabbable*);
- void attach_tabbable (Gtkmm2ext::Tabbable*);
- void button_change_tabbable_visibility (Gtkmm2ext::Tabbable*);
- void key_change_tabbable_visibility (Gtkmm2ext::Tabbable*);
+ void show_tabbable (ArdourWidgets::Tabbable*);
+ void hide_tabbable (ArdourWidgets::Tabbable*);
+ void detach_tabbable (ArdourWidgets::Tabbable*);
+ void attach_tabbable (ArdourWidgets::Tabbable*);
+ void button_change_tabbable_visibility (ArdourWidgets::Tabbable*);
+ void key_change_tabbable_visibility (ArdourWidgets::Tabbable*);
void toggle_editor_and_mixer ();
- void tabbable_state_change (Gtkmm2ext::Tabbable&);
+ void tabbable_state_change (ArdourWidgets::Tabbable&);
void toggle_meterbridge ();
void toggle_luawindow ();
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 ();
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