}
static void __bt_avrcp_target_connect_cb(GDBusProxy *proxy, GAsyncResult *res,
- gpointer user_data)
+ gpointer user_data)
{
struct hal_ev_avrcp_ctrl_conn_state ev;
char *address = user_data;
int ret;
GDBusConnection *conn;
- if(!bd_addr) {
+ if (!bd_addr) {
ERR("bd_addr is NULL, return");
return BT_STATUS_PARM_INVALID;
}
conn = _bt_hal_get_system_gconn();
- if(!conn) {
+ if (!conn) {
ERR("_bt_hal_get_system_gconn returned NULL, return");
return BT_STATUS_FAIL;
}
}
static void __bt_avrcp_target_disconnect_cb(GDBusProxy *proxy, GAsyncResult *res,
- gpointer user_data)
+ gpointer user_data)
{
struct hal_ev_avrcp_ctrl_conn_state ev;
char *address = user_data;
int ret;
GDBusConnection *conn;
- if(!bd_addr) {
+ if (!bd_addr) {
ERR("bd_addr is NULL, return");
return BT_STATUS_PARM_INVALID;
}
conn = _bt_hal_get_system_gconn();
- if(!conn) {
+ if (!conn) {
ERR("_bt_hal_get_system_gconn returned NULL, return");
return BT_STATUS_FAIL;
}
static const char *__bt_media_type_to_str(int type)
{
switch (type) {
- case BTRC_PLAYER_ATTR_EQUALIZER:
- return "Equalizer";
- case BTRC_PLAYER_ATTR_REPEAT:
- return "Repeat";
- case BTRC_PLAYER_ATTR_SHUFFLE:
- return "Shuffle";
- case BTRC_PLAYER_ATTR_SCAN:
- return "Scan";
- default :
- return NULL;
+ case BTRC_PLAYER_ATTR_EQUALIZER:
+ return "Equalizer";
+ case BTRC_PLAYER_ATTR_REPEAT:
+ return "Repeat";
+ case BTRC_PLAYER_ATTR_SHUFFLE:
+ return "Shuffle";
+ case BTRC_PLAYER_ATTR_SCAN:
+ return "Scan";
+ default:
+ return NULL;
+ }
+
+ return NULL;
+}
+
+#if 0
+static const char *__bt_transport_type_to_str(int type)
+{
+ switch (type) {
+ case BTRC_TRANSPORT_ATTR_DELAY:
+ return "Delay";
+ case BTRC_TRANSPORT_ATTR_VOLUME:
+ return "Volume";
+ default:
+ return NULL;
}
return NULL;
}
+#endif
bt_status_t _bt_hal_dbus_handler_avrcp_ctrl_set_property(bt_bdaddr_t *bd_addr, uint8_t type, uint8_t value)
{
}
proxy = _bt_hal_get_avrcp_ctrl_properties_proxy(bd_addr);
- if(proxy == NULL) {
+ if (proxy == NULL) {
ERR("Unable to allocate new proxy \n");
if (err) {
ERR("%s", err->message);
DBG("-");
return BT_STATUS_SUCCESS;
}
+
+bt_status_t _bt_hal_dbus_handler_avrcp_transport_set_property(bt_bdaddr_t *bd_addr, int type, unsigned int value)
+{
+ GVariant *reply, *param = NULL;
+ GError *err = NULL;
+ GDBusProxy *proxy = NULL;
+ uint16_t property_level = (uint16_t)value;
+
+ DBG("+");
+ switch (type) {
+ case BTRC_TRANSPORT_ATTR_DELAY:
+ param = g_variant_new("q", property_level);
+ INFO("delay level %d", property_level);
+ break;
+ case BTRC_TRANSPORT_ATTR_VOLUME:
+ param = g_variant_new("q", property_level);
+ INFO("volume level %d", property_level);
+ break;
+ default:
+ ERR("Invalid property type: %d", type);
+ return BT_STATUS_FAIL;
+ }
+
+ proxy = _bt_hal_get_avrcp_transport_properties_proxy(bd_addr);
+ if (proxy == NULL) {
+ ERR("Unable to allocate new proxy \n");
+ if (err) {
+ ERR("%s", err->message);
+ g_clear_error(&err);
+ }
+ return BT_STATUS_FAIL;
+ }
+
+ reply = g_dbus_proxy_call_sync(proxy,
+ "Set", g_variant_new("(ssv)",
+ BT_HAL_MEDIATRANSPORT_INTERFACE,
+ __bt_media_type_to_str(type), param),
+ G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+ g_object_unref(proxy);
+ if (!reply) {
+ ERR("Can't get managed objects");
+ if (err) {
+ ERR("SetProperty Fail: %s", err->message);
+ g_clear_error(&err);
+ return BT_STATUS_FAIL;
+ }
+ }
+
+ g_variant_unref(reply);
+ DBG("-");
+ return BT_STATUS_SUCCESS;
+}