audio/transport: add media_transport_get_stream method for transports
authorPauli Virtanen <pav@iki.fi>
Wed, 15 Feb 2023 22:26:00 +0000 (22:26 +0000)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 5 Jan 2024 10:21:48 +0000 (15:51 +0530)
Add a method for getting the audio stream associated with a media
transport.

profiles/audio/transport.c
profiles/audio/transport.h

index 9d7d32d..f08b253 100644 (file)
@@ -121,6 +121,8 @@ struct media_transport {
                                                                guint id);
        void                    (*set_state) (struct media_transport *transport,
                                                transport_state_t state);
+       void                    *(*get_stream)
+                                       (struct media_transport *transport);
        GDestroyNotify          destroy;
        void                    *data;
 };
@@ -1474,6 +1476,13 @@ static void bap_connecting(struct bt_bap_stream *stream, bool state, int fd,
        bap_update_links(transport);
 }
 
+static void *get_stream_bap(struct media_transport *transport)
+{
+       struct bap_transport *bap = transport->data;
+
+       return bap->stream;
+}
+
 static void free_bap(void *data)
 {
        struct bap_transport *bap = data;
@@ -1509,6 +1518,7 @@ static int media_transport_init_bap(struct media_transport *transport,
        transport->suspend = suspend_bap;
        transport->cancel = cancel_bap;
        transport->set_state = set_state_bap;
+       transport->get_stream = get_stream_bap;
        transport->destroy = free_bap;
 
        return 0;
@@ -1577,6 +1587,14 @@ const char *media_transport_get_path(struct media_transport *transport)
        return transport->path;
 }
 
+void *media_transport_get_stream(struct media_transport *transport)
+{
+       if (transport->get_stream)
+               return transport->get_stream(transport);
+
+       return NULL;
+}
+
 void media_transport_update_delay(struct media_transport *transport,
                                                        uint16_t delay)
 {
index c2f611c..fdf1d8e 100755 (executable)
@@ -19,6 +19,7 @@ struct media_transport *media_transport_create(struct btd_device *device,
 
 void media_transport_destroy(struct media_transport *transport);
 const char *media_transport_get_path(struct media_transport *transport);
+void *media_transport_get_stream(struct media_transport *transport);
 struct btd_device *media_transport_get_dev(struct media_transport *transport);
 int8_t media_transport_get_volume(struct media_transport *transport);
 void media_transport_update_delay(struct media_transport *transport,