76 #include "ardour/utils.h"
156 class ConnectionEditor;
166 class SessionOptionEditorWindow;
179 class ControlProtocolInfo;
197 #define MAX_LUA_ACTION_SCRIPTS 32
202 ARDOUR_UI (
int *argcp,
char **argvp[],
const char* localedir);
225 int load_session (
const std::string& path,
const std::string& snapshot, std::string mix_template = std::string());
260 void save_state (
const std::string & state_name =
"",
bool switch_to_it =
false);
295 static sigc::signal<void, Temporal::timepos_t>
Clock;
488 int load_session_stage_two (
const std::string& path,
const std::string& snapshot, std::string mix_template = std::string());
635 void toggle_roll (
bool with_abort,
bool roll_out_of_bounded_mode);
785 void display_message (
const char* prefix, gint prefix_len, Glib::RefPtr<Gtk::TextBuffer::Tag>, Glib::RefPtr<Gtk::TextBuffer::Tag>,
const char* msg);
ARDOUR::Session * _session
void display_cleanup_results(ARDOUR::CleanupReport const &rep, const gchar *list_title, const bool msg_delete)
void toggle_session_auto_loop()
XMLNode * preferences_settings() const
bool key_press_focus_accelerator_handler(Gtk::Window &window, GdkEventKey *ev, Gtkmm2ext::Bindings *)
void audio_midi_setup_for_new_session_done(int response, std::string path, std::string snapshot, std::string session_template, ARDOUR::BusProfile const &, bool unnamed, Temporal::TimeDomain domain)
bool session_load_in_progress
static sigc::signal< void, Temporal::timepos_t > Clock
void session_dialog_response_handler(int response, SessionDialog *session_dialog)
SessionOptionEditor * create_session_option_editor()
void new_midi_tracer_window()
PBD::ScopedConnectionList clock_state_connection
void sr_mismatch_message(ARDOUR::samplecnt_t, ARDOUR::samplecnt_t)
RCOptionEditor * rc_option_editor
void stop_video_server(bool ask_confirm=false)
VideoTimeLine * video_timeline
WM::Proxy< IdleOMeter > idleometer
RCOptionEditor * get_rc_option_editor()
void transport_goto_nth_marker(int nth)
void every_point_one_seconds()
MainClock * primary_clock
void set_punch_sensitivity()
WM::Proxy< EngineControl > audio_midi_setup
BigTransportWindow * create_big_transport_window()
Gtk::Label timecode_format_label
void tabs_switch(GtkNotebookPage *, guint page_number)
ArdourWidgets::ArdourButton error_alert_button
void open_recent_session()
PBD::microseconds_t last_configure_time
bool try_gtk_accel_binding(GtkWindow *win, GdkEventKey *ev, bool translate, GdkModifierType modifier)
void attach_tabbable(ArdourWidgets::Tabbable *)
void create_xrun_marker(samplepos_t)
void transport_goto_end()
void we_have_dependents()
WM::Proxy< LocationUIWindow > location_ui
MainClock * secondary_clock
void latency_switch_changed()
Gtk::Menu * _shared_popup_menu
void disk_overrun_handler()
void transport_goto_wallclock()
void update_transport_clocks(samplepos_t pos)
int missing_file(ARDOUR::Session *s, std::string str, ARDOUR::DataType type)
void session_parameter_changed(std::string)
void launch_website_dev()
void show_loop_punch_ruler_and_disallow_hide()
WM::Proxy< TransportMastersWindow > transport_masters_window
XMLNode * trigger_page_settings() const
XMLNode * clock_mode_settings() const
void step_down_through_tabs()
void session_add_foldback_bus(int32_t, uint32_t, std::string const &)
void synchronize_sync_source_and_video_pullup()
WM::Proxy< LuaScriptManager > lua_script_window
Gtk::MenuItem * cleanup_item
void record_state_changed()
sigc::connection blink_connection
void stop_cues(int c, bool immediately)
bool error_alert_press(GdkEventButton *)
ArdourLogLevel _log_not_acknowledged
WM::Proxy< AddRouteDialog > add_route_dialog
int new_session_from_aaf(std::string const &, std::string const &, std::string &, std::string &)
void detach_tabbable(ArdourWidgets::Tabbable *)
void show_plugin_manager()
void toggle_editor_and_mixer()
void tabs_page_added(Gtk::Widget *, guint)
Gtk::Label snapshot_name_label
bool status_bar_button_press(GdkEventButton *)
void hide_tabbable(ArdourWidgets::Tabbable *)
VirtualKeyboardWindow * create_virtual_keyboard_window()
PBD::Signal< void()> Escape
BundleManager * create_bundle_manager()
void disk_underrun_handler()
void transport_ffwd_rewind(bool fwd)
PBD::ScopedConnection editor_meter_connection
void update_sample_rate()
void reenable_hide_loop_punch_ruler_if_appropriate()
void key_change_tabbable_visibility(ArdourWidgets::Tabbable *)
bool xrun_button_press(GdkEventButton *ev)
void engine_running(uint32_t cnt)
void toggle_record_enable(uint16_t)
static void close_all_dialogs()
int build_session(std::string const &path, std::string const &snapshot, std::string const &session_template, ARDOUR::BusProfile const &, bool from_startup_fsm, bool unnamed, Temporal::TimeDomain domain)
Gtk::Window & main_window()
sigc::connection second_connection
static sigc::signal< void > CloseAllDialogs
int load_session_stage_two(const std::string &path, const std::string &snapshot, std::string mix_template=std::string())
WM::ProxyWithConstructor< VirtualKeyboardWindow > virtual_keyboard_window
ArdourWidgets::ArdourButton editor_visibility_button
bool save_as_progress_update(float fraction, int64_t cnt, int64_t total, Gtk::Label *label, Gtk::ProgressBar *bar)
void toggle_send_midi_clock()
bool ask_about_loading_existing_session(const std::string &session_path)
PBD::microseconds_t last_shuttle_request
Glib::RefPtr< Gtk::SizeGroup > button_height_size_group
Gtk::HBox status_bar_hpacker
void launch_howto_report()
Gtk::HBox rc_option_editor_placeholder
void audio_midi_setup_reconfigure_done(int response, std::string path, std::string snapshot, std::string mix_template)
WM::Proxy< IOPluginWindow > io_plugin_window
WM::Proxy< DspStatisticsWindow > dsp_statistics_window
int load_session_from_startup_fsm()
void load_from_application_api(const std::string &path)
WM::Proxy< SpeakerDialog > speaker_config_window
static ARDOUR_UI * theArdourUI
void tabs_page_removed(Gtk::Widget *, guint)
void start_video_server_menu(Gtk::Window *float_window)
gboolean configure_handler(GdkEventConfigure *conf)
void map_transport_state()
void start_duplicate_routes()
Gtk::Menu * shared_popup_menu()
void add_route_dialog_response(int)
void close_current_dialog()
void apply_window_settings(bool)
void toggle_editing_space()
void transport_play_selection()
Gtk::EventBox menu_bar_base
bool session_is_new() const
void toggle_session_options_window()
bool trx_record_enable_all_tracks()
sigc::connection _autosave_connection
std::string _announce_string
void session_format_mismatch(std::string, std::string)
ARDOUR::ProcessThread * _process_thread
PublicEditor & the_editor()
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, bool trigger_visibility)
void trigger_cue_row(int r)
void set_fps_timeout_connection()
void toggle_roll(bool with_abort, bool roll_out_of_bounded_mode)
bool path_button_press(GdkEventButton *ev)
int save_state_canfail(std::string state_name="", bool switch_to_it=false)
void meta_route_setup(const std::string &script_path)
ARDOUR_UI(int *argcp, char **argvp[], const char *localedir)
ArdourWidgets::ArdourButton midi_panic_button
bool tabbed_window_state_event_handler(GdkEventWindowState *, void *object)
const std::string & announce_string() const
Gtk::Label pdc_info_label
guint32 last_key_press_time
void about_signal_response(int response)
std::map< std::string, std::string > route_setup_info(const std::string &script_path)
XMLNode * editor_settings() const
BigClockWindow * create_big_clock_window()
PBD::ScopedConnectionList forever_connections
void add_routes_part_two()
WM::Proxy< RouteParams_UI > route_params
void transport_rec_preroll()
ArdourWidgets::ArdourButton prefs_visibility_button
Gtk::MenuItem * jack_disconnect_item
void step_up_through_tabs()
WM::ProxyWithConstructor< BundleManager > bundle_manager
int ask_about_saving_session(const std::vector< std::string > &actions)
void quick_snapshot_session(bool switch_to_it)
int unload_session(bool hide_stuff=false, bool force_unload=false)
static ARDOUR_UI * instance()
sigc::connection point_one_second_connection
XMLNode * keyboard_settings() const
WM::ProxyWithConstructor< KeyEditor > key_editor
void build_session_from_dialog(SessionDialog &, std::string const &session_name, std::string const &session_path, std::string const &session_template, Temporal::TimeDomain domain)
void button_change_tabbable_visibility(ArdourWidgets::Tabbable *)
bool check_audioengine(Gtk::Window &)
void xrun_handler(samplepos_t)
void check_memory_locking()
void transport_rec_count_in()
gint exit_on_main_window_close(GdkEventAny *)
void rename_session(bool for_unnamed)
void use_menubar_as_top_menubar()
void toggle_session_monitoring_disk()
Gtk::Label peak_thread_work_label
bool timecode_button_press(GdkEventButton *ev)
void count_recenabled_streams(ARDOUR::Route &)
void add_video(Gtk::Window *float_window)
void stop_all_cues(bool immediately)
Meterbridge * meterbridge
WM::Proxy< ExportVideoDialog > export_video_dialog
void toggle_external_sync()
void session_dirty_changed()
int load_session(const std::string &path, const std::string &snapshot, std::string mix_template=std::string())
void display_insufficient_ports_message()
XMLNode * recorder_settings() const
Gtk::Label dsp_load_label
Gtk::Menu * jack_bufsize_menu
WM::Proxy< PluginManagerUI > plugin_manager_ui
PBD::ScopedConnection halt_connection
sigc::connection clock_signal_connection
uint32_t rec_enabled_streams
void grab_focus_after_dialog()
SaveAsDialog * save_as_dialog
void update_timecode_format()
void transport_record(bool roll)
void setup_session_options()
int create_trigger_page()
void session_add_midi_route(bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord *, ARDOUR::PresentationInfo::order_t order, bool trigger_visibility)
bool start_video_server(Gtk::Window *float_window, bool popup_msg)
void engine_halted(const char *reason, bool free_reason)
Glib::RefPtr< Gtk::ActionGroup > common_actions
WM::Proxy< PluginDSPLoadWindow > plugin_dsp_load_window
int build_session_stage_two(std::string const &path, std::string const &snapshot, std::string const &session_template, ARDOUR::BusProfile const &, bool unnamed, Temporal::TimeDomain domain, ARDOUR::samplecnt_t samplerate=0)
void connect_dependents_to_session(ARDOUR::Session *)
void ask_about_scratch_deletion()
void maximise_editing_space()
WM::ProxyWithConstructor< GlobalPortMatrixWindow > midi_port_matrix
void session_dialog(std::string)
bool have_disk_speed_dialog_displayed
sigc::connection fps_connection
int pending_state_dialog()
bool format_button_press(GdkEventButton *ev)
void toggle_latency_switch()
void tabbable_state_change(ArdourWidgets::Tabbable &)
void restore_editing_space()
sigc::connection _numpad_timeout_connection
LibraryDownloadDialog * create_library_download_window()
void toggle_mixer_space()
SessionDialog * _session_dialog
void transport_goto_zero()
bool key_event_handler(GdkEventKey *, Gtk::Window *window)
WM::ProxyWithConstructor< SessionOptionEditor > session_option_editor
void audioengine_became_silent()
void set_transport_controllable_state(const XMLNode &)
bool tabbable_visibility_button_press(GdkEventButton *ev, std::string const &tabbable_name)
bool _numpad_locate_happening
GtkNotebook * tab_window_root_drop(GtkNotebook *src, GtkWidget *w, gint x, gint y, gpointer user_data)
GUIObjectState * gui_object_state
WM::ProxyWithConstructor< LuaWindow > luawindow
void install_dependent_actions()
void halt_on_xrun_message()
Gtk::MenuItem * jack_reconnect_item
XMLNode * tearoff_settings(const char *) const
void set_session(ARDOUR::Session *)
void transport_numpad_event(int num)
bool audio_button_press(GdkEventButton *ev)
void export_video(bool range=false)
bool main_window_delete_event(GdkEventAny *)
void save_template_dialog_response(int response, SaveTemplateDialog *d)
void get_process_buffers()
int sr_mismatch_dialog(ARDOUR::samplecnt_t, ARDOUR::samplecnt_t)
bool xrun_button_release(GdkEventButton *ev)
DuplicateRouteDialog * duplicate_routes_dialog
ArdourWidgets::ArdourButton trigger_page_visibility_button
void toggle_rc_options_window()
void meta_session_setup(const std::string &script_path)
void transport_numpad_decimal()
bool get_smart_mode() const
void check_announcements()
void drop_process_buffers()
void handle_locations_change(ARDOUR::Location *)
PBD::Signal< void()> ActionsReady
KeyEditor * create_key_editor()
GlobalPortMatrixWindow * create_global_port_matrix(ARDOUR::DataType)
PBD::microseconds_t last_peak_grab
ArdourKeyboard * keyboard
WM::ProxyWithConstructor< BigClockWindow > big_clock_window
ARDOUR::SystemExec * video_server_process
VisibilityGroup _status_bar_visibility
WM::ProxyWithConstructor< BigTransportWindow > big_transport_window
void setup_toplevel_window(Gtk::Window &, const std::string &name, void *owner)
LuaWindow * create_luawindow()
void session_latency_updated(bool)
bool nsm_first_session_opened
WM::ProxyWithConstructor< LibraryDownloadDialog > library_download_window
ARDOUR::PresentationInfo::order_t translate_order(RouteDialogs::InsertAt)
void snapshot_session(bool switch_to_it)
TriggerPage * trigger_page
Gtk::Label sample_rate_label
void trigger_slot(int c, int r)
XMLNode & get_transport_controllable_state()
ArdourLogLevel log_not_acknowledged() const
bool click_button_clicked(GdkEventButton *)
void toggle_keep_tearoffs()
void show_library_download_window()
void transport_goto_start()
void toggle_time_master()
ArdourWidgets::ArdourButton recorder_visibility_button
WM::ProxyWithConstructor< AddVideoDialog > add_video_dialog
void format_disk_space_label(float)
XMLNode * mixer_settings() const
int ambiguous_file(std::string file, std::vector< std::string > hits)
ARDOUR::Session * the_session()
XMLNode * main_window_settings() const
bool have_configure_timeout
AddVideoDialog * create_add_video_dialog()
Gtk::Table tabbables_table
void toggle_auto_return()
void parameter_changed(std::string)
void toggle_use_monitor_section()
void save_session_at_its_request(std::string)
bool process_snapshot_session_prompter(ArdourWidgets::Prompter &prompter, bool switch_to_it)
void show_tabbable(ArdourWidgets::Tabbable *)
void sfsm_response(StartupFSM::Result)
bool run_startup(bool should_be_new, std::string load_template)
Gtk::Label wall_clock_label
void save_state(const std::string &state_name="", bool switch_to_it=false)
void transport_play_preroll()
void flush_videotimeline_cache(bool localcacheonly=false)
void toggle_follow_edits()
Gtk::Label status_bar_label
WM::ProxyWithConstructor< GlobalPortMatrixWindow > audio_port_matrix
Gtk::Label disk_space_label
ArdourWidgets::ArdourButton mixer_visibility_button
void toggle_meterbridge()
void disk_speed_dialog_gone(int ignored_response, Gtk::MessageDialog *)
Gtk::Label session_path_label
std::list< MidiTracer * > _midi_tracer_windows
gint transport_numpad_timeout()
bool idle_ask_about_quit()
Gtkmm2ext::VisibilityTracker * main_window_visibility
int32_t do_engine_start()
Gtk::Label latency_info_label
sigc::connection _engine_dialog_connection
void set_log_not_acknowledged(const ArdourLogLevel lvl)
void reset_focus(Gtk::Widget *)
void set_shuttle_fract(double)
void display_message(const char *prefix, gint prefix_len, Glib::RefPtr< Gtk::TextBuffer::Tag >, Glib::RefPtr< Gtk::TextBuffer::Tag >, const char *msg)
void start_session_load(bool create_new)
void update_peak_thread_work()
void toggle_session_monitoring_in()
dialog box and controller for video-file export
Representation of the interface of the Editor class.
video-timline controller and display
GtkImageIconNameData name
struct _GtkNotebookPage GtkNotebookPage
PBD::PropertyDescriptor< uint32_t > order
std::string load_template
Temporal::samplecnt_t samplecnt_t
Temporal::samplepos_t samplepos_t
std::shared_ptr< PluginInfo > PluginInfoPtr
Editing of options which are obtained from and written back to one of the .rc files.