aboutsummaryrefslogtreecommitdiffstats
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
commit8ee62398d467a4031a4307199687812f5105e500 (patch)
treef512d9106e22a4dab9c3d6932384d421e22069c3
parente0d6d332bdb69e4635abfbe00e340211eb8c967a (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--bluetooth-api.c4
-rw-r--r--bluetooth-manager.c14
-rw-r--r--bluetooth-manager.h6
3 files changed, 12 insertions, 12 deletions
diff --git a/bluetooth-api.c b/bluetooth-api.c
index 4a7092a..78fd87b 100644
--- a/bluetooth-api.c
+++ b/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/bluetooth-manager.c b/bluetooth-manager.c
index 7417624..525d034 100644
--- a/bluetooth-manager.c
+++ b/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/bluetooth-manager.h b/bluetooth-manager.h
index 287a0a2..e05fcb1 100644
--- a/bluetooth-manager.h
+++ b/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);