do not retrieve adapter path from dbus message 08/29208/1
authorCorentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
Wed, 22 Oct 2014 11:49:01 +0000 (13:49 +0200)
committerCorentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
Wed, 22 Oct 2014 13:18:21 +0000 (15:18 +0200)
Every where, bluetooth-frwk checks the adapter state before doing an action.
Adapter state is retrieved from parsing dbus message from 'GetManagedObjects' method.
This is only needed to get adapter path from dbus message.
As adapter path is always '/org/bluez/hci0' using Bluez5, define it improves performance.

For example, it fixes a bug in Modello UI when getting default adapter with
bonded devices.

Change-Id: I19e86c0ac269b60773ac3b3e3f62d802ebd40013
Signed-off-by: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
bt-api/bt-common.c
bt-api/include/bt-common.h
bt-service/bt-service-common.c
bt-service/include/bt-service-common.h

index 670c0df..ce38ed3 100644 (file)
@@ -218,8 +218,6 @@ static char *__bt_extract_adapter_path(DBusMessageIter *msg_iter)
                dbus_message_iter_next(&value_iter);
        }
 
-       BT_DBG("There is no adapter");
-
        return NULL;
 }
 
@@ -313,17 +311,11 @@ fail:
 DBusGProxy *_bt_get_adapter_proxy(DBusGConnection *conn)
 {
        DBusGProxy *adapter_proxy = NULL;
-       char adapter_path[BT_ADAPTER_OBJECT_PATH_MAX] = { 0 };
 
        retv_if(conn == NULL, NULL);
 
-       if (_bt_get_adapter_path(conn, adapter_path) < 0) {
-               BT_DBG("Could not get adapter path\n");
-               return NULL;
-       }
-
        adapter_proxy = dbus_g_proxy_new_for_name(conn, BT_BLUEZ_NAME,
-                               adapter_path, BT_PROPERTIES_INTERFACE);
+                       BT_BLUEZ_HCI_PATH, BT_PROPERTIES_INTERFACE);
 
        return adapter_proxy;
 }
@@ -335,8 +327,6 @@ gboolean _bt_get_adapter_power(DBusGConnection *conn)
        GValue powered_v = { 0 };
        GError *err = NULL;
 
-       BT_DBG("+");
-
        proxy = _bt_get_adapter_proxy(conn);
        retv_if(proxy == NULL, FALSE);
 
@@ -356,7 +346,6 @@ gboolean _bt_get_adapter_power(DBusGConnection *conn)
        powered = (gboolean)g_value_get_boolean(&powered_v);
 
        BT_DBG("powered = %d", powered);
-       BT_DBG("-");
 
        return powered;
 }
index 77ebe8b..f62ada3 100644 (file)
@@ -132,13 +132,13 @@ extern "C" {
 #define BT_EVENT_FREEDESKTOP "org.freedesktop.DBus"
 #define BT_FREEDESKTOP_PATH "/org/freedesktop/DBus"
 
-#define BT_EVENT_MANAGER "org.bluez.Manager"
 #define BT_MANAGER_PATH "/"
 #define BT_MANAGER_INTERFACE "org.freedesktop.DBus.ObjectManager"
 #define BT_ADAPTER_INTERFACE "org.bluez.Adapter1"
 #define BT_DEVICE_INTERFACE "org.bluez.Device1"
 
 #define BT_PROPERTIES_INTERFACE "org.freedesktop.DBus.Properties"
+#define BT_BLUEZ_HCI_PATH "/org/bluez/hci0"
 
 #define BT_BLUEZ_NAME "org.bluez"
 #define BT_DBUS_NAME "org.projectx.bt"
index 3a8893a..fa61108 100644 (file)
@@ -63,9 +63,6 @@ static DBusGProxy *__bt_init_adapter_proxy(void)
 {
        DBusGProxy *manager_proxy;
        DBusGProxy *proxy;
-       char *adapter_path = NULL;
-
-       g_type_init();
 
        if (system_conn == NULL) {
                system_conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, NULL);
@@ -75,13 +72,8 @@ static DBusGProxy *__bt_init_adapter_proxy(void)
        manager_proxy = _bt_get_manager_proxy();
        retv_if(manager_proxy == NULL, NULL);
 
-       adapter_path = _bt_get_adapter_path();
-       retv_if(adapter_path == NULL, NULL);
-
        proxy = dbus_g_proxy_new_for_name(system_conn, BT_BLUEZ_NAME,
-                               adapter_path, BT_ADAPTER_INTERFACE);
-
-       g_free(adapter_path);
+                               BT_BLUEZ_HCI_PATH, BT_ADAPTER_INTERFACE);
 
        retv_if(proxy == NULL, NULL);
 
@@ -94,7 +86,6 @@ static DBusGProxy *__bt_init_adapter_properties_proxy(void)
 {
        DBusGProxy *manager_proxy;
        DBusGProxy *proxy;
-       char *adapter_path = NULL;
 
        g_type_init();
 
@@ -106,13 +97,8 @@ static DBusGProxy *__bt_init_adapter_properties_proxy(void)
        manager_proxy = _bt_get_manager_proxy();
        retv_if(manager_proxy == NULL, NULL);
 
-       adapter_path = _bt_get_adapter_path();
-       retv_if(adapter_path == NULL, NULL);
-
        proxy = dbus_g_proxy_new_for_name(system_conn, BT_BLUEZ_NAME,
-                               adapter_path, BT_PROPERTIES_INTERFACE);
-
-       g_free(adapter_path);
+                       BT_BLUEZ_HCI_PATH, BT_PROPERTIES_INTERFACE);
 
        retv_if(proxy == NULL, NULL);
 
index 51f70ef..f56c8c8 100644 (file)
@@ -96,6 +96,7 @@ extern "C" {
 
 #define BT_BLUEZ_NAME "org.bluez"
 #define BT_BLUEZ_PATH "/org/bluez"
+#define BT_BLUEZ_HCI_PATH "/org/bluez/hci0"
 #define BT_BLUEZ_HCI_DEV_PATH "/org/bluez/hci0/dev"
 #define BT_AGENT_NAME "org.bluez.frwk_agent"
 #define BT_AGENT_PATH "/org/bluez/agent/frwk_agent"