summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2017-06-01 15:37:25 -0700
committerMatt Ranostay <matt.ranostay@konsulko.com>2017-06-01 16:24:33 -0700
commit950280341c4bf12b1f85ab730a061f7a9c893a92 (patch)
tree0b3f8db9a37cd24999fa2a3e973396488fc93f7d
parent37aacabc67fc2d3b759cdc85eb46705f729f8682 (diff)
binding: bluetooth: allow connection to select uuid profiles
Currenly the bluetooth binding connects to all available bluetooth profiles. This change allows you select an singular profile. Change-Id: Iccb016f132e0690699eefddee637ad91ea69e69c Bug-AGL: SPEC-638 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
-rw-r--r--binding-bluetooth/bluetooth-api.c4
-rw-r--r--binding-bluetooth/bluetooth-manager.c14
-rw-r--r--binding-bluetooth/bluetooth-manager.h6
3 files changed, 12 insertions, 12 deletions
diff --git a/binding-bluetooth/bluetooth-api.c b/binding-bluetooth/bluetooth-api.c
index 4a7092a..78fd87b 100644
--- a/binding-bluetooth/bluetooth-api.c
+++ b/binding-bluetooth/bluetooth-api.c
@@ -476,7 +476,7 @@ static void bt_connect (struct afb_req request)
return;
}
- ret = device_connect(value);
+ ret = device_connect(value, NULL);
if (0 == ret)
{
@@ -503,7 +503,7 @@ static void bt_disconnect (struct afb_req request)
return;
}
- ret = device_disconnect(value);
+ ret = device_disconnect(value, NULL);
if (0 == ret)
{
afb_req_success (request, NULL, NULL);
diff --git a/binding-bluetooth/bluetooth-manager.c b/binding-bluetooth/bluetooth-manager.c
index 7417624..525d034 100644
--- a/binding-bluetooth/bluetooth-manager.c
+++ b/binding-bluetooth/bluetooth-manager.c
@@ -1443,7 +1443,7 @@ int device_cancelPairing(const gchar * bdaddr)
* send connect command
* If success return 0, else return -1;
*/
-int device_connect(const gchar * bdaddr)
+int device_connect(const gchar * bdaddr, const gchar * uuid)
{
LOGD("\n%s\n",bdaddr);
@@ -1470,8 +1470,9 @@ int device_connect(const gchar * bdaddr)
devices_list_unlock();
value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE,
- path, DEVICE_INTERFACE, "Connect",
- NULL, NULL, G_DBUS_CALL_FLAGS_NONE,
+ path, DEVICE_INTERFACE, uuid ? "ConnectProfile" : "Connect",
+ uuid ? g_variant_new("(s)", uuid) : NULL,
+ NULL, G_DBUS_CALL_FLAGS_NONE,
DBUS_REPLY_TIMEOUT, NULL, &error);
g_free(path);
@@ -1491,7 +1492,7 @@ int device_connect(const gchar * bdaddr)
* send disconnect command
* If success return 0, else return -1;
*/
-int device_disconnect(const gchar* bdaddr)
+int device_disconnect(const gchar* bdaddr, const gchar *uuid)
{
LOGD("\n%s\n",bdaddr);
@@ -1518,8 +1519,9 @@ int device_disconnect(const gchar* bdaddr)
devices_list_unlock();
value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE,
- path, DEVICE_INTERFACE, "Disconnect",
- NULL, NULL, G_DBUS_CALL_FLAGS_NONE,
+ path, DEVICE_INTERFACE, uuid ? "DisconnectProfile" : "Disconnect",
+ uuid ? g_variant_new("(s)", uuid) : NULL,
+ NULL, G_DBUS_CALL_FLAGS_NONE,
DBUS_REPLY_TIMEOUT, NULL, &error);
g_free(path);
diff --git a/binding-bluetooth/bluetooth-manager.h b/binding-bluetooth/bluetooth-manager.h
index 287a0a2..e05fcb1 100644
--- a/binding-bluetooth/bluetooth-manager.h
+++ b/binding-bluetooth/bluetooth-manager.h
@@ -183,10 +183,8 @@ int adapter_stop_discovery();
int adapter_remove_device(const gchar *addr);
int device_pair(const gchar * addr);
int device_cancelPairing(const gchar * bdaddr);
-int device_connect(const gchar *addr);
-//int device_connectProfile();
-int device_disconnect(const gchar *addr);
-//int device_disconnectProfile();
+int device_connect(const gchar *addr, const gchar *uuid);
+int device_disconnect(const gchar *addr, const gchar *uuid);
int device_set_property(const gchar * bdaddr, const gchar *property, const gchar *value);
int device_call_avrcp_method(const gchar* device, const gchar* method);