#include "global_port_matrix.h"
#include "keyeditor.h"
#include "location_ui.h"
+#include "lua_script_manager.h"
#include "rc_option_editor.h"
#include "route_params_ui.h"
#include "session_option_editor.h"
class ExportVideoDialog;
class KeyEditor;
class LocationUIWindow;
+class LuaScriptManager;
class RCOptionEditor;
class RouteParams_UI;
class SessionOptionEditor;
class PublicEditor;
class SaveAsDialog;
class SessionDialog;
-class SessionOptionEditor;
+class SessionOptionEditorWindow;
class ShuttleControl;
class Splash;
class TimeInfoBox;
class Meterbridge;
+class LuaWindow;
class MidiTracer;
class NSM_Client;
class LevelMeterHBox;
class ProgressBar;
}
+namespace Gtkmm2ext {
+ class Tabbable;
+}
+
class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
{
public:
void toggle_monitor_section_visibility ();
void toggle_keep_tearoffs();
+ void lua_script_manager();
+
static PublicEditor* _instance;
/** Emitted frequently with the audible frame, false, and the edit point as
XMLNode* mixer_settings () const;
XMLNode* keyboard_settings () const;
XMLNode* tearoff_settings (const char*) const;
-
+
void save_ardour_state ();
gboolean configure_handler (GdkEventConfigure* conf);
void start_duplicate_routes ();
+ void add_lua_script ();
+ void remove_lua_script ();
+
void add_video (Gtk::Window* float_window);
void remove_video ();
void start_video_server_menu (Gtk::Window* float_window);
ARDOUR::TrackMode mode,
ARDOUR::RouteGroup* route_group,
uint32_t how_many,
- std::string const & name_template
+ std::string const & name_template,
+ bool strict_io
) {
-
- session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many, name_template);
+ session_add_audio_route (true, input_channels, output_channels, mode, route_group, how_many, name_template, strict_io);
}
- 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) {
- session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many, name_template);
+ 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
+ ) {
+ session_add_audio_route (false, input_channels, output_channels, ARDOUR::Normal, route_group, how_many, name_template, strict_io);
}
- void session_add_midi_track (ARDOUR::RouteGroup* route_group, uint32_t how_many, std::string const & name_template,
- ARDOUR::PluginInfoPtr instrument) {
- session_add_midi_route (true, route_group, how_many, name_template, instrument);
+ void session_add_midi_track (
+ ARDOUR::RouteGroup* route_group,
+ uint32_t how_many,
+ std::string const & name_template,
+ bool strict_io,
+ ARDOUR::PluginInfoPtr instrument) {
+ session_add_midi_route (true, route_group, how_many, name_template, strict_io, instrument);
}
- void session_add_mixed_track (const ARDOUR::ChanCount& input, const ARDOUR::ChanCount& output, ARDOUR::RouteGroup* route_group, uint32_t how_many, std::string const & name_template,
- ARDOUR::PluginInfoPtr instrument);
+ void session_add_mixed_track (const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr);
+ void session_add_midi_bus (ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr);
+ void session_add_audio_route (bool, int32_t, int32_t, ARDOUR::TrackMode, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool);
+ void session_add_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr);
- /*void session_add_midi_bus () {
- session_add_midi_route (false);
- }*/
+ void display_insufficient_ports_message ();
- void attach_to_engine ();
+ void attach_to_engine ();
void post_engine ();
gint exit_on_main_window_close (GdkEventAny *);
Gtk::Window& main_window () { return _main_window; }
void setup_toplevel_window (Gtk::Window&, const std::string& name, void* owner);
-
+
/* called from a static C function */
GtkNotebook* tab_window_root_drop (GtkNotebook* src,
bool key_event_handler (GdkEventKey*, Gtk::Window* window);
Gtkmm2ext::ActionMap global_actions;
- Gtkmm2ext::Bindings global_bindings;
-
+
protected:
friend class PublicEditor;
bool _initial_verbose_plugin_scan;
bool first_time_engine_run;
- bool tabs_button_event (GdkEventButton* ev);
-
void show_tabbable (Gtkmm2ext::Tabbable*);
void hide_tabbable (Gtkmm2ext::Tabbable*);
void detach_tabbable (Gtkmm2ext::Tabbable*);
void attach_tabbable (Gtkmm2ext::Tabbable*);
-
- void tabbable_state_change (Gtkmm2ext::Tabbable&);
+ void button_change_tabbable_visibility (Gtkmm2ext::Tabbable*);
+ void key_change_tabbable_visibility (Gtkmm2ext::Tabbable*);
+ void toggle_editor_and_mixer ();
+ void tabbable_state_change (Gtkmm2ext::Tabbable&);
+
void toggle_meterbridge ();
+ void toggle_luawindow ();
int setup_windows ();
void setup_transport ();
void session_dirty_changed ();
void update_title ();
-
+
void map_transport_state ();
int32_t do_engine_start ();
void edit_metadata ();
void import_metadata ();
- void session_add_audio_route (bool, int32_t, int32_t, ARDOUR::TrackMode, ARDOUR::RouteGroup *, uint32_t, std::string const &);
- void session_add_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, ARDOUR::PluginInfoPtr);
-
void set_transport_sensitivity (bool);
//stuff for ProTools-style numpad
int create_mixer ();
int create_editor ();
+ int create_meterbridge ();
+ int create_luawindow ();
Meterbridge *meterbridge;
- int create_meterbridge ();
+ LuaWindow *luawindow;
/* Dialogs that can be created via new<T> */
RCOptionEditor* rc_option_editor;
Gtk::HBox rc_option_editor_placeholder;
-
+
WM::Proxy<SpeakerDialog> speaker_config_window;
WM::Proxy<AddRouteDialog> add_route_dialog;
WM::Proxy<About> about;
WM::Proxy<RouteParams_UI> route_params;
WM::Proxy<EngineControl> audio_midi_setup;
WM::Proxy<ExportVideoDialog> export_video_dialog;
+ WM::Proxy<LuaScriptManager> lua_script_window;
/* Windows/Dialogs that require a creator method */
BigClockWindow* create_big_clock_window();
GlobalPortMatrixWindow* create_global_port_matrix (ARDOUR::DataType);
KeyEditor* create_key_editor ();
-
+
ARDOUR::SystemExec *video_server_process;
void handle_locations_change (ARDOUR::Location*);
void grab_focus_after_dialog ();
void tabs_switch (GtkNotebookPage*, guint page_number);
- void tabs_page_added (Gtk::Widget*, guint page_number);
- void tabs_page_removed (Gtk::Widget*, guint page_number);
+ void tabs_page_added (Gtk::Widget*, guint);
+ void tabs_page_removed (Gtk::Widget*, guint);
+ ArdourButton editor_visibility_button;
+ ArdourButton mixer_visibility_button;
+ ArdourButton prefs_visibility_button;
+
bool key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey* ev, Gtkmm2ext::Bindings*);
bool try_gtk_accel_binding (GtkWindow* win, GdkEventKey* ev, bool translate, GdkModifierType modifier);
-
+
bool main_window_delete_event (GdkEventAny*);
bool idle_ask_about_quit ();
void load_bindings ();
-
+ bool tabbable_visibility_button_press (GdkEventButton* ev, std::string const& tabbable_name);
+
+ void step_up_through_tabs ();
+ void step_down_through_tabs ();
};
#endif /* __ardour_gui_h__ */