mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 08:36:32 +01:00
rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9c0d7d72d7
commit
449aab3c46
2869 changed files with 1026749 additions and 0 deletions
72
libs/surfaces/generic_midi/generic_midi_control_protocol.h
Normal file
72
libs/surfaces/generic_midi/generic_midi_control_protocol.h
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
#ifndef ardour_generic_midi_control_protocol_h
|
||||
#define ardour_generic_midi_control_protocol_h
|
||||
|
||||
#include <set>
|
||||
#include <glibmm/thread.h>
|
||||
#include <ardour/types.h>
|
||||
|
||||
#include <control_protocol/control_protocol.h>
|
||||
|
||||
namespace MIDI {
|
||||
class Port;
|
||||
}
|
||||
|
||||
namespace PBD {
|
||||
class Controllable;
|
||||
}
|
||||
|
||||
namespace ARDOUR {
|
||||
class Session;
|
||||
}
|
||||
|
||||
class MIDIControllable;
|
||||
|
||||
class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
|
||||
public:
|
||||
GenericMidiControlProtocol (ARDOUR::Session&);
|
||||
virtual ~GenericMidiControlProtocol();
|
||||
|
||||
int set_active (bool yn);
|
||||
static bool probe() { return true; }
|
||||
|
||||
MIDI::Port* port () const { return _port; }
|
||||
void set_feedback_interval (ARDOUR::microseconds_t);
|
||||
|
||||
int set_feedback (bool yn);
|
||||
bool get_feedback () const;
|
||||
|
||||
XMLNode& get_state ();
|
||||
int set_state (const XMLNode&);
|
||||
|
||||
private:
|
||||
MIDI::Port* _port;
|
||||
ARDOUR::microseconds_t _feedback_interval;
|
||||
ARDOUR::microseconds_t last_feedback_time;
|
||||
|
||||
bool do_feedback;
|
||||
bool auto_binding;
|
||||
void _send_feedback ();
|
||||
void send_feedback ();
|
||||
|
||||
typedef std::set<MIDIControllable*> MIDIControllables;
|
||||
MIDIControllables controllables;
|
||||
|
||||
typedef std::list<std::pair<MIDIControllable*,sigc::connection> > MIDIPendingControllables;
|
||||
MIDIPendingControllables pending_controllables;
|
||||
Glib::Mutex controllables_lock;
|
||||
Glib::Mutex pending_lock;
|
||||
|
||||
bool start_learning (PBD::Controllable*);
|
||||
void stop_learning (PBD::Controllable*);
|
||||
|
||||
void learning_stopped (MIDIControllable*);
|
||||
|
||||
void create_binding (PBD::Controllable*, int, int);
|
||||
void delete_binding (PBD::Controllable*);
|
||||
|
||||
void auto_binding_on();
|
||||
void auto_binding_off();
|
||||
|
||||
};
|
||||
|
||||
#endif /* ardour_generic_midi_control_protocol_h */
|
||||
Loading…
Add table
Add a link
Reference in a new issue