Files
haiku-beta6/headers/os/midi2/MidiEndpoint.h
T

82 lines
1.5 KiB
C++
Raw Normal View History

2002-10-23 13:24:57 +00:00
#ifndef _MIDI_ENDPOINT_H
#define _MIDI_ENDPOINT_H
#include <BeBuild.h>
2006-06-15 23:41:26 +00:00
#include <Message.h>
2002-10-23 13:24:57 +00:00
#include <Midi2Defs.h>
#include <OS.h>
#include <String.h>
class BMidiProducer;
class BMidiConsumer;
namespace BPrivate { class BMidiRosterLooper; }
2002-10-23 13:24:57 +00:00
class BMidiEndpoint
{
public:
2006-09-21 13:04:59 +00:00
const char *Name() const;
void SetName(const char *name);
2002-10-23 13:24:57 +00:00
int32 ID() const;
bool IsProducer() const;
bool IsConsumer() const;
bool IsRemote() const;
bool IsLocal() const;
bool IsPersistent() const;
bool IsValid() const;
status_t Release();
status_t Acquire();
2006-09-21 13:04:59 +00:00
status_t SetProperties(const BMessage *properties);
status_t GetProperties(BMessage *properties) const;
2002-10-23 13:24:57 +00:00
2006-09-13 13:30:33 +00:00
status_t Register();
status_t Unregister();
2002-10-23 13:24:57 +00:00
private:
2002-10-23 13:24:57 +00:00
friend class BMidiConsumer;
friend class BMidiLocalConsumer;
friend class BMidiLocalProducer;
friend class BMidiProducer;
friend class BMidiRoster;
friend class BPrivate::BMidiRosterLooper;
2002-10-23 13:24:57 +00:00
2006-09-21 13:04:59 +00:00
BMidiEndpoint(const char *name);
2002-10-23 13:24:57 +00:00
virtual ~BMidiEndpoint();
2002-10-23 13:24:57 +00:00
virtual void _Reserved1();
virtual void _Reserved2();
virtual void _Reserved3();
virtual void _Reserved4();
virtual void _Reserved5();
virtual void _Reserved6();
virtual void _Reserved7();
virtual void _Reserved8();
status_t SendRegisterRequest(bool);
2006-09-21 13:04:59 +00:00
status_t SendChangeRequest(BMessage *);
bool IsRegistered() const;
bool LockLooper() const;
void UnlockLooper() const;
int32 fId;
BString fName;
int32 fRefCount;
2006-06-17 14:04:46 +00:00
BMessage *fProperties;
bool fIsLocal;
bool fIsConsumer;
bool fIsRegistered;
bool fIsAlive;
2002-10-23 13:24:57 +00:00
uint32 _reserved[4];
};
#endif // _MIDI_ENDPOINT_H