19 #ifndef ardour_surface_faderport8_h
20 #define ardour_surface_faderport8_h
24 #define FP8_MUTESOLO_UNDO
28 #include <glibmm/threads.h>
30 #define ABSTRACT_UI_EXPORTS
70 static bool probe (std::string&, std::string&);
101 std::shared_ptr<ARDOUR::Port>
input_port()
const {
return _input_port; }
102 std::shared_ptr<ARDOUR::Port>
output_port()
const {
return _output_port; }
103 std::list<std::shared_ptr<ARDOUR::Bundle> >
bundles ();
105 size_t tx_midi (std::vector<uint8_t>
const&)
const;
128 InputConnected = 0x1,
129 OutputConnected = 0x2
157 void bank (
bool down,
bool page);
208 ProcessorCtrl (std::string
const &n, std::shared_ptr<ARDOUR::AutomationControl> c)
213 std::shared_ptr<ARDOUR::AutomationControl>
ac;
229 std::string
const&
timecode ()
const {
return _timecode; }
247 bool shift_mod ()
const {
return _shift_lock || (_shift_pressed > 0); }
284 #ifdef FP8_MUTESOLO_UNDO
303 #ifdef FP8_MUTESOLO_UNDO
304 std::vector <std::weak_ptr<ARDOUR::AutomationControl> >
_mute_state;
305 std::vector <std::weak_ptr<ARDOUR::AutomationControl> >
_solo_state;
351 _action_name.clear();
356 if (action_name.empty ()) {
358 _action_name.clear();
361 _action_name = action_name;
367 return _type == Unset;
388 return press ? on_press : on_release;
393 return press ? on_press : on_release;
398 action (
press).call (_base);
402 return on_press.
empty () && on_release.
empty();
uint32_t clock_mode() const
void notify_solo_changed()
std::shared_ptr< ARDOUR::Bundle > _output_bundle
PBD::ScopedConnection link_connection
UserActionMap _user_action_map
void sysex_handler(MIDI::Parser &p, MIDI::byte *, size_t)
PBD::ScopedConnectionList processor_connections
CONTROL_PROTOCOL_THREADS_NEED_TEMPO_MAP_DECL()
std::shared_ptr< ARDOUR::AsyncMIDIPort > _input_port
void notify_transport_state_changed()
void assign_processor_ctrls()
void set_scribble_mode(uint32_t m)
void button_varispeed(bool)
FP8Controls const & control() const
void notify_plugin_active_changed()
void nofity_focus_control(std::weak_ptr< PBD::Controllable >)
void send_session_state()
void stripable_selection_changed()
bool assign_plugin_presets(std::shared_ptr< ARDOUR::PluginInsert >)
void connect_session_signals()
void pitchbend_handler(MIDI::Parser &, uint8_t chan, MIDI::pitchbend_t pb)
void notify_loop_state_changed()
void notify_stripable_property_changed(std::weak_ptr< ARDOUR::Stripable >, const PBD::PropertyChange &)
std::map< FP8Controls::ButtonId, ButtonAction > UserActionMap
void select_plugin_preset(size_t num)
FaderPort8(ARDOUR::Session &)
PBD::Signal< void()> ConnectionChange
PBD::ScopedConnectionList assigned_stripable_connections
void notify_session_dirty_changed()
std::list< std::shared_ptr< ARDOUR::Bundle > > bundles()
static bool probe(std::string &, std::string &)
bool auto_pluginui() const
PBD::ScopedConnectionList port_connections
PBD::ScopedConnection link_locked_connection
void notify_snap_change()
void select_plugin(int num)
std::weak_ptr< ARDOUR::PluginInsert > _plugin_insert
void notify_parameter_changed(std::string)
sigc::connection _periodic_connection
XMLNode & get_state() const
void notify_mute_changed()
int get_channel_off(FP8Types::MixMode m) const
std::shared_ptr< ARDOUR::Port > input_port() const
std::map< std::shared_ptr< ARDOUR::Stripable >, uint8_t > StripAssignmentMap
PBD::ScopedConnectionList midi_connections
std::string _musical_time
std::shared_ptr< ARDOUR::AsyncMIDIPort > _output_port
void select_strip(std::weak_ptr< ARDOUR::Stripable >)
void subscribe_to_strip_signals()
void stop_midi_handling()
void bank(bool down, bool page)
sigc::connection _blink_connection
PBD::ScopedConnectionList modechange_connections
PBD::ScopedConnectionList route_state_connections
void filter_stripables(ARDOUR::StripableList &strips) const
void start_midi_handling()
void set_periodic_display_mode(FP8Strip::DisplayMode)
bool connection_handler(std::string name1, std::string name2)
void notify_record_state_changed()
void set_auto_pluginui(bool yn)
std::shared_ptr< ARDOUR::Port > output_port() const
void assign_stripables(bool select_only=false)
void set_channel_off(FP8Types::MixMode m, int off)
void button_automation(ARDOUR::AutoState)
void encoder_navigate(bool, int)
void build_well_known_processor_ctrls(std::shared_ptr< ARDOUR::Stripable >, int)
void set_two_line_text(bool yn)
void set_button_action(FP8Controls::ButtonId, bool, std::string const &)
void button_prev_next(bool)
void set_clock_mode(uint32_t m)
bool midi_input_handler(Glib::IOCondition ioc, std::weak_ptr< ARDOUR::AsyncMIDIPort > port)
void drop_ctrl_connections()
void handle_encoder_link(int steps)
void do_request(FaderPort8Request *)
StripAssignmentMap _assigned_strips
void bank_param(bool down, bool page)
void polypressure_handler(MIDI::Parser &, MIDI::EventTwoBytes *tb)
PBD::ScopedConnectionList session_connections
PBD::ScopedConnectionList button_connections
void button_action(const std::string &group, const std::string &item)
void notify_history_changed()
sigc::connection _shift_connection
size_t tx_midi(std::vector< uint8_t > const &) const
void move_selected_into_view()
uint32_t scribble_mode() const
std::shared_ptr< ARDOUR::Bundle > _input_bundle
void handle_encoder_pan(int steps)
void note_on_handler(MIDI::Parser &, MIDI::EventTwoBytes *tb)
void button_user(bool, FP8Controls::ButtonId)
void unlock_link(bool drop=false)
PBD::ScopedConnection selection_connection
std::string const & timecode() const
int set_state(const XMLNode &, int version)
std::list< ProcessorCtrl > _proc_params
void notify_fader_mode_changed()
void notify_pi_property_changed(const PBD::PropertyChange &)
void notify_route_state_changed()
void encoder_parameter(bool, int)
std::weak_ptr< PBD::Controllable > _link_control
std::vector< std::weak_ptr< ARDOUR::AutomationControl > > _solo_state
void notify_stripable_added_or_removed()
void toggle_preset_param_mode()
void controller_handler(MIDI::Parser &, MIDI::EventTwoBytes *tb)
std::vector< std::weak_ptr< ARDOUR::AutomationControl > > _mute_state
void select_prev_next(bool next)
std::string get_button_action(FP8Controls::ButtonId, bool)
std::string const & musical_time() const
void note_off_handler(MIDI::Parser &, MIDI::EventTwoBytes *tb)
void access_action(std::string action_path)
GtkImageIconNameData name
std::list< std::shared_ptr< Stripable > > StripableList
unsigned short pitchbend_t
ProcessorCtrl(std::string const &n, std::shared_ptr< ARDOUR::AutomationControl > c)
std::shared_ptr< ARDOUR::AutomationControl > ac
void assign_action(std::string const &action_name)
void call(FaderPort8 &_base) const