22 #ifndef ardour_generic_midi_control_protocol_h
23 #define ardour_generic_midi_control_protocol_h
26 #include <glibmm/threads.h>
28 #define ABSTRACT_UI_EXPORTS
75 std::list<std::shared_ptr<ARDOUR::Bundle> >
bundles ();
191 bool connection_handler (std::weak_ptr<ARDOUR::Port>, std::string name1, std::weak_ptr<ARDOUR::Port>, std::string name2,
bool yn);
void set_feedback_interval(PBD::microseconds_t)
void stop_learning(std::weak_ptr< PBD::Controllable >)
void maybe_start_touch(std::shared_ptr< PBD::Controllable >)
std::shared_ptr< ARDOUR::AsyncMIDIPort > _input_port
XMLNode & get_state() const
std::list< std::shared_ptr< ARDOUR::Bundle > > bundles()
PBD::Signal< void()> ConnectionChange
virtual ~GenericMidiControlProtocol()
int set_feedback(bool yn)
std::shared_ptr< ARDOUR::Port > input_port() const
MIDIAction * create_action(const XMLNode &)
void learning_stopped(MIDIControllable *)
void start_midi_handling()
std::string current_binding() const
std::shared_ptr< PBD::Controllable > lookup_controllable(std::string const &, MIDIControllable &) const
CONTROL_PROTOCOL_THREADS_NEED_TEMPO_MAP_DECL()
PBD::microseconds_t _feedback_interval
MIDIControllables controllables
PBD::ScopedConnection _port_connection
bool start_learning(std::weak_ptr< PBD::Controllable >)
MIDIPendingControllables pending_controllables
MIDIFunction * create_function(const XMLNode &)
std::shared_ptr< ARDOUR::AsyncMIDIPort > _output_port
void set_rid_selection(int rid)
Glib::Threads::Mutex pending_lock
void add_rid_to_selection(int rid)
GenericMidiControlProtocol(ARDOUR::Session &)
int set_state(const XMLNode &, int version)
void do_request(GenericMIDIRequest *)
std::shared_ptr< ARDOUR::Bundle > _output_bundle
std::shared_ptr< ARDOUR::Port > output_port() const
std::list< MIDIPendingControllable * > MIDIPendingControllables
void stripable_selection_changed()
std::shared_ptr< ARDOUR::Bundle > _input_bundle
void remove_rid_from_selection(int rid)
int load_bindings(const std::string &)
void check_used_event(int, int)
bool get_feedback() const
bool midi_input_handler(Glib::IOCondition ioc, std::weak_ptr< ARDOUR::AsyncMIDIPort > port)
std::list< MIDIAction * > MIDIActions
bool connection_handler(std::weak_ptr< ARDOUR::Port >, std::string name1, std::weak_ptr< ARDOUR::Port >, std::string name2, bool yn)
void set_current_bank(uint32_t)
std::list< MapInfo > map_info
PBD::ScopedConnectionList midi_connections
std::list< MIDIFunction * > MIDIFunctions
Glib::Threads::Mutex controllables_lock
MIDIControllable * create_binding(const XMLNode &)
PBD::microseconds_t last_feedback_time
std::string _current_binding
void stop_midi_handling()
void toggle_rid_selection(int rid)
std::list< MIDIControllable * > MIDIControllables
void reset_controllables()
std::shared_ptr< PBD::Controllable > Controllable
MIDIPendingControllable(MIDIControllable *c, bool omc)
PBD::ScopedConnection connection