summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBharat Panda <bharat.panda@samsung.com>2015-11-09 18:14:37 +0530
committerBharat Panda <bharat.panda@samsung.com>2015-11-09 18:16:27 +0530
commit4087e7d006955a8c1d28b55cc22e2e6adca635e1 (patch)
tree8589b464b2262c9b6b27e9fab3e28b83358ecadd
parenta969f7000f133c4c04df17cebbcfb4f789a696bb (diff)
downloadbluez-4087e7d006955a8c1d28b55cc22e2e6adca635e1.tar.gz
bluez-4087e7d006955a8c1d28b55cc22e2e6adca635e1.tar.bz2
bluez-4087e7d006955a8c1d28b55cc22e2e6adca635e1.zip
audio/transport: Fix not emitting volume changes
Changes taken to add fix for not emitting volume change notification. If Volume is changed locally the change should be propagated using PropertiesChanged. git repo link: http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=4f7843a0fcc1a0a4336004de2702f657fb97b5ff Change-Id: I97075d0daf716144f505ae39415727b77f54e5b9
-rw-r--r--profiles/audio/transport.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index f5c829f3..b4cf57d3 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
@@ -653,6 +653,7 @@ static void set_volume(const GDBusPropertyTable *property,
struct media_transport *transport = data;
struct a2dp_transport *a2dp = transport->data;
uint16_t volume;
+ bool notify;
if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_UINT16) {
g_dbus_pending_property_error(id,
@@ -670,13 +671,21 @@ static void set_volume(const GDBusPropertyTable *property,
return;
}
- if (a2dp->volume != volume)
- avrcp_set_volume(transport->device, volume,
- transport->source_watch ? true : false);
+ g_dbus_pending_property_success(id);
+
+ if (a2dp->volume == volume)
+ return;
a2dp->volume = volume;
- g_dbus_pending_property_success(id);
+ notify = transport->source_watch ? true : false;
+ if (notify)
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ transport->path,
+ MEDIA_TRANSPORT_INTERFACE,
+ "Volume");
+
+ avrcp_set_volume(transport->device, volume, notify);
}
static const GDBusMethodTable transport_methods[] = {