}
case BT_OOB_ADD_REMOTE_DATA: {
bluetooth_device_address_t address = { {0} };
+ unsigned short address_type;
bt_oob_data_t remote_oob_data;
__bt_service_get_parameters(in_param1,
&address, sizeof(bluetooth_device_address_t));
__bt_service_get_parameters(in_param2,
+ &address_type, sizeof(unsigned short));
+ __bt_service_get_parameters(in_param3,
&remote_oob_data, sizeof(bt_oob_data_t));
- result = _bt_oob_add_remote_data(&address, &remote_oob_data);
+ result = _bt_oob_add_remote_data(&address, address_type, &remote_oob_data);
break;
}
break;
}
+ case BT_AVRCP_TRANSPORT_SET_PROPERTY: {
+ int type;
+ unsigned int value;
+
+ __bt_service_get_parameters(in_param1,
+ &type, sizeof(int));
+ __bt_service_get_parameters(in_param2,
+ &value, sizeof(unsigned int));
+
+ result = _bt_avrcp_transport_set_property(type, value);
+
+ break;
+ }
case BT_AVRCP_GET_TRACK_INFO: {
media_metadata_t meta_data;
media_metadata_attributes_t metadata;
result = bt_otp_server_deinit(request_id);
break;
}
+ case BT_OTP_READ_VALUE: {
+ char *handle;
+ char *data = NULL;
+ guint data_len = 0;
+
+ char *sender = NULL;
+ sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+ data_len = g_variant_get_size(in_param1);
+ data = (char *)g_variant_get_data(in_param1);
+
+ handle = g_strndup(data, data_len);
+ BT_DBG("Read OTP Characteristic Value [%s]", handle);
+
+ result = _bt_otp_read_characteristic_value(request_id, sender, handle);
+
+ if (result != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Reading OTP Characteristic Value failed result [%d]", result);
+ g_array_append_vals(*out_param1, handle, data_len);
+ }
+ if (handle)
+ g_free(handle);
+ break;
+ }
+ case BT_OTP_ENABLE_NOTIFICATION: {
+ char *handle;
+ char *data = NULL;
+ guint data_len = 0;
+
+ char *sender = NULL;
+ sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+ data_len = g_variant_get_size(in_param1);
+ data = (char *)g_variant_get_data(in_param1);
+
+ handle = g_strndup(data, data_len);
+ BT_DBG("OTP Control point CCCD handle [%s]", handle);
+
+ result = _bt_otp_enable_notification(request_id, sender, handle);
+
+ if (result != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("Enabling OTP CCCD failed result [%d]", result);
+ g_array_append_vals(*out_param1, handle, data_len);
+ }
+ if (handle)
+ g_free(handle);
+ break;
+ }
+ case BT_OTP_WRITE_VALUE: {
+ char *handle;
+ char *data = NULL;
+ guint data_len = 0;
+ char *sender = NULL;
+ bluetooth_otp_charc_data_t otp_charc_data;
+ sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+ data_len = g_variant_get_size(in_param1);
+ data = (char *)g_variant_get_data(in_param1);
+
+ handle = g_strndup(data, data_len);
+ BT_DBG("OTP Write Characteristic value [%s]", handle);
+
+ __bt_service_get_parameters(in_param2,
+ &otp_charc_data, sizeof(bluetooth_otp_charc_data_t));
+
+ int i;
+ for (i = 0; i < otp_charc_data.length; i++)
+ BT_DBG("Value[%d] = %u", i, otp_charc_data.data[i]);
+
+ result = _bt_otp_write_characteristic_value(request_id, sender, handle,
+ otp_charc_data.data, otp_charc_data.length);
+
+ if (result != BLUETOOTH_ERROR_NONE) {
+ BT_ERR("OTP Write Characteristic failed result [%d]", result);
+ g_array_append_vals(*out_param1, handle, data_len);
+ }
+ if (handle)
+ g_free(handle);
+ break;
+ }
+ case BT_LE_OTC_CONNECT: {
+ BT_DBG("OTC Connect");
+ bluetooth_device_address_t address = { {0} };
+ __bt_service_get_parameters(in_param1, &address,
+ sizeof(bluetooth_device_address_t));
+
+ result = _bt_otp_connect_otc(request_id, &address);
+ break;
+ }
+ case BT_LE_OTC_DISCONNECT: {
+ BT_DBG("OTC Disconnect");
+ bluetooth_device_address_t address = { {0} };
+
+ __bt_service_get_parameters(in_param1, &address,
+ sizeof(bluetooth_device_address_t));
+ result = _bt_otp_disconnect_otc(&address);
+ break;
+ }
default:
result = BLUETOOTH_ERROR_INTERNAL;
break;
case BT_AVRCP_CONTROL_GET_PROPERTY:
case BT_AVRCP_GET_TRACK_INFO:
+ case BT_AVRCP_TRANSPORT_SET_PROPERTY:
+
case BT_SET_CONTENT_PROTECT:
case BT_BOND_DEVICE_BY_TYPE:
/* OTP Server */
case BT_OTP_SERVER_INIT:
case BT_OTP_SERVER_DEINIT:
+ case BT_OTP_READ_VALUE:
+ case BT_OTP_ENABLE_NOTIFICATION:
+ case BT_OTP_WRITE_VALUE:
+ case BT_LE_OTC_CONNECT:
+ case BT_LE_OTC_DISCONNECT:
case BT_MAP_CREATE_SESSION:
case BT_MAP_DESTROY_SESSION: