diff options
author | Bharat Panda <bharat.panda@samsung.com> | 2015-11-09 18:14:37 +0530 |
---|---|---|
committer | Bharat Panda <bharat.panda@samsung.com> | 2015-11-09 18:16:27 +0530 |
commit | 4087e7d006955a8c1d28b55cc22e2e6adca635e1 (patch) | |
tree | 8589b464b2262c9b6b27e9fab3e28b83358ecadd | |
parent | a969f7000f133c4c04df17cebbcfb4f789a696bb (diff) | |
download | bluez-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.c | 17 |
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[] = { |