Thread (7 messages) 7 messages, 2 authors, 2012-07-26

Re: [RFC v1 2/4] media: Add boolean playing field to transport

From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
Date: 2012-07-26 07:37:32

Hi Mikel,

On Tue, Jul 24, 2012 at 6:52 PM, Mikel Astiz [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Mikel Astiz <redacted>

This flag represents whether the transport is actually streaming, which
is mapped trivially after the state changes in gateway, headset and A2DP
sink or sources.
---
 audio/media.c     |   26 ++++++++++++++++++++++++--
 audio/transport.c |    7 +++++++
 audio/transport.h |    2 ++
 3 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/audio/media.c b/audio/media.c
index 1a54f4a..d12445f 100644
--- a/audio/media.c
+++ b/audio/media.c
@@ -494,21 +494,26 @@ static void headset_state_changed(struct audio_device *dev,
        switch (new_state) {
        case HEADSET_STATE_DISCONNECTED:
                transport = find_device_transport(endpoint, dev);
-
                if (transport != NULL) {
                        DBG("Clear endpoint %p", endpoint);
+                       media_transport_set_playing(transport, FALSE);
                        clear_configuration(endpoint, transport);
                }
                break;
        case HEADSET_STATE_CONNECTING:
                set_configuration(endpoint, dev, NULL, 0, headset_setconf_cb,
                                                                dev, NULL);
+               transport = find_device_transport(endpoint, dev);
+               media_transport_set_playing(transport, FALSE);
                break;
        case HEADSET_STATE_CONNECTED:
-               break;
        case HEADSET_STATE_PLAY_IN_PROGRESS:
+               transport = find_device_transport(endpoint, dev);
+               media_transport_set_playing(transport, FALSE);
                break;
        case HEADSET_STATE_PLAYING:
+               transport = find_device_transport(endpoint, dev);
+               media_transport_set_playing(transport, TRUE);
                break;
        }
 }
Looks like we can move transport = find_device_transport(endpoint,
dev); above so we don't have do it  in each case.
quoted hunk ↗ jump to hunk
@@ -660,16 +665,23 @@ static void gateway_state_changed(struct audio_device *dev,
                transport = find_device_transport(endpoint, dev);
                if (transport != NULL) {
                        DBG("Clear endpoint %p", endpoint);
+                       media_transport_set_playing(transport, FALSE);
                        clear_configuration(endpoint, transport);
                }
                break;
        case GATEWAY_STATE_CONNECTING:
                set_configuration(endpoint, dev, NULL, 0,
                                        gateway_setconf_cb, dev, NULL);
+               transport = find_device_transport(endpoint, dev);
+               media_transport_set_playing(transport, FALSE);
                break;
        case GATEWAY_STATE_CONNECTED:
+               transport = find_device_transport(endpoint, dev);
+               media_transport_set_playing(transport, FALSE);
                break;
        case GATEWAY_STATE_PLAYING:
+               transport = find_device_transport(endpoint, dev);
+               media_transport_set_playing(transport, TRUE);
                break;
        }
 }
Same here.

-- 
Luiz Augusto von Dentz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help