#include "add_route_dialog.h"
#include "ardour_button.h"
#include "ardour_dialog.h"
+#include "ardour_spacer.h"
#include "ardour_window.h"
#include "editing.h"
#include "enums.h"
+#include "mini_timeline.h"
+#include "shuttle_control.h"
#include "visibility_group.h"
#include "window_manager.h"
#include "engine_dialog.h"
#include "export_video_dialog.h"
#include "global_port_matrix.h"
+#include "idleometer.h"
#include "keyeditor.h"
#include "location_ui.h"
#include "lua_script_manager.h"
#include "rc_option_editor.h"
+#include "route_dialogs.h"
#include "route_params_ui.h"
#include "session_option_editor.h"
#include "speaker_dialog.h"
class SessionOptionEditor;
class SpeakerDialog;
class GlobalPortMatrixWindow;
+class IdleOMeter;
#endif
class VideoTimeLine;
class ArdourKeyboard;
+class ArdourVSpacer;
class AudioClock;
class ButtonJoiner;
class ConnectionEditor;
class SaveAsDialog;
class SessionDialog;
class SessionOptionEditorWindow;
-class ShuttleControl;
class Splash;
class TimeInfoBox;
class Meterbridge;
static ARDOUR_UI *instance () { return theArdourUI; }
+ /* signal emitted when escape key is pressed. All UI components that
+ need to respond to Escape in some way (e.g. break drag, clear
+ selection, etc) should connect to and handle this.
+ */
+ PBD::Signal0<void> Escape;
+
PublicEditor& the_editor() { return *editor;}
Mixer_UI* the_mixer() { return mixer; }
void toggle_monitor_section_visibility ();
void toggle_keep_tearoffs();
+ void reset_focus (Gtk::Widget*);
+
static PublicEditor* _instance;
/** Emitted frequently with the audible frame, false, and the edit point as
XMLNode* main_window_settings() const;
XMLNode* editor_settings() const;
+ XMLNode* preferences_settings() const;
XMLNode* mixer_settings () const;
XMLNode* keyboard_settings () const;
XMLNode* tearoff_settings (const char*) const;
void focus_on_clock ();
AudioClock* big_clock;
- TimeInfoBox* time_info_box;
-
VideoTimeLine *video_timeline;
void store_clock_modes ();
void synchronize_sync_source_and_video_pullup ();
void add_route ();
+ void add_route_dialog_finished (int);
void add_routes_part_two ();
void add_routes_thread ();
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);
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,
uint32_t how_many,
std::string const & name_template,
bool strict_io,
- ARDOUR::PresentationInfo::order_t order,
ARDOUR::PluginInfoPtr instrument,
- ARDOUR::Plugin::PresetRecord* preset = NULL) {
- session_add_midi_route (true, route_group, how_many, name_template, strict_io, order, instrument, preset);
+ 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, ARDOUR::PluginInfoPtr,
+ void session_add_mixed_track (const ARDOUR::ChanCount&, const ARDOUR::ChanCount&, ARDOUR::RouteGroup*, uint32_t, std::string const &, bool,
+ 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,
+ void session_add_midi_bus (ARDOUR::RouteGroup*, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord* pset,
ARDOUR::PresentationInfo::order_t order);
- 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_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, ARDOUR::PresentationInfo::order_t order,
- ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord*);
-
+ 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 ();
Gtkmm2ext::ActionMap global_actions;
+ ARDOUR::PresentationInfo::order_t translate_order (RouteDialogs::InsertAt);
+
protected:
friend class PublicEditor;
bool ignore_dual_punch;
void toggle_punch_in ();
void toggle_punch_out ();
+ void toggle_session_monitoring_in ();
+ void toggle_session_monitoring_disk ();
void show_loop_punch_ruler_and_disallow_hide ();
void reenable_hide_loop_punch_ruler_if_appropriate ();
void toggle_auto_return ();
/* Transport Control */
+ Gtk::Table transport_table;
Gtk::Frame transport_frame;
Gtk::HBox transport_hbox;
- Gtk::Fixed transport_base;
- Gtk::Fixed transport_button_base;
- Gtk::Frame transport_button_frame;
- Gtk::HBox transport_button_hbox;
- Gtk::VBox transport_button_vbox;
- Gtk::HBox transport_option_button_hbox;
- Gtk::VBox transport_option_button_vbox;
- Gtk::HBox transport_clock_hbox;
- Gtk::VBox transport_clock_vbox;
- Gtk::HBox primary_clock_hbox;
- Gtk::HBox secondary_clock_hbox;
+
+ ArdourVSpacer *secondary_clock_spacer;
+ void repack_transport_hbox ();
+ void update_clock_visibility ();
struct TransportControllable : public PBD::Controllable {
enum ToggleType {
ArdourButton auto_loop_button;
ArdourButton play_selection_button;
ArdourButton rec_button;
+ ArdourButton punch_in_button;
+ ArdourButton punch_out_button;
+ ArdourButton layered_button;
+
+ ArdourVSpacer recpunch_spacer;
+ ArdourVSpacer monitoring_spacer;
+
+ ArdourButton monitor_in_button;
+ ArdourButton monitor_disk_button;
+ ArdourButton auto_input_button;
+
+ Gtk::Label punch_label;
+ Gtk::Label layered_label;
+
+ Gtk::Label punch_space;
+ Gtk::Label mon_space;
void toggle_external_sync ();
void toggle_time_master ();
void toggle_video_sync ();
- ShuttleControl* shuttle_box;
+ ShuttleControl shuttle_box;
+ MiniTimeline mini_timeline;
+ TimeInfoBox *time_info_box;
ArdourButton auto_return_button;
ArdourButton follow_edits_button;
- ArdourButton auto_input_button;
ArdourButton click_button;
ArdourButton sync_button;
ArdourButton editor_meter_peak_display;
bool editor_meter_peak_button_release (GdkEventButton*);
+ bool editor_meter_button_press (GdkEventButton* ev);
+ void popup_editor_meter_menu (GdkEventButton* ev);
+ void add_editor_meter_type_item (Gtk::Menu_Helpers::MenuList&, Gtk::RadioMenuItem::Group&, std::string const &, ARDOUR::MeterType);
+ bool _suspend_editor_meter_callbacks;
+
void blink_handler (bool);
sigc::connection blink_connection;
void _auditioning_changed (bool);
bool solo_alert_press (GdkEventButton* ev);
- bool audition_alert_press (GdkEventButton* ev);
- bool feedback_alert_press (GdkEventButton *);
+ void audition_alert_clicked ();
bool error_alert_press (GdkEventButton *);
+ void layered_button_clicked ();
+
void big_clock_value_changed ();
void primary_clock_value_changed ();
void secondary_clock_value_changed ();
void edit_metadata ();
void import_metadata ();
+ void set_loop_sensitivity ();
void set_transport_sensitivity (bool);
//stuff for ProTools-style numpad
void transport_roll ();
void transport_play_selection();
void transport_play_preroll();
+ void transport_rec_preroll();
+ void transport_rec_count_in();
void transport_forward (int option);
void transport_rewind (int option);
void transport_loop ();
bool save_as_progress_update (float fraction, int64_t cnt, int64_t total, Gtk::Label* label, Gtk::ProgressBar* bar);
void save_session_as ();
+ void archive_session ();
void rename_session ();
- ARDOUR::PresentationInfo::order_t translate_order (AddRouteDialog::InsertAt);
int create_mixer ();
int create_editor ();
WM::Proxy<EngineControl> audio_midi_setup;
WM::Proxy<ExportVideoDialog> export_video_dialog;
WM::Proxy<LuaScriptManager> lua_script_window;
+ WM::Proxy<IdleOMeter> idleometer;
/* Windows/Dialogs that require a creator method */
std::vector<std::string> positional_sync_strings;
- void toggle_send_midi_feedback ();
void toggle_use_mmc ();
void toggle_send_mmc ();
void toggle_send_mtc ();
PBD::ScopedConnectionList forever_connections;
PBD::ScopedConnection halt_connection;
+ PBD::ScopedConnection editor_meter_connection;
void step_edit_status_change (bool);
int ambiguous_file (std::string file, std::vector<std::string> hits);
bool click_button_clicked (GdkEventButton *);
+ bool click_button_scroll (GdkEventScroll *);
+ bool sync_button_clicked (GdkEventButton *);
VisibilityGroup _status_bar_visibility;
void step_up_through_tabs ();
void step_down_through_tabs ();
+
+ void escape ();
+ void close_current_dialog ();
+ void pre_release_dialog ();
+
+ bool bind_lua_action_script (GdkEventButton*, int);
+ void update_action_script_btn (int i, const std::string&);
};
#endif /* __ardour_gui_h__ */