id_t becomes a fully-fledged object, UUID's used for IDs, generic MIDI now owns bindings, MIDI binding concept removed from libardour itself in favor of generic Controllables

git-svn-id: svn://localhost/ardour2/trunk@669 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2006-07-07 23:51:30 +00:00
parent 6f2e8de6a0
commit 8b46567e06
97 changed files with 1444 additions and 2088 deletions

View file

@ -1,34 +1,55 @@
#ifndef ardour_generic_midi_control_protocol_h
#define ardour_generic_midi_control_protocol_h
#include <vector>
#include <glibmm/thread.h>
#include <ardour/types.h>
#include <control_protocol/control_protocol.h>
namespace MIDI {
class Port;
}
namespace ARDOUR {
namespace PBD {
class Controllable;
}
class GenericMidiControlProtocol : public ControlProtocol {
namespace ARDOUR {
class Session;
}
class MIDIControllable;
class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
public:
GenericMidiControlProtocol (Session&);
GenericMidiControlProtocol (ARDOUR::Session&);
virtual ~GenericMidiControlProtocol();
int set_active (bool yn);
static bool probe() { return true; }
void set_port (MIDI::Port*);
MIDI::Port* port () const { return _port; }
void set_feedback_interval (ARDOUR::microseconds_t);
void send_route_feedback (std::list<Route*>&);
private:
void route_feedback (ARDOUR::Route&, bool);
MIDI::Port* _port;
ARDOUR::microseconds_t _feedback_interval;
ARDOUR::microseconds_t last_feedback_time;
void port_change ();
void _send_feedback ();
void send_feedback ();
typedef std::vector<MIDIControllable*> MIDIControllables;
MIDIControllables controllables;
MIDIControllables pending_controllables;
Glib::Mutex controllables_lock;
Glib::Mutex pending_lock;
bool start_learning (PBD::Controllable*);
void stop_learning (PBD::Controllable*);
void learning_stopped (MIDIControllable*);
};
}
#endif // ardour_generic_midi_control_protocol_h
#endif /* ardour_generic_midi_control_protocol_h */