Add A2dpRole property in the adapter interface 98/218698/2 accepted/tizen/5.5/unified/20191203.011319 accepted/tizen/unified/20191128.161924 submit/tizen/20191128.024748 submit/tizen_5.5/20191127.215640
authorDoHyun Pyun <dh79.pyun@samsung.com>
Wed, 27 Nov 2019 06:00:47 +0000 (15:00 +0900)
committerPyun DoHyun <dh79.pyun@samsung.com>
Thu, 28 Nov 2019 00:51:54 +0000 (00:51 +0000)
Change-Id: I818c3a65b700783fb11b5c67fad8af9149a33ee9
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
doc/adapter-api.txt
profiles/audio/media.c
src/adapter.c
src/adapter.h

index 70b5dee..d2741a5 100755 (executable)
@@ -466,4 +466,8 @@ Properties  string Address [readonly]
                string Version [readonly]
 
                         The Bluetooth version.
+
+               uint32 A2dpRole [readonly]
+
+                       The A2DP role of adapter.
 #endif
index fdd5dcc..65d7933 100755 (executable)
@@ -1012,6 +1012,12 @@ static struct media_endpoint *media_endpoint_create(struct media_adapter *adapte
        adapter->endpoints = g_slist_append(adapter->endpoints, endpoint);
        info("Endpoint registered: sender=%s path=%s", sender, path);
 
+#ifdef TIZEN_FEATURE_BLUEZ_MODIFY
+       info("Emit property changed signal for A2dpRole");
+
+       btd_adapter_emit_a2dp_role_changed(adapter->btd_adapter);
+#endif
+
        if (err)
                *err = 0;
        return endpoint;
index 461bb77..0049d15 100644 (file)
@@ -620,6 +620,19 @@ void btd_adapter_set_a2dp_role(struct btd_adapter *adapter, bluetooth_a2dp_role_
 
        store_adapter_info(adapter);
 }
+
+void btd_adapter_emit_a2dp_role_changed(struct btd_adapter *adapter)
+{
+       if (!adapter) {
+               DBG("Could not emit signal for a2dp role");
+               return;
+       }
+
+       DBG("A2dp role: %u", adapter->a2dp_role);
+
+       g_dbus_emit_property_changed(dbus_conn, adapter->path,
+                       ADAPTER_INTERFACE, "A2dpRole");
+}
 #endif
 
 static void trigger_pairable_timeout(struct btd_adapter *adapter);
@@ -6342,6 +6355,17 @@ static gboolean property_get_class(const GDBusPropertyTable *property,
        return TRUE;
 }
 
+static gboolean property_get_a2dp_role(const GDBusPropertyTable *property,
+                                       DBusMessageIter *iter, void *user_data)
+{
+       struct btd_adapter *adapter = user_data;
+       dbus_uint32_t val = adapter->a2dp_role;
+
+       dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &val);
+
+       return TRUE;
+}
+
 static gboolean property_get_mode(struct btd_adapter *adapter,
                                uint32_t setting, DBusMessageIter *iter)
 {
@@ -7578,6 +7602,7 @@ static const GDBusPropertyTable adapter_properties[] = {
        { "SupportedLEFeatures", "as", property_get_supported_le_features},
        { "IpspInitStateChanged", "b", property_get_ipsp_init_state},
        { "LEAddress", "as", property_get_le_address },
+       { "A2dpRole", "u", property_get_a2dp_role },
 #endif
 
        { }
index 3774bf2..f64e062 100644 (file)
@@ -81,6 +81,7 @@ bool btd_adapter_is_default(struct btd_adapter *adapter);
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
 bluetooth_a2dp_role_t btd_adapter_get_a2dp_role(struct btd_adapter *adapter);
 void btd_adapter_set_a2dp_role(struct btd_adapter *adapter, bluetooth_a2dp_role_t role);
+void btd_adapter_emit_a2dp_role_changed(struct btd_adapter *adapter);
 #endif
 uint16_t btd_adapter_get_index(struct btd_adapter *adapter);