connected = _bt_is_headset_type_connected(BT_AVRCP, connected_address);
- if (connected) {
- _bt_convert_addr_string_to_type(device_address.addr,
- connected_address);
- switch (type) {
- case RC_PASS_CMD_PLAY:
- status = avrcp_ct_play((bt_address_t*)&device_address);
- break;
- case RC_PASS_CMD_PAUSE:
- status = avrcp_ct_pause((bt_address_t*)&device_address);
- break;
- case RC_PASS_CMD_STOP:
- status = avrcp_ct_stop((bt_address_t*)&device_address);
- break;
- case RC_PASS_CMD_NEXT:
- status = avrcp_ct_next_track((bt_address_t*)&device_address);
- break;
- case RC_PASS_CMD_PREVIOUS:
- status = avrcp_ct_prev_track((bt_address_t*)&device_address);
- break;
- case RC_PASS_CMD_PRESS_FAST_FORWARD:
- status = avrcp_ct_fforward((bt_address_t*)&device_address, PRESS_STATE);
- break;
- case RC_PASS_CMD_RELEASE_FAST_FORWARD:
- status = avrcp_ct_fforward((bt_address_t*)&device_address, RELEASE_STATE);
- break;
- case RC_PASS_CMD_PRESS_REWIND:
- status = avrcp_ct_rewind((bt_address_t*)&device_address, PRESS_STATE);
- break;
- case RC_PASS_CMD_RELEASE_REWIND:
- status = avrcp_ct_rewind((bt_address_t*)&device_address, RELEASE_STATE);
- break;
- default:
- break;
- }
+ if (!connected) {
+ BT_ERR("Device is not connected:");
+ return BLUETOOTH_ERROR_NOT_CONNECTED;
+ }
- if (status != OAL_STATUS_SUCCESS) {
- BT_ERR("Send pass through command err: [%d]", status);
- result = BLUETOOTH_ERROR_INTERNAL;
- }
- } else {
+ _bt_convert_addr_string_to_type(device_address.addr,
+ connected_address);
+ switch (type) {
+ case RC_PASS_CMD_PLAY:
+ status = avrcp_ct_play((bt_address_t*)&device_address);
+ break;
+ case RC_PASS_CMD_PAUSE:
+ status = avrcp_ct_pause((bt_address_t*)&device_address);
+ break;
+ case RC_PASS_CMD_STOP:
+ status = avrcp_ct_stop((bt_address_t*)&device_address);
+ break;
+ case RC_PASS_CMD_NEXT:
+ status = avrcp_ct_next_track((bt_address_t*)&device_address);
+ break;
+ case RC_PASS_CMD_PREVIOUS:
+ status = avrcp_ct_prev_track((bt_address_t*)&device_address);
+ break;
+ case RC_PASS_CMD_PRESS_FAST_FORWARD:
+ status = avrcp_ct_fforward((bt_address_t*)&device_address, PRESS_STATE);
+ break;
+ case RC_PASS_CMD_RELEASE_FAST_FORWARD:
+ status = avrcp_ct_fforward((bt_address_t*)&device_address, RELEASE_STATE);
+ break;
+ case RC_PASS_CMD_PRESS_REWIND:
+ status = avrcp_ct_rewind((bt_address_t*)&device_address, PRESS_STATE);
+ break;
+ case RC_PASS_CMD_RELEASE_REWIND:
+ status = avrcp_ct_rewind((bt_address_t*)&device_address, RELEASE_STATE);
+ break;
+ case RC_PASS_CMD_VOLUME_UP:
+ status = avrcp_ct_volume_up((bt_address_t*)&device_address);
+ break;
+ case RC_PASS_CMD_VOLUME_DOWN:
+ status = avrcp_ct_volume_down((bt_address_t*)&device_address);
+ break;
+ default:
+ break;
+ }
+
+ if (status != OAL_STATUS_SUCCESS) {
+ BT_ERR("Send pass through command err: [%d]", status);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ return result;
+}
+
+int _bt_avrcp_control_cmd_to_dest(int type, bluetooth_device_address_t *device_address)
+{
+ char connected_address[BT_ADDRESS_STRING_SIZE + 1];
+ gboolean connected;
+ oal_status_t status = OAL_STATUS_SUCCESS;
+ int result = BLUETOOTH_ERROR_NONE;
+ BT_INFO("+");
+
+ _bt_convert_addr_type_to_string(connected_address, device_address->addr);
+
+ connected = _bt_is_headset_address_type_connected(BT_AVRCP,
+ (const char *)connected_address);
+
+ if (!connected) {
BT_ERR("Device is not connected:");
return BLUETOOTH_ERROR_NOT_CONNECTED;
}
+ switch (type) {
+ case RC_PASS_CMD_PLAY:
+ status = avrcp_ct_play((bt_address_t*)device_address);
+ break;
+ case RC_PASS_CMD_PAUSE:
+ status = avrcp_ct_pause((bt_address_t*)device_address);
+ break;
+ case RC_PASS_CMD_STOP:
+ status = avrcp_ct_stop((bt_address_t*)device_address);
+ break;
+ case RC_PASS_CMD_NEXT:
+ status = avrcp_ct_next_track((bt_address_t*)device_address);
+ break;
+ case RC_PASS_CMD_PREVIOUS:
+ status = avrcp_ct_prev_track((bt_address_t*)device_address);
+ break;
+ case RC_PASS_CMD_PRESS_FAST_FORWARD:
+ status = avrcp_ct_fforward((bt_address_t*)device_address, PRESS_STATE);
+ break;
+ case RC_PASS_CMD_RELEASE_FAST_FORWARD:
+ status = avrcp_ct_fforward((bt_address_t*)device_address, RELEASE_STATE);
+ break;
+ case RC_PASS_CMD_PRESS_REWIND:
+ status = avrcp_ct_rewind((bt_address_t*)device_address, PRESS_STATE);
+ break;
+ case RC_PASS_CMD_RELEASE_REWIND:
+ status = avrcp_ct_rewind((bt_address_t*)device_address, RELEASE_STATE);
+ break;
+ case RC_PASS_CMD_VOLUME_UP:
+ status = avrcp_ct_volume_up((bt_address_t*)device_address);
+ break;
+ case RC_PASS_CMD_VOLUME_DOWN:
+ status = avrcp_ct_volume_down((bt_address_t*)device_address);
+ break;
+ default:
+ break;
+ }
+
+ if (status != OAL_STATUS_SUCCESS) {
+ BT_ERR("Send pass through command err: [%d]", status);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ }
+
return result;
}
case BT_AVRCP_GET_TRACK_INFO:
case BT_AVRCP_CONTROL_GET_PROPERTY: {
_bt_service_method_return(req_info->context, out_param, result);
+ _bt_free_info_from_invocation_list(req_info);
+ g_array_free(out_param, TRUE);
break;
}
default:
break;
}
- _bt_free_info_from_invocation_list(req_info);
- g_array_free(out_param, TRUE);
}
BT_INFO("-");
}