From: DoHyun Pyun Date: Wed, 27 Nov 2019 06:00:47 +0000 (+0900) Subject: Add A2dpRole property in the adapter interface X-Git-Tag: accepted/tizen/5.5/unified/20191203.011319^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F98%2F218698%2F2;p=platform%2Fupstream%2Fbluez.git Add A2dpRole property in the adapter interface Change-Id: I818c3a65b700783fb11b5c67fad8af9149a33ee9 Signed-off-by: DoHyun Pyun --- diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt index 70b5dee..d2741a5 100755 --- a/doc/adapter-api.txt +++ b/doc/adapter-api.txt @@ -466,4 +466,8 @@ Properties string Address [readonly] string Version [readonly] The Bluetooth version. + + uint32 A2dpRole [readonly] + + The A2DP role of adapter. #endif diff --git a/profiles/audio/media.c b/profiles/audio/media.c index fdd5dcc..65d7933 100755 --- a/profiles/audio/media.c +++ b/profiles/audio/media.c @@ -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; diff --git a/src/adapter.c b/src/adapter.c index 461bb77..0049d15 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -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 { } diff --git a/src/adapter.h b/src/adapter.h index 3774bf2..f64e062 100644 --- a/src/adapter.h +++ b/src/adapter.h @@ -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);