first
This commit is contained in:
108
cpu/br28/audio_sync.c
Normal file
108
cpu/br28/audio_sync.c
Normal file
@ -0,0 +1,108 @@
|
||||
|
||||
#include "board_config.h"
|
||||
#include "asm/dac.h"
|
||||
#include "media/includes.h"
|
||||
//#include "media/audio_dev.h"
|
||||
#include "effectrs_sync.h"
|
||||
#include "asm/gpio.h"
|
||||
|
||||
#if 0
|
||||
|
||||
extern struct audio_dac_hdl dac_hdl;
|
||||
extern int bt_media_sync_master(u8 type);
|
||||
extern u8 bt_media_device_online(u8 dev);
|
||||
extern void *bt_media_sync_open(void);
|
||||
extern void bt_media_sync_close(void *);
|
||||
extern int a2dp_media_get_total_buffer_size();
|
||||
/*extern u32 get_bt_slot_time(u8 type, u32 time, u32 *pre_time);*/
|
||||
extern int bt_send_audio_sync_data(void *, void *buf, u32 len);
|
||||
extern void bt_media_sync_set_handler(void *, void *priv,
|
||||
void (*event_handler)(void *, int *, int));
|
||||
extern int bt_audio_sync_nettime_select(u8 basetime);
|
||||
|
||||
|
||||
const static struct audio_tws_conn_ops tws_conn_ops = {
|
||||
.open = bt_media_sync_open,
|
||||
.set_handler = bt_media_sync_set_handler,
|
||||
.close = bt_media_sync_close,
|
||||
/*.time = get_bt_slot_time,*/
|
||||
.master = bt_media_sync_master,
|
||||
.online = bt_media_device_online,
|
||||
.send = bt_send_audio_sync_data,
|
||||
};
|
||||
|
||||
#if (CONFIG_BD_NUM == 2)
|
||||
#define SYNC_DATA_TOP_PERCENT 70
|
||||
#define SYNC_DATA_BOTTOM_PERCENT 50
|
||||
#define SYNC_DATA_BEGIN_PERCENT 60
|
||||
#elif (TCFG_USER_TWS_ENABLE == 1)
|
||||
#if TCFG_BT_SUPPORT_AAC
|
||||
#define SYNC_DATA_TOP_PERCENT 70
|
||||
#define SYNC_DATA_BOTTOM_PERCENT 50
|
||||
#define SYNC_DATA_BEGIN_PERCENT 50
|
||||
#else
|
||||
#define SYNC_DATA_TOP_PERCENT 80
|
||||
#define SYNC_DATA_BOTTOM_PERCENT 60
|
||||
#define SYNC_DATA_BEGIN_PERCENT 60
|
||||
#endif
|
||||
#else
|
||||
#define SYNC_DATA_TOP_PERCENT 80
|
||||
#define SYNC_DATA_BOTTOM_PERCENT 60
|
||||
#define SYNC_DATA_BEGIN_PERCENT 70
|
||||
#endif
|
||||
|
||||
#define SYNC_START_TIME 100
|
||||
void *a2dp_play_sync_open(u8 channel, u32 sample_rate, u32 output_rate, u32 coding_type)
|
||||
{
|
||||
struct audio_wireless_sync_info sync_param;
|
||||
int a2dp_total_size = 0;
|
||||
|
||||
if (coding_type == AUDIO_CODING_AAC) {
|
||||
a2dp_total_size = 15 * 1024;
|
||||
} else if (coding_type == AUDIO_CODING_SBC) {
|
||||
a2dp_total_size = a2dp_media_get_total_buffer_size();
|
||||
}
|
||||
|
||||
sync_param.channel = channel;
|
||||
sync_param.tws_ops = &tws_conn_ops;
|
||||
sync_param.sample_rate = sample_rate;
|
||||
sync_param.output_rate = output_rate;
|
||||
|
||||
sync_param.data_top = SYNC_DATA_BEGIN_PERCENT * a2dp_total_size / 100;
|
||||
sync_param.data_bottom = SYNC_DATA_BOTTOM_PERCENT * a2dp_total_size / 100;
|
||||
sync_param.begin_size = SYNC_DATA_BEGIN_PERCENT * a2dp_total_size / 100;
|
||||
sync_param.tws_together_time = SYNC_START_TIME;
|
||||
|
||||
sync_param.protocol = WL_PROTOCOL_RTP;
|
||||
/*sync_param.dev_type = AUDIO_OUTPUT_DAC;*/
|
||||
sync_param.dev = &dac_hdl;
|
||||
|
||||
bt_audio_sync_nettime_select(0);
|
||||
|
||||
return audio_wireless_sync_open(&sync_param);
|
||||
}
|
||||
|
||||
void *esco_play_sync_open(u8 channel, u16 sample_rate, u16 output_rate)
|
||||
|
||||
{
|
||||
struct audio_wireless_sync_info sync_param;
|
||||
|
||||
int esco_buffer_size = 60 * 50;
|
||||
|
||||
sync_param.channel = channel;
|
||||
sync_param.sample_rate = sample_rate;
|
||||
sync_param.tws_ops = &tws_conn_ops;
|
||||
sync_param.data_top = 40 * esco_buffer_size / 100;
|
||||
sync_param.data_bottom = 10 * esco_buffer_size / 100;
|
||||
sync_param.begin_size = 15 * esco_buffer_size / 100; /*60*50*6/100 = 180(3 packet)*/
|
||||
sync_param.tws_together_time = SYNC_START_TIME;
|
||||
/*sync_param.dev_type = AUDIO_OUTPUT_DAC;*/
|
||||
sync_param.dev = &dac_hdl;
|
||||
|
||||
sync_param.protocol = WL_PROTOCOL_SCO;
|
||||
|
||||
bt_audio_sync_nettime_select(0);
|
||||
|
||||
return audio_wireless_sync_open(&sync_param);
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user