From 902701e6bfe7f336f8d351bc236f34da9fac8891 Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Thu, 24 Nov 2016 21:37:14 +0100 Subject: [PATCH 1/3] MediaClient: Use higher level structs for the remaining methods --- headers/private/media/MediaClient.h | 12 +++++++++--- src/kits/media/MediaClient.cpp | 28 ++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/headers/private/media/MediaClient.h b/headers/private/media/MediaClient.h index 0d0c7a371e..6d6f9b8d7a 100755 --- a/headers/private/media/MediaClient.h +++ b/headers/private/media/MediaClient.h @@ -116,9 +116,9 @@ public: BMediaConnection* OutputAt(int32 index) const; BMediaConnection* FindInput( - const media_destination& dest) const; + const media_connection& input) const; BMediaConnection* FindOutput( - const media_source& source) const; + const media_connection& output) const; bool IsRunning() const; @@ -135,7 +135,9 @@ public: // It will be B_INCREASE_LATENCY by default BMediaNode::run_mode RunMode() const; status_t SetRunMode(BMediaNode::run_mode mode); - status_t SetTimeSource(media_node timesource); + // TODO: Really needed? + status_t SetTimeSource( + const media_client& timesource); // Specify a latency range to allow the node behave correctly. // Ideally the minimum latency should be the algorithmic latency you expect @@ -183,6 +185,10 @@ protected: status_t ReleaseConnection(BMediaConnection* conn); private: + BMediaConnection* FindInput( + const media_destination& dest) const; + BMediaConnection* FindOutput( + const media_source& source) const; void _Init(); void _Deinit(); diff --git a/src/kits/media/MediaClient.cpp b/src/kits/media/MediaClient.cpp index debdd124e1..8b06b22366 100755 --- a/src/kits/media/MediaClient.cpp +++ b/src/kits/media/MediaClient.cpp @@ -249,6 +249,30 @@ BMediaClient::OutputAt(int32 index) const } +BMediaConnection* +BMediaClient::FindInput(const media_connection& input) const +{ + CALLED(); + + if (!input.IsInput()) + return NULL; + + return FindInput(input.Destination()); +} + + +BMediaConnection* +BMediaClient::FindOutput(const media_connection& output) const +{ + CALLED(); + + if (!output.IsOutput()) + return NULL; + + return FindOutput(output.Source()); +} + + BMediaConnection* BMediaClient::FindInput(const media_destination& dest) const { @@ -388,12 +412,12 @@ BMediaClient::SetRunMode(BMediaNode::run_mode mode) status_t -BMediaClient::SetTimeSource(media_node timesource) +BMediaClient::SetTimeSource(const media_client& timesource) { CALLED(); return BMediaRoster::CurrentRoster()->SetTimeSourceFor(fNode->Node().node, - timesource.node); + timesource.node.node); } From 30f9eb3f909b1a30dda11931cafe48eb17c20af5 Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Fri, 25 Nov 2016 00:05:06 +0100 Subject: [PATCH 2/3] MediaClient: Use kind/kinds pair for media_connection_kind * Use const reference for media_connection::kind. --- headers/private/media/MediaClientDefs.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/headers/private/media/MediaClientDefs.h b/headers/private/media/MediaClientDefs.h index 79325e5d0c..b7417789b7 100644 --- a/headers/private/media/MediaClientDefs.h +++ b/headers/private/media/MediaClientDefs.h @@ -15,6 +15,7 @@ namespace BPrivate { namespace media { typedef int32 media_client_id; typedef int32 media_client_kind; +typedef int32 media_connection_kind; typedef int32 media_connection_id; @@ -27,7 +28,7 @@ enum media_client_kinds { B_MEDIA_CONTROLLABLE = 0x000000004 }; -enum media_connection_kind { +enum media_connection_kinds { B_MEDIA_INPUT = 0, B_MEDIA_OUTPUT = 1 }; @@ -55,7 +56,7 @@ typedef struct media_connection { media_connection_id Id() const; media_connection_kind Kind() const; - media_client Client() const; + const media_client& Client() const; const char* Name() const; From 8a8384b47f0299031a4962a17d436af7cfabb196 Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Fri, 25 Nov 2016 00:07:20 +0100 Subject: [PATCH 3/3] media_client test: Include debug header --- src/tests/kits/media/media_client/media_client.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tests/kits/media/media_client/media_client.cpp b/src/tests/kits/media/media_client/media_client.cpp index 763c2c4589..f6a92855b2 100644 --- a/src/tests/kits/media/media_client/media_client.cpp +++ b/src/tests/kits/media/media_client/media_client.cpp @@ -7,6 +7,8 @@ #include #include +#include + #include #include