41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
#ifndef __AUDIO_CH_SWAP__H
|
||
#define __AUDIO_CH_SWAP__H
|
||
|
||
#include "media/audio_stream.h"
|
||
|
||
#ifndef RUN_NORMAL
|
||
#define RUN_NORMAL 0
|
||
#endif
|
||
|
||
#ifndef RUN_BYPASS
|
||
#define RUN_BYPASS 1
|
||
#endif
|
||
|
||
struct aud_ch_swap {
|
||
u32 swap_name;
|
||
u8 channel;//通道数
|
||
u8 indata_inc;//2;
|
||
u8 bit_wide;//0:16bit 1:32bit
|
||
};
|
||
|
||
struct audio_ch_swap {
|
||
struct audio_stream_entry entry; // 音频流入口
|
||
struct list_head hentry; //
|
||
struct aud_ch_swap parm;
|
||
u8 status; //内部运行状态机
|
||
u8 update; //设置参数更新标志
|
||
};
|
||
|
||
struct audio_ch_swap *audio_ch_swap_process_open(struct aud_ch_swap *parm);
|
||
void audio_ch_swap_run(struct audio_ch_swap *hdl, s16 *data, int len);
|
||
void audio_ch_swap_close(struct audio_ch_swap *hdl);
|
||
void audio_ch_swap_bypass(u32 swap_name, u8 bypass);
|
||
struct audio_ch_swap *get_cur_swap_hdl_by_name(u32 swap_name);
|
||
|
||
/*
|
||
*声道互换接口,只支持立体声
|
||
*/
|
||
void TwoChannelSwap_16Bit(short *in, short *out, int channel, int IndataInc, int per_channel_npoint);
|
||
void TwoChannelSwap_32Bit(int *in, int *out, int channel, int IndataInc, int per_channel_npoint);
|
||
#endif
|