225 lines
6.5 KiB
C
225 lines
6.5 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.
|
|
*
|
|
****************************************************************************/
|
|
#ifndef __APP_AUDIO_H__
|
|
#define __APP_AUDIO_H__
|
|
|
|
#include "app_bt_stream.h"
|
|
#include "heap_api.h"
|
|
|
|
//should solve this problem
|
|
//#include "./../../utils/cqueue/cqueue.h"
|
|
//#include "cqueue.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//This buff is used as queue
|
|
#ifndef APP_AUDIO_BUFFER_SIZE
|
|
#if (RAM_SIZE >= 0x48000)
|
|
|
|
#if defined(AUDIO_ANC_FB_MC) && defined(ANC_APP) && !defined(__AUDIO_RESAMPLE__)
|
|
|
|
#if defined(A2DP_EQ_24BIT)
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 210)
|
|
#else
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 140)
|
|
#endif
|
|
|
|
#else
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 100)
|
|
#endif
|
|
|
|
#elif (RAM_SIZE >= 0x40000)
|
|
|
|
#ifdef NEW_NV_RECORD_ENABLED
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 62)
|
|
#else
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 59)
|
|
#endif
|
|
|
|
#else // RAM_SIZE < 0x40000
|
|
|
|
#ifdef APP_TEST_AUDIO
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 10)
|
|
#elif defined(SPEECH_RX_NS)
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 37)
|
|
#else
|
|
#define APP_AUDIO_BUFFER_SIZE (1024 * 32)
|
|
#endif
|
|
|
|
#endif // RAM_SIZE < 0x40000
|
|
#endif
|
|
|
|
#if defined(VOB_ENCODING_ALGORITHM) && (VOB_ENCODING_ALGORITHM == ENCODING_ALGORITHM_OPUS)
|
|
|
|
#ifdef __ALEXA_WWE
|
|
#ifdef __ALEXA_WWE_LITE
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (63*1024)
|
|
#else
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (305*1024)
|
|
#endif
|
|
|
|
#elif defined(SPEECH_CAPTURE_TWO_CHANNEL)
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (76*1024)
|
|
#elif defined(__DUAL_MIC_RECORDING__)
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (79*1024)
|
|
#else
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (67*1024)
|
|
#endif
|
|
|
|
#elif defined(__AMA_VOICE__) && (VOB_ENCODING_ALGORITHM == ENCODING_ALGORITHM_SBC)
|
|
#if defined(CHIP_BEST1400) && defined(__AI_VOICE__)
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (13*1024)
|
|
#else
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (17*1024)
|
|
#endif
|
|
#elif defined(__KWS_ALEXA__)
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (160*1024)
|
|
#elif defined(AI_CAPTURE_DATA_AEC)
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (19*1024-512)
|
|
#elif defined(GSOUND_HOTWORD_EXTERNAL)
|
|
/// gsound_external_hotword_configuration
|
|
#ifdef VOICE_DETECTOR_EN
|
|
/// VAD_enabled_configuration
|
|
#ifdef VAD_USE_8K_SAMPLE_RATE
|
|
/// vad_use_8K_sample_rate_configuration
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE ((32 + 16 + 32)*1024-512)
|
|
/// vad_use_8K_sample_rate_configuration
|
|
#else
|
|
/// vad_use_16K_sample_rate_configuration
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE ((32 + 32)*1024-512)
|
|
/// vad_use_16K_sample_rate_configuration
|
|
#endif
|
|
/// VAD_enabled_configuration
|
|
#else
|
|
/// VAD_disabled_configuration
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (32*1024-512)
|
|
/// VAD_disabled_configuration
|
|
#endif
|
|
/// gsound_external_hotword_configuration
|
|
#else
|
|
#ifdef VOICE_DETECTOR_EN
|
|
/// VAD_enabled_configuration
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE ((13 + 32)*1024-512)
|
|
/// VAD_enabled_configuration
|
|
#else
|
|
/// VAD_disabled_configuration
|
|
#define APP_CAPTURE_AUDIO_BUFFER_SIZE (13*1024-512)
|
|
/// VAD_disabled_configuration
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(A2DP_SCALABLE_ON)
|
|
#define SCALABLE_FRAME_SIZE (864)
|
|
#define SCALABLE_HEAD_SIZE (4) /* pick something big enough to hold a bunch of frames */
|
|
#define SCALABLE_READBUF_SIZE (500) /* pick something big enough to hold a bunch of frames */
|
|
#define SCALABLE_DECODER_SIZE (17456) /* pick something big enough to hold a bunch of frames */
|
|
#define SBM_FAST_SPEED 67380 // 840 2.76%
|
|
#define SBM_SLOW_SPEED 63730 // 888 2.76%
|
|
#define SBM_NUM_NORMAL 100
|
|
#endif
|
|
|
|
#define MAX_AUDIO_BUF_LIST 20
|
|
enum APP_AUDIO_CACHE_T {
|
|
APP_AUDIO_CACHE_CACHEING= 0,
|
|
APP_AUDIO_CACHE_OK,
|
|
APP_AUDIO_CACHE_QTY,
|
|
};
|
|
|
|
#define APP_AUDIO_SET_MESSAGE(appevt, id, status) (appevt = (((uint32_t)id&0xffff)<<16)|(status&0xffff))
|
|
#define APP_AUDIO_GET_ID(appevt, id) (id = (appevt>>16)&0xffff)
|
|
#define APP_AUDIO_GET_STATUS(appevt, status) (status = appevt&0xffff)
|
|
#define APP_AUDIO_GET_AUD_ID(appevt, aud_id) (aud_id = appevt)
|
|
#define APP_AUDIO_GET_FREQ(appevt, freq) (freq = appevt)
|
|
|
|
#define APP_AUDIO_InitCQueue(a, b, c) InitCQueue(a, b, c)
|
|
#define APP_AUDIO_AvailableOfCQueue(a) AvailableOfCQueue(a)
|
|
#define APP_AUDIO_LengthOfCQueue(a) LengthOfCQueue(a)
|
|
#define APP_AUDIO_PeekCQueue(a, b, c, d, e, f) PeekCQueue(a, b, c, d, e, f)
|
|
#define APP_AUDIO_EnCQueue(a, b, c) EnCQueue(a, b, c)
|
|
#define APP_AUDIO_DeCQueue(a, b, c) DeCQueue(a, b, c)
|
|
|
|
#define app_audio_mempool_init syspool_init
|
|
|
|
#define app_audio_mempool_noclr_init syspool_init
|
|
|
|
#define app_audio_mempool_use_mempoolsection_init syspool_init
|
|
|
|
#define app_audio_mempool_free_buff_size syspool_free_size
|
|
|
|
#define app_audio_mempool_get_buff syspool_get_buff
|
|
|
|
#if defined(A2DP_LDAC_ON)
|
|
#define app_audio_mempool_total_buf syspool_total_size
|
|
#define app_audio_mempool_force_set_buff_used syspool_force_used_size
|
|
#endif
|
|
|
|
|
|
void UNLOCK_APP_AUDIO_QUEUE();
|
|
|
|
void LOCK_APP_AUDIO_QUEUE();
|
|
|
|
uint32_t app_audio_lr_balance(uint8_t *buf, uint32_t len, int8_t balance);
|
|
|
|
void app_audio_mempool_init_with_specific_size(uint32_t size);
|
|
|
|
int app_audio_pcmbuff_init(uint8_t *buff, uint16_t len);
|
|
|
|
int app_audio_pcmbuff_length(void);
|
|
|
|
int app_audio_pcmbuff_put(uint8_t *buff, uint16_t len);
|
|
|
|
int app_audio_pcmbuff_get(uint8_t *buff, uint16_t len);
|
|
|
|
int app_audio_pcmbuff_discard(uint16_t len);
|
|
|
|
void app_audio_memcpy_16bit(int16_t *des, int16_t *src, int len);
|
|
|
|
void app_audio_memset_16bit(int16_t *des, int16_t val, int len);
|
|
|
|
|
|
int app_audio_sendrequest(uint16_t id, uint8_t status, uint32_t ptr);
|
|
|
|
|
|
int app_audio_sendrequest_param(uint16_t id, uint8_t status, uint32_t ptr, uint32_t param);
|
|
|
|
void app_audio_open(void);
|
|
|
|
void app_audio_close(void);
|
|
|
|
bool app_audio_list_append(APP_AUDIO_STATUS* aud_status);
|
|
|
|
bool app_audio_list_playback_exist(void);
|
|
|
|
void app_audio_list_playback_clear(void);
|
|
|
|
bool app_audio_list_rmv_callback(APP_AUDIO_STATUS *status_close, APP_AUDIO_STATUS *status_next, enum APP_BT_AUDIO_Q_POS pos, bool pop_next);
|
|
|
|
void app_audio_list_clear();
|
|
|
|
int app_capture_audio_mempool_init(void);
|
|
|
|
uint32_t app_capture_audio_mempool_free_buff_size();
|
|
|
|
int app_capture_audio_mempool_get_buff(uint8_t **buff, uint32_t size);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif//__FMDEC_H__
|