[haiku-commits] haiku: hrev50856 - headers/private/media src/kits/media

  • From: b.vitruvio@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 10 Jan 2017 23:09:23 +0100 (CET)

hrev50856 adds 2 changesets to branch 'master'
old head: 3dbb4ff62d7578f2e873ed2f13fa023e51f07994
new head: e6004b7729710ea60bdcce10e551508a5a855a1f
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=e6004b772971+%5E3dbb4ff62d75

----------------------------------------------------------------------------

e7aa210bca00: MediaClient: IsRunning() status is set at handle time

e6004b772971: MediaClient: Move WIP min/max functions into BMediaConnection

                                [ Dario Casalinuovo <b.vitruvio@xxxxxxxxx> ]

----------------------------------------------------------------------------

5 files changed, 43 insertions(+), 53 deletions(-)
headers/private/media/MediaClient.h     | 14 ----------
headers/private/media/MediaConnection.h | 14 ++++++++++
src/kits/media/MediaClient.cpp          | 40 +++--------------------------
src/kits/media/MediaClientNode.cpp      |  4 +--
src/kits/media/MediaConnection.cpp      | 24 ++++++++++++++++-

############################################################################

Commit:      e7aa210bca0016b648411c8be84b40b3e19d9b9a
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e7aa210bca00
Author:      Dario Casalinuovo <b.vitruvio@xxxxxxxxx>
Date:        Tue Jan 10 21:44:16 2017 UTC

MediaClient: IsRunning() status is set at handle time

----------------------------------------------------------------------------

diff --git a/src/kits/media/MediaClient.cpp b/src/kits/media/MediaClient.cpp
index ac76434..4ad3a97 100755
--- a/src/kits/media/MediaClient.cpp
+++ b/src/kits/media/MediaClient.cpp
@@ -296,15 +296,8 @@ BMediaClient::Start(bool force)
                                remoteNode, fNode->TimeSource()->Now());
        }
 
-       err = BMediaRoster::CurrentRoster()->StartNode(
+       return BMediaRoster::CurrentRoster()->StartNode(
                fNode->Node(), fNode->TimeSource()->Now());
-
-       if (err == B_OK)
-               fRunning = true;
-       else
-               fRunning = false;
-
-       return err;
 }
 
 
@@ -313,15 +306,8 @@ BMediaClient::Stop(bool force)
 {
        CALLED();
 
-       status_t err = BMediaRoster::CurrentRoster()->StopNode(
+       return BMediaRoster::CurrentRoster()->StopNode(
                fNode->Node(), fNode->TimeSource()->Now());
-
-       if (err == B_OK)
-               fRunning = false;
-       else
-               fRunning = true;
-
-       return err;
 }
 
 
@@ -452,12 +438,14 @@ BMediaClient::AddOn(int32* id) const
 void
 BMediaClient::HandleStart(bigtime_t performanceTime)
 {
+       fRunning = true;
 }
 
 
 void
 BMediaClient::HandleStop(bigtime_t performanceTime)
 {
+       fRunning = false;
 }
 
 

############################################################################

Revision:    hrev50856
Commit:      e6004b7729710ea60bdcce10e551508a5a855a1f
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e6004b772971
Author:      Dario Casalinuovo <b.vitruvio@xxxxxxxxx>
Date:        Tue Jan 10 21:54:53 2017 UTC

MediaClient: Move WIP min/max functions into BMediaConnection

----------------------------------------------------------------------------

diff --git a/headers/private/media/MediaClient.h 
b/headers/private/media/MediaClient.h
index b5d04b5..ce37b1a 100755
--- a/headers/private/media/MediaClient.h
+++ b/headers/private/media/MediaClient.h
@@ -124,17 +124,6 @@ public:
                        BMediaNode::run_mode    RunMode() const;
                        status_t                                
SetRunMode(BMediaNode::run_mode mode);
 
-       // Specify a latency range to allow the node behave correctly.
-       // Ideally the minimum latency should be the algorithmic latency you 
expect
-       // from the node and will be used as starting point. The max latency is 
the
-       // maximum acceptable by you, over that point the node will adjust it's
-       // performance time to recover if a big delay happen.
-                       void                                    
SetLatencyRange(bigtime_t min,
-                                                                               
bigtime_t max);
-
-                       void                                    
GetLatencyRange(bigtime_t* min,
-                                                                               
bigtime_t* max) const;
-
        // Return the current performance time handled by the object when
        // run_mode != B_OFFLINE. Otherwise returns the current offline time.
                        bigtime_t                               CurrentTime() 
const;
@@ -191,9 +180,6 @@ private:
 
                        bigtime_t                               fCurrentTime;
 
-                       bigtime_t                               fMinLatency;
-                       bigtime_t                               fMaxLatency;
-
                        BObjectList<BMediaInput>        fInputs;
                        BObjectList<BMediaOutput>       fOutputs;
 
diff --git a/headers/private/media/MediaConnection.h 
b/headers/private/media/MediaConnection.h
index cce9a24..97694a1 100644
--- a/headers/private/media/MediaConnection.h
+++ b/headers/private/media/MediaConnection.h
@@ -72,6 +72,17 @@ protected:
        virtual void                                    Connected(const 
media_format& format);
        virtual void                                    Disconnected();
 
+       // Specify a latency range to allow the connection behave correctly.
+       // Ideally the minimum latency should be the algorithmic latency you 
expect
+       // from the node and will be used as starting point. The max latency is 
the
+       // maximum acceptable by you, over that point the node will adjust it's
+       // performance time to recover if a big delay happen.
+                       void                                    
SetLatencyRange(bigtime_t min,
+                                                                               
bigtime_t max);
+
+                       void                                    
GetLatencyRange(bigtime_t* min,
+                                                                               
bigtime_t* max) const;
+
 private:
                        void                                    
ConnectionRegistered(BMediaClient* owner,
                                                                                
media_connection_id id);
@@ -95,6 +106,9 @@ private:
 
        bool                                                    fConnected;
 
+       bigtime_t                                               fMinLatency;
+       bigtime_t                                               fMaxLatency;
+
        virtual void                                    
_ReservedMediaConnection0();
        virtual void                                    
_ReservedMediaConnection1();
        virtual void                                    
_ReservedMediaConnection2();
diff --git a/src/kits/media/MediaClient.cpp b/src/kits/media/MediaClient.cpp
index 4ad3a97..9d5e832 100755
--- a/src/kits/media/MediaClient.cpp
+++ b/src/kits/media/MediaClient.cpp
@@ -379,26 +379,6 @@ BMediaClient::SetTimeSource(const media_client& timesource)
 }
 
 
-void
-BMediaClient::GetLatencyRange(bigtime_t* min, bigtime_t* max) const
-{
-       CALLED();
-
-       *min = fMinLatency;
-       *max = fMaxLatency;
-}
-
-
-void
-BMediaClient::SetLatencyRange(bigtime_t min, bigtime_t max)
-{
-       CALLED();
-
-       fMinLatency = min;
-       fMaxLatency = max;
-}
-
-
 bigtime_t
 BMediaClient::CurrentTime() const
 {
diff --git a/src/kits/media/MediaClientNode.cpp 
b/src/kits/media/MediaClientNode.cpp
index 15bd140..563a9ac 100755
--- a/src/kits/media/MediaClientNode.cpp
+++ b/src/kits/media/MediaClientNode.cpp
@@ -213,7 +213,7 @@ BMediaClientNode::GetLatencyFor(const media_destination& 
dest,
        if (conn == NULL)
                return B_MEDIA_BAD_DESTINATION;
 
-       *latency = fOwner->fMaxLatency;
+       *latency = conn->fMaxLatency;
        *timesource = TimeSource()->ID();
        return B_OK;
 }
@@ -494,7 +494,7 @@ BMediaClientNode::GetLatency(bigtime_t* outLatency)
        CALLED();
 
        // TODO: finish latency handling
-       *outLatency = fOwner->fMinLatency;
+       *outLatency = 0;
        return B_OK;
 }
 
diff --git a/src/kits/media/MediaConnection.cpp 
b/src/kits/media/MediaConnection.cpp
index e40277f..f9c8ea8 100644
--- a/src/kits/media/MediaConnection.cpp
+++ b/src/kits/media/MediaConnection.cpp
@@ -12,7 +12,9 @@ BMediaConnection::BMediaConnection(media_connection_kinds 
kinds)
        :
        fOwner(NULL),
        fBind(NULL),
-       fBufferGroup(NULL)
+       fBufferGroup(NULL),
+       fMinLatency(0),
+       fMaxLatency(0)
 {
        CALLED();
 
@@ -137,6 +139,26 @@ BMediaConnection::Disconnected()
 
 
 void
+BMediaConnection::GetLatencyRange(bigtime_t* min, bigtime_t* max) const
+{
+       CALLED();
+
+       *min = fMinLatency;
+       *max = fMaxLatency;
+}
+
+
+void
+BMediaConnection::SetLatencyRange(bigtime_t min, bigtime_t max)
+{
+       CALLED();
+
+       fMinLatency = min;
+       fMaxLatency = max;
+}
+
+
+void
 BMediaConnection::ConnectionRegistered(BMediaClient* owner,
        media_connection_id id)
 {


Other related posts:

  • » [haiku-commits] haiku: hrev50856 - headers/private/media src/kits/media - b . vitruvio