⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auctrl.h

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 H
字号:
/*
 * auctrl.h provides the interface between audio decoder kernel and system control program.
 */
#ifndef __AUCTRL_H__
#define __AUCTRL_H__

#include "avapi.h"

void    au_mute(int enable);        // true to mute
void    au_keyshift(int key);       // key ranges from -6 to +6
void    au_volume(unsigned v);  // volume v = 0~511 (0~2.0)

#define CH_LR   0
#define CH_LL   1
#define CH_RR   2
#define CH_RL   3

void    au_select_channel(int ch_mode);

#define SE_STEREO               0
#define SE_THEATER              1
#define SE_CHURCH               2
#define SE_LIVE                 3
#define SE_MUSIC_HALL           4
#define SE_STADIUM              5
#define SE_ROUND_THEATER        6

#define SE_MODE_COUNT           7

void    au_sound_effect(int se_mode);

#define EQ_OFF          0
#define EQ_USER_DEFINED 1
#define EQ_STANDARD     2
#define EQ_CLASSIC      3
#define EQ_ROCK         4
#define EQ_JAZZ         5
#define EQ_POP          6

void    au_eq(int eq_mode);         // select eq mode

// band_index : 0~6, db : -12~+12
void    au_eq_user_gain(int band_index, int db);
void    au_spectrum(int enable);    // true to enable spectrum

void    au_mic_volume(unsigned mv); // mic volume = 0~511 (0~2.0)

/* 4 MIC mode values in low nibble of mic_mode, auto channel selection is in high nibble */
#define MIC_OFF         0               //user,kernel use
#define MIC_ON          1               //user,kernel use
#define MIC_AUTO        2               //ONLY KERNEL USE
#define MIC_AUTO_L      (2|(0<<4))  //user,kernel use
#define MIC_AUTO_R      (2|(1<<4))  //user,kernel use
#define MIC_AUTO_LR     (2|(2<<4))  //user,kernel use
#define MIC_HW_OFF      3

void    au_mic_mode(int _mic_mode);

/* delay = 0~512*3, decay = 0~255 */
void    au_set_echo(int delay, int decay);

int     init_audio(void);               // initialize audio decoder upon bootup
int     reset_audio(int mode);  // reset audio decoder before decoding begin
void    reset_audio_config(void);       /*T: Jan.03 added - to be complement with stop_audio() function */
int     stop_audio(void);               // stop audio decoding and mute until reset_audio() is called.
int     pause_audio(int enable, int skip_flag); // true to pause audio decoder, false to resume.
void    ack_bitstream_change(void);

void    au_main(void);                  // VCD/SVCD/Oko audio decoder main function
void    mp3_main(void);                 // CDROM audio file decoder main function
void    cdda_main(void);                // CDDA audio player main function

/*
 * audio decoder status report functions, for debugging only.
 */

#define AS_WAIT_BITSTREAM       0x0001
#define AS_WAIT_PCM_FIFO        0x0002
#define AS_WAIT_AUDIO_HARDWARE  0x0004
#define AS_DECODING             0x0008
#define AS_STOP                 0x0010
#define AS_PAUSE                0x0020

int     au_get_decoder_status(void);

int     au_get_bitstream_count(void);
int     au_get_pcm_fifo_count(void);
int     au_get_channel_select(void);
int     au_get_eq_mode(void);
int     au_get_key(void);
int     au_get_mute_flag(void);
int     au_get_volume(void);
int     au_get_mic_mode(void);
int     au_get_mic_volume(void);
int     au_get_sound_effect(void);
unsigned int mp3_get_bitrate(void);

/*
 * Get energy of EQ bands. Return 1 if succeed.
 */
int     au_get_spectrum(UINT16 psd[7]);

// unsigned char fudu_mode;
#define FDFC_NONE                       (0)
#define FDFC_RECORD                     (1)
#define FDFC_RECORD_AND_DECODE          (0x80 | 1)
#define FDFC_PLAYBACK                   (2)
#define FDFC_PLAYBACK_AND_DECODE        (0x80 | 2)
#define FDFC_LIYIN_DECODE               (3)
#define FDFC_USER_INPUT                 (4) // user mic input only, no recording

// unsigned char fudu_play_mode;
enum
{
    FDFC_PLAY_STANDARD = 0,
    FDFC_PLAY_LIYIN1 = 1,
    FDFC_PLAY_LIYIN2 = 2
};

void    au_reset_fudu(int mode);
void    au_set_fudu_play_mode(int fp_mode);

// unsigned char fudu_compress;
enum
{
    FDFC_CODEC_ADPCM = 0,
    FDFC_CODEC_HALF_ADPCM = 1,
    FDFC_CODEC_QUARTER_ADPCM = 2,
    FDFC_CODEC_PCM = 3                      // for testing only
};

#define FDFC_QUALITY_HIGH       (FDFC_CODEC_ADPCM)
#define FDFC_QUALITY_STANDARD   (FDFC_CODEC_HALF_ADPCM)
#define FDFC_QUALITY_LONG       (FDFC_CODEC_QUARTER_ADPCM)

void    au_set_fudu_codec(int fc_mode);

void    au_stop_fudu(void);
int     au_is_fudu_stopped(void);
int     au_is_fudu_silence_play(void);

/* Scoring functions */
void    reset_scoring(int ch);
void    stop_scoring(void);
void    polling_scoring(void);
int     get_local_score(void);
int     get_score(void);
int     is_scoring(void);

int     cdda_esp_free_space(void);
void    cdda_esp_enable(int enable);
unsigned int adpcm_buffer_count(void);
unsigned int adpcm_buffer_free_count(void);//for esp free sample count
void    cdda_ack_track_change(void);
unsigned int cdda_get_second_counter(void);

unsigned int mp3_get_bitrate(void);

void set_44k_audio_dac(unsigned char dac_flag);
unsigned char is_fix_44k_dac(void);

#endif //!__AUCTRL_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -