diff --git a/headers/private/media/MediaClient.h b/headers/private/media/MediaClient.h index 25c327dd24..5a26d0d1e3 100755 --- a/headers/private/media/MediaClient.h +++ b/headers/private/media/MediaClient.h @@ -35,7 +35,7 @@ public: BMediaClient(const char* name, media_type type = B_MEDIA_UNKNOWN_TYPE, - media_client_kind + media_client_kinds kind = B_MEDIA_PLAYER & B_MEDIA_RECORDER); @@ -43,8 +43,10 @@ public: const media_client& Client() const; + media_client_id Id() const; + const char* Name() const; // Return the capabilities of this BMediaClient instance. - media_client_kind Kind() const; + media_client_kinds Kinds() const; media_type MediaType() const; status_t InitCheck() const; @@ -55,7 +57,7 @@ public: // When those functions return, the BMediaConnection is added to the // list and is visible to other nodes as not connected. Any input/output - // should be registered to a BMediaNode to become something useful. + // should be registered to a BMediaClient to become something useful. virtual status_t RegisterInput(BMediaInput* input); virtual status_t RegisterOutput(BMediaOutput* output); diff --git a/headers/private/media/MediaClientDefs.h b/headers/private/media/MediaClientDefs.h index 3e838e31c8..11768ef879 100644 --- a/headers/private/media/MediaClientDefs.h +++ b/headers/private/media/MediaClientDefs.h @@ -13,13 +13,13 @@ namespace BPrivate { namespace media { -typedef int32 media_client_id; -typedef int32 media_client_kind; -typedef int32 media_connection_kind; -typedef int32 media_connection_id; +typedef uint64 media_client_id; +typedef uint64 media_client_kinds; +typedef uint64 media_connection_kinds; +typedef uint64 media_connection_id; -enum media_client_kinds { +enum media_client_kind { // The client can receive media data. B_MEDIA_RECORDER = 0x000000001, // The client can send media data to another client. @@ -28,7 +28,7 @@ enum media_client_kinds { B_MEDIA_CONTROLLABLE = 0x000000004 }; -enum media_connection_kinds { +enum media_connection_kind { B_MEDIA_INPUT = 0, B_MEDIA_OUTPUT = 1 }; @@ -36,12 +36,12 @@ enum media_connection_kinds { typedef struct media_client { media_client_id Id() const; - media_client_kind Kind() const; + media_client_kinds Kinds() const; BMessage* ToMessage(); private: - media_client_kind kind; + media_client_kinds kinds; media_node node; uint32 padding[16]; @@ -54,7 +54,7 @@ private: typedef struct media_connection { media_connection_id Id() const; - media_connection_kind Kind() const; + media_connection_kinds Kinds() const; const media_client& Client() const; @@ -86,7 +86,7 @@ private: media_format format; char name[B_MEDIA_NAME_LENGTH]; - media_connection_kind kind; + media_connection_kinds kinds; uint32 padding[16]; friend class BMediaClient; diff --git a/headers/private/media/MediaConnection.h b/headers/private/media/MediaConnection.h index 802d59a68a..eef78f8e54 100644 --- a/headers/private/media/MediaConnection.h +++ b/headers/private/media/MediaConnection.h @@ -30,11 +30,11 @@ public: virtual ~BMediaConnection(); const media_connection& Connection() const; + BMediaClient* Client() const; + media_connection_id Id() const; const char* Name() const; - BMediaClient* MediaClient() const; - bool IsInput() const; bool IsOutput() const; @@ -68,7 +68,8 @@ public: status_t Release(); protected: - BMediaConnection(media_connection_kind kind); + BMediaConnection( + media_connection_kinds kinds); // Those callbacks are shared between BMediaInput and BMediaOutput virtual void Connected(const media_format& format); diff --git a/headers/private/media/SimpleMediaClient.h b/headers/private/media/SimpleMediaClient.h index dd10aa33ca..1402e4bf3a 100755 --- a/headers/private/media/SimpleMediaClient.h +++ b/headers/private/media/SimpleMediaClient.h @@ -35,8 +35,8 @@ public: BSimpleMediaClient(const char* name, media_type type = B_MEDIA_UNKNOWN_TYPE, - media_client_kind - kind = B_MEDIA_PLAYER + media_client_kinds + kinds = B_MEDIA_PLAYER & B_MEDIA_RECORDER); virtual ~BSimpleMediaClient(); diff --git a/src/kits/media/MediaClient.cpp b/src/kits/media/MediaClient.cpp index ce5b7f9f43..859fe3078d 100755 --- a/src/kits/media/MediaClient.cpp +++ b/src/kits/media/MediaClient.cpp @@ -14,7 +14,7 @@ BMediaClient::BMediaClient(const char* name, - media_type type, media_client_kind kind) + media_type type, media_client_kinds kinds) : fLastID(0) { @@ -24,7 +24,7 @@ BMediaClient::BMediaClient(const char* name, _Init(); fClient.node = fNode->Node(); - fClient.kind = kind; + fClient.kinds = kinds; } @@ -52,12 +52,12 @@ BMediaClient::InitCheck() const } -media_client_kind -BMediaClient::Kind() const +media_client_kinds +BMediaClient::Kinds() const { CALLED(); - return fClient.kind; + return fClient.Kinds(); } diff --git a/src/kits/media/MediaClientDefs.cpp b/src/kits/media/MediaClientDefs.cpp index dd532b98fb..244190210b 100644 --- a/src/kits/media/MediaClientDefs.cpp +++ b/src/kits/media/MediaClientDefs.cpp @@ -16,6 +16,13 @@ media_client::Id() const } +media_client_kinds +media_client::Kinds() const +{ + return kinds; +} + + media_connection_id media_connection::Id() const { @@ -23,24 +30,24 @@ media_connection::Id() const } -media_connection_kind -media_connection::Kind() const +media_connection_kinds +media_connection::Kinds() const { - return kind; + return kinds; } bool media_connection::IsInput() const { - return Kind() == B_MEDIA_INPUT; + return Kinds() == B_MEDIA_INPUT; } bool media_connection::IsOutput() const { - return Kind() == B_MEDIA_OUTPUT; + return Kinds() == B_MEDIA_OUTPUT; } diff --git a/src/kits/media/MediaClientNode.cpp b/src/kits/media/MediaClientNode.cpp index ad2bdc9cf2..e7bef07f33 100755 --- a/src/kits/media/MediaClientNode.cpp +++ b/src/kits/media/MediaClientNode.cpp @@ -29,11 +29,11 @@ BMediaClientNode::BMediaClientNode(const char* name, CALLED(); // Configure the node to do the requested jobs - if (fOwner->Kind() & B_MEDIA_PLAYER) + if (fOwner->Kinds() & B_MEDIA_PLAYER) AddNodeKind(B_BUFFER_PRODUCER); - if (fOwner->Kind() & B_MEDIA_RECORDER) + if (fOwner->Kinds() & B_MEDIA_RECORDER) AddNodeKind(B_BUFFER_CONSUMER); - if (fOwner->Kind() & B_MEDIA_CONTROLLABLE) + if (fOwner->Kinds() & B_MEDIA_CONTROLLABLE) AddNodeKind(B_CONTROLLABLE); } diff --git a/src/kits/media/MediaConnection.cpp b/src/kits/media/MediaConnection.cpp index 8ebb322152..4e37785b89 100644 --- a/src/kits/media/MediaConnection.cpp +++ b/src/kits/media/MediaConnection.cpp @@ -8,7 +8,7 @@ #include "debug.h" -BMediaConnection::BMediaConnection(media_connection_kind kind) +BMediaConnection::BMediaConnection(media_connection_kinds kinds) : fOwner(NULL), fBind(NULL), @@ -16,8 +16,8 @@ BMediaConnection::BMediaConnection(media_connection_kind kind) { CALLED(); - fConnection.kind = kind; - fConnection.id = -1; + fConnection.kinds = kinds; + fConnection.id = 0; //fConnection.client = media_client::null; } diff --git a/src/kits/media/SimpleMediaClient.cpp b/src/kits/media/SimpleMediaClient.cpp index a2b3e72ea8..4dc5fee835 100644 --- a/src/kits/media/SimpleMediaClient.cpp +++ b/src/kits/media/SimpleMediaClient.cpp @@ -9,9 +9,9 @@ BSimpleMediaClient::BSimpleMediaClient(const char* name, - media_type type, media_client_kind kind) + media_type type, media_client_kinds kinds) : - BMediaClient(name, type, kind), + BMediaClient(name, type, kinds), fNotifyHook(NULL), fNotifyCookie(NULL) {