pinebuds/services/bt_app/app_bqb.cpp

154 lines
4.8 KiB
C++

/***************************************************************************
*
* Copyright 2015-2019 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#if defined(__BQB_PROFILE_TEST__) && !defined(ENHANCED_STACK)
#include "analog.h"
#include "bt_drv.h"
#include "hal_cmu.h"
#include "hal_timer.h"
#include "hal_uart.h"
#include "nvrecord.h"
#include "nvrecord_dev.h"
#include "nvrecord_env.h"
#include "apps.h"
#include "cqueue.h"
#include "tgt_hardware.h"
#include "cmsis_os.h"
#include "stdio.h"
#include "string.h"
#include "hal_bootmode.h"
#include "hal_timer.h"
#include "hal_trace.h"
#include "app_audio.h"
#include "app_key.h"
#include "app_overlay.h"
#include "app_status_ind.h"
#include "app_thread.h"
#include "app_utils.h"
#include "apps.h"
#include "audioflinger.h"
#ifdef __FACTORY_MODE_SUPPORT__
#include "app_factory.h"
#include "app_factory_bt.h"
#endif
#include "besbt.h"
#include "bt_drv_interface.h"
#include "nvrecord.h"
#include "nvrecord_dev.h"
#include "nvrecord_env.h"
#include "a2dp_api.h"
#include "app_bt.h"
#include "avctp_api.h"
#include "avdtp_api.h"
#include "avrcp_api.h"
#include "btapp.h"
#include "me_api.h"
#ifdef MEDIA_PLAYER_SUPPORT
#include "app_media_player.h"
#include "resources.h"
#endif
#include "app_bt_media_manager.h"
#include "hal_sleep.h"
extern struct BT_DEVICE_T app_bt_device;
void A2dp_pts_Set_Sink_Delay(APP_KEY_STATUS *status, void *param) {
TRACE(0, "!!!A2dp_pts_Set_Sink_Delay\n");
btif_a2dp_set_sink_delay(
app_bt_device.a2dp_stream[BT_DEVICE_ID_1]->a2dp_stream, 10);
}
void A2dp_pts_Create_Avdtp_Signal_Channel(APP_KEY_STATUS *status, void *param) {
TRACE(0, "!!!A2dp_pts_Create_Avdtp_Signal_Channel\n");
bt_bdaddr_t bdAddr;
// PTS addr:13 71 da 7d 1a 0
bdAddr.address[0] = 0x13;
bdAddr.address[1] = 0x71;
bdAddr.address[2] = 0xda;
bdAddr.address[3] = 0x7d;
bdAddr.address[4] = 0x1a;
bdAddr.address[5] = 0x00;
btif_a2dp_open_stream(app_bt_device.a2dp_stream[BT_DEVICE_ID_1]->a2dp_stream,
&bdAddr);
}
void Hfp_pts_create_service_level_channel(APP_KEY_STATUS *status, void *param) {
TRACE(0, "!!!Hfp_pts_create_service_level_channel\n");
bt_bdaddr_t bdAddr;
// PTS addr:13 71 da 7d 1a 0
bdAddr.address[0] = 0x13;
bdAddr.address[1] = 0x71;
bdAddr.address[2] = 0xda;
bdAddr.address[3] = 0x7d;
bdAddr.address[4] = 0x1a;
bdAddr.address[5] = 0x00;
btif_hf_create_service_link(app_bt_device.hf_channel[BT_DEVICE_ID_1],
&bdAddr);
}
#if 0
typedef struct {
AvrcpAdvancedPdu pdu;
uint8_t para_buf[10];
}APP_A2DP_AVRCPADVANCEDPDU;
extern osPoolId app_a2dp_avrcpadvancedpdu_mempool;
#define app_a2dp_avrcpadvancedpdu_mempool_calloc(buf) \
do { \
APP_A2DP_AVRCPADVANCEDPDU *avrcpadvancedpdu; \
avrcpadvancedpdu = (APP_A2DP_AVRCPADVANCEDPDU *)osPoolCAlloc( \
app_a2dp_avrcpadvancedpdu_mempool); \
buf = &(avrcpadvancedpdu->pdu); \
buf->parms = avrcpadvancedpdu->para_buf; \
} while (0);
#endif
void Avrcp_pts_volume_change_notify(APP_KEY_STATUS *status, void *param) {
TRACE(0, "!!!Avrcp_pts_volume_change_notify\n");
if (app_bt_device.avrcp_notify_rsp[BT_DEVICE_ID_1] == NULL)
btif_app_a2dp_avrcpadvancedpdu_mempool_calloc(
&app_bt_device.avrcp_notify_rsp[BT_DEVICE_ID_1]);
btif_avrcp_ct_register_notification(
app_bt_device.avrcp_channel[BT_DEVICE_ID_1],
app_bt_device.avrcp_notify_rsp[BT_DEVICE_ID_1],
BTIF_AVRCP_EID_VOLUME_CHANGED, 0);
}
// extern int a2dp_volume_get(void);
#if 0
void Avrcp_pts_set_absolute_volume(APP_KEY_STATUS *status, void *param)
{
TRACE(0,"app_avrcp_set_absolute_volume\n");
if (app_bt_device.avrcp_notify_rsp[BT_DEVICE_ID_1] == NULL)
btif_app_a2dp_avrcpadvancedpdu_mempool_calloc(&app_bt_device.avrcp_notify_rsp[BT_DEVICE_ID_1]);
int vol = app_bt_stream_volume_get_ptr()->a2dp_vol;
vol = 8*vol-1;
if (vol > (0x7f-1))
vol = 0x7f;
btif_avrcp_ct_set_absolute_volume(app_bt_device.avrcp_channel[BT_DEVICE_ID_1],(avrcp_advanced_pdu_t*)app_bt_device.avrcp_notify_rsp[BT_DEVICE_ID_1],vol);
}
#endif
#endif