24 #ifndef __gm_midicontrollable_h__
25 #define __gm_midicontrollable_h__
56 int init (
const std::string&);
void midi_sense_note_on(MIDI::Parser &p, MIDI::EventTwoBytes *tb)
void bind_rpn_value(MIDI::channel_t, uint16_t rpn)
void drop_external_control()
MIDIControllable(GenericMidiControlProtocol *, MIDI::Parser &, std::shared_ptr< PBD::Controllable >, bool momentary)
void nrpn_value_change(MIDI::Parser &, uint16_t nrpn, float val)
float midi_to_control(int val)
void bind_remap(std::shared_ptr< ARDOUR::Stripable >)
PBD::ScopedConnection midi_sense_connection[2]
std::shared_ptr< PBD::Controllable > _controllable
const std::string & current_uri() const
MIDI::Parser & get_parser()
int max_value_for_type() const
GenericMidiControlProtocol * _surface
void bind_nrpn_change(MIDI::channel_t, uint16_t rpn)
void set_encoder(Encoder val)
void midi_sense_program_change(MIDI::Parser &, MIDI::byte)
void rediscover_controllable()
virtual ~MIDIControllable()
PBD::ScopedConnection controllable_remapped_connection
MIDI::channel_t control_channel
Encoder get_encoder() const
void midi_sense_controller(MIDI::Parser &, MIDI::EventTwoBytes *)
void learn_about_external_control()
std::string control_description() const
void midi_sense_pitchbend(MIDI::Parser &, MIDI::pitchbend_t)
void nrpn_change(MIDI::Parser &, uint16_t nrpn, int direction)
int lookup_controllable()
void rpn_change(MIDI::Parser &, uint16_t nrpn, int direction)
int set_state(const XMLNode &, int version)
void midi_sense_note(MIDI::Parser &, MIDI::EventTwoBytes *, bool is_on)
void bind_midi(MIDI::channel_t, MIDI::eventType, MIDI::byte)
CtlType get_ctltype() const
void midi_sense_note_off(MIDI::Parser &p, MIDI::EventTwoBytes *tb)
MIDI::channel_t get_control_channel()
void rpn_value_change(MIDI::Parser &, uint16_t nrpn, float val)
std::shared_ptr< PBD::Controllable > get_controllable() const
MIDI::byte control_additional
void set_controllable(std::shared_ptr< PBD::Controllable >)
void midi_receiver(MIDI::Parser &p, MIDI::byte *, size_t)
void set_ctltype(CtlType val)
XMLNode & get_state() const
Glib::Threads::Mutex controllable_lock
void bind_rpn_change(MIDI::channel_t, uint16_t rpn)
MIDI::eventType get_control_type()
int control_to_midi(float val)
float last_controllable_value
MIDI::byte * write_feedback(MIDI::byte *buf, int32_t &bufsize, bool force=false)
MIDI::eventType control_type
std::string _control_description
PBD::ScopedConnection controllable_death_connection
void bind_nrpn_value(MIDI::channel_t, uint16_t rpn)
MIDI::byte get_control_additional()
int init(const std::string &)
MIDIControllable(GenericMidiControlProtocol *, MIDI::Parser &, bool momentary=false)
bool bank_relative() const
PBD::ScopedConnection midi_learn_connection
void midi_rebind(MIDI::channel_t channel=-1)
unsigned short pitchbend_t