From 902701e6bfe7f336f8d351bc236f34da9fac8891 Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Thu, 24 Nov 2016 21:37:14 +0100 Subject: [PATCH] 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); }