diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-02-05 12:26:58 +0200 |
---|---|---|
committer | Szymon Janc <szymon.janc@tieto.com> | 2014-02-05 14:44:20 +0100 |
commit | 65cfccf1b10fed9ee5e3c807ccd4663f3f778f01 (patch) | |
tree | 99809de5f43d13d135b623f32c456bc4f8892219 /android/avrcp.c | |
parent | d0d30cace489348d12755540ae9308222db97eb5 (diff) | |
download | bluez-65cfccf1b10fed9ee5e3c807ccd4663f3f778f01.tar.gz |
android/AVRCP: Add bt_avrcp_disconnect
This adds bt_avrcp_disconnect function which can be used to disconnect
AVRCP sessions.
Diffstat (limited to 'android/avrcp.c')
-rw-r--r-- | android/avrcp.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/android/avrcp.c b/android/avrcp.c index 8600d9885..f61ed341c 100644 --- a/android/avrcp.c +++ b/android/avrcp.c @@ -135,6 +135,11 @@ static void avrcp_device_free(void *data) if (dev->session) avctp_shutdown(dev->session); + if (dev->io) { + g_io_channel_shutdown(dev->io, FALSE, NULL); + g_io_channel_unref(dev->io); + } + devices = g_slist_remove(devices, dev); g_free(dev); } @@ -338,3 +343,24 @@ void bt_avrcp_connect(const bdaddr_t *dst) ba2str(&dev->dst, addr); DBG("connecting to %s", addr); } + +void bt_avrcp_disconnect(const bdaddr_t *dst) +{ + struct avrcp_device *dev; + GSList *l; + + DBG(""); + + l = g_slist_find_custom(devices, dst, device_cmp); + if (!l) + return; + + dev = l->data; + + if (dev->session) { + avctp_shutdown(dev->session); + return; + } + + avrcp_device_free(dev); +} |