X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fcontrol_protocol%2Fcontrol_protocol%2Fbasic_ui.h;h=43ebcfa9e71977c0f4b7288141415cd1d5cb2190;hb=eed3ea5047ae50484542cacece0df1fd9db2e4d0;hp=7bc6b25c32508ce8f6943e794a58df6424974001;hpb=6edccc3070b813157ffcd4014ec8dd7fa6ed9ce7;p=ardour.git diff --git a/libs/surfaces/control_protocol/control_protocol/basic_ui.h b/libs/surfaces/control_protocol/control_protocol/basic_ui.h index 7bc6b25c32..43ebcfa9e7 100644 --- a/libs/surfaces/control_protocol/control_protocol/basic_ui.h +++ b/libs/surfaces/control_protocol/control_protocol/basic_ui.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2006 Paul Davis + Copyright (C) 2006 Paul Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser @@ -22,37 +22,57 @@ #define __ardour_basic_ui_h__ #include +#include -#include -#include +#include "pbd/signals.h" + +#include "ardour/types.h" +#include "ardour/presentation_info.h" + +#include "timecode/time.h" + +#include "control_protocol/visibility.h" namespace ARDOUR { class Session; + class SessionEvent; + class Stripable; } -class BasicUI { +class LIBCONTROLCP_API BasicUI { public: BasicUI (ARDOUR::Session&); virtual ~BasicUI (); - - void add_marker (); + + void add_marker (const std::string& = std::string()); + void remove_marker_at_playhead (); + +// void mark_in(); +// void mark_out(); void register_thread (std::string name); /* transport control */ void loop_toggle (); + void loop_location (framepos_t start, framepos_t end); + void access_action ( std::string action_path ); + static PBD::Signal2 AccessAction; + void goto_zero (); void goto_start (); void goto_end (); void rewind (); void ffwd (); void transport_stop (); - void transport_play (bool jump_back = true); - void set_transport_speed (float speed); - float get_transport_speed (); + void transport_play (bool jump_back = false); + void set_transport_speed (double speed); + double get_transport_speed (); - jack_nframes_t transport_frame (); - void locate (jack_nframes_t frame, bool play = false); + void jump_by_seconds( double sec ); + void jump_by_bars(double bars); + + ARDOUR::framepos_t transport_frame (); + void locate (ARDOUR::framepos_t frame, bool play = false); bool locating (); bool locked (); @@ -63,18 +83,66 @@ class BasicUI { void redo (); void toggle_punch_in (); void toggle_punch_out (); + + void mark_in(); + void mark_out(); + + void toggle_click(); + void midi_panic(); + + void toggle_monitor_mute(); + void toggle_monitor_dim(); + void toggle_monitor_mono(); + + void quick_snapshot_stay (); + void quick_snapshot_switch (); + + void toggle_roll(); //this provides the same operation as the "spacebar", it's a lot smarter than "play". + + void stop_forget(); + + void set_punch_range(); + void set_loop_range(); + void set_session_range(); void set_record_enable (bool yn); bool get_record_enabled (); + //editor visibility stuff (why do we have to make explicit numbers here? because "gui actions" don't accept args + void fit_1_track(); + void fit_2_tracks(); + void fit_4_tracks(); + void fit_8_tracks(); + void fit_16_tracks(); + void fit_32_tracks(); + void fit_all_tracks(); + void zoom_10_ms(); + void zoom_100_ms(); + void zoom_1_sec(); + void zoom_10_sec(); + void zoom_1_min(); + void zoom_5_min(); + void zoom_10_min(); + void zoom_to_session(); + void temporal_zoom_in(); + void temporal_zoom_out(); + + void scroll_up_1_track(); + void scroll_dn_1_track(); + void scroll_up_1_page(); + void scroll_dn_1_page(); + void rec_enable_toggle (); void toggle_all_rec_enables (); - jack_nframes_t smpte_frames_per_hour (); + void all_tracks_rec_in (); + void all_tracks_rec_out (); + + ARDOUR::framecnt_t timecode_frames_per_hour (); - void smpte_time (jack_nframes_t where, SMPTE::Time&); - void smpte_to_sample (SMPTE::Time& smpte, jack_nframes_t& sample, bool use_offset, bool use_subframes) const; - void sample_to_smpte (jack_nframes_t sample, SMPTE::Time& smpte, bool use_offset, bool use_subframes) const; + void timecode_time (framepos_t where, Timecode::Time&); + void timecode_to_sample (Timecode::Time& timecode, framepos_t & sample, bool use_offset, bool use_subframes) const; + void sample_to_timecode (framepos_t sample, Timecode::Time& timecode, bool use_offset, bool use_subframes) const; protected: BasicUI ();