Checkin of the source code for midi2 kit milestone 1.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2335 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
mahlzeit
2002-12-31 14:25:02 +00:00
parent 11e8a16025
commit 1df1f3949f
6 changed files with 265 additions and 266 deletions
+30 -84
View File
@@ -21,70 +21,38 @@ enum BMidiOp
class BMidiProducer;
class BMidiConsumer;
class BMidiRosterLooper;
class BMidiRoster
{
public:
static BMidiEndpoint *NextEndpoint(int32 *id);
static BMidiProducer *NextProducer(int32 *id);
static BMidiConsumer *NextConsumer(int32 *id);
static BMidiEndpoint *FindEndpoint(int32 id, bool local_only = false);
static BMidiProducer *FindProducer(int32 id, bool local_only = false);
static BMidiConsumer *FindConsumer(int32 id, bool local_only = false);
// if local_only is true only local objects will be resolved
static void StartWatching(const BMessenger *msngr);
static void StopWatching();
// what = B_MIDI_EVENT (for all below)
//
// be:op = B_MIDI_REGISTERED or B_MIDI_UNREGISTERED
// be:id = <id>
// be:type = "producer" | "consumer"
//
// be:op = B_MIDI_CHANGED_NAME
// be:id = <id>
// be:type = "producer" | "consumer"
// be:name = <name>
//
// be:op = B_MIDI_CHANGED_LATENCY
// be:id = <id>
// be:type = "producer" | "consumer"
// be:latency = <latency>
//
// be:op = B_MIDI_CHANGED_PROPERTIES
// be:id = <id>
// be:type = "producer" | "consumer"
// be:properties = <properties>
//
// be:op = B_MIDI_CONNECTED (when source->Connect(sink) happens)
// be:producer = <id> - connector id (0 if not a public object)
// be:consumer = <id> - connectee id (0 if not a public object)
//
// be:op = B_MIDI_DISCONNECTED (when source->Connect(sink) happens)
// be:producer = <id> - connector id (0 if not a public object)
// be:consumer = <id> - connectee id (0 if not a public object)
//
// When you StartWatching(), you will receive added
// events for all existing midi objects
static status_t Register(BMidiEndpoint *object);
static status_t Unregister(BMidiEndpoint *object);
// Publish a midi object so that it is externall visible.
static BMidiRoster *MidiRoster();
static BMidiEndpoint* NextEndpoint(int32* id);
static BMidiProducer* NextProducer(int32* id);
static BMidiConsumer* NextConsumer(int32* id);
static BMidiEndpoint* FindEndpoint(int32 id, bool localOnly = false);
static BMidiProducer* FindProducer(int32 id, bool localOnly = false);
static BMidiConsumer* FindConsumer(int32 id, bool localOnly = false);
static void StartWatching(const BMessenger* msngr);
static void StopWatching();
static status_t Register(BMidiEndpoint* endp);
static status_t Unregister(BMidiEndpoint* endp);
static BMidiRoster* MidiRoster();
private:
friend class BMidiEndpoint;
friend class BMidiProducer;
friend class BMidiConsumer;
friend class BMidiEndpoint;
friend class BMidiLocalProducer;
friend class BMidiLocalConsumer;
friend class BMidiProducer;
friend class BMidiRosterKiller;
friend class BMidiRosterLooper;
friend class MidiRosterApp;
BMidiRoster(BMessenger *remote = NULL);
BMidiRoster();
virtual ~BMidiRoster();
virtual void _Reserved1();
@@ -96,37 +64,15 @@ private:
virtual void _Reserved7();
virtual void _Reserved8();
status_t RemoteConnect(int32 producer, int32 consumer, int32 port);
status_t RemoteDisconnect(int32 producer, int32 consumer);
void RemoteConnected(int32 producer, int32 consumer);
void RemoteDisconnected(int32 producer, int32 consumer);
BMidiEndpoint* RemoteCreateProducer(int32 producer, const char *name);
BMidiEndpoint* RemoteCreateConsumer(int32 consumer, const char *name, int32 port, int32 latency);
void RemoteDelete(BMidiEndpoint *object);
void RemoteRename(BMidiEndpoint *object, const char *name);
void RemoteChangeLatency(BMidiEndpoint *object, bigtime_t latency);
status_t Remote(int32 id, int32 op);
status_t DoRemote(BMessage *msg, BMessage *result = 0);
void Rename(BMidiEndpoint *midi, const char *name);
status_t Release(BMidiEndpoint *midi);
status_t Acquire(BMidiEndpoint *midi);
void Create(BMidiEndpoint *midi);
void SetLatency(BMidiConsumer *midi, bigtime_t latency);
status_t SetProperties(BMidiEndpoint *midi, const BMessage *props);
status_t GetProperties(const BMidiEndpoint *midi, BMessage *props);
status_t Connect(BMidiProducer *source, BMidiConsumer *sink);
status_t Disconnect(BMidiProducer *source, BMidiConsumer *sink);
BLooper *Looper();
BMidiRosterLooper *looper;
BMessenger *remote;
void CreateLocal(BMidiEndpoint*);
void DeleteLocal(BMidiEndpoint*);
status_t SendRequest(BMessage*, BMessage*);
BMidiRosterLooper* looper;
BMessenger* server;
uint32 _reserved[16];
};
#endif
#endif // _MIDI_ROSTER_H