📄 avapi.h
字号:
/*
** FILE
** avapi.h
**
** DESCRIPTION
** Audio/Video Application Programming Interface
**
** HISTORY
** v.0.0.1 2001.10.24
**
**
**/
#ifndef __AVAPI_H
#define __AVAPI_H
#include "avd.h"
#include "global.h"
#include "auctrl.h"
#include "pcm.h"
/*
**
** Audio/Video API control section
**
** Usage : AVAPI_control(rw, func, arg);
**
*/
/*
** video control commands (not completed yet)
*/
#define AVAPI_REALTIME (0x00008000|( 0<<0))
#define AVAPI_PLAY_I (0x00008000|( 1<<0))
#define AVAPI_SLIDE (0x00008000|( 2<<0))
#define AVAPI_PREVIEW (0x00008000|( 3<<0))
#define AVAPI_PAUSE (0x00008000|( 4<<0))
#define AVAPI_LEAVE_ID (0x00008000|( 7<<0))
// read only commands
#define AVAPI_STATUS_CONTROL (0x00008000|( 5<<0))
#define AVAPI_STATUS_SYSTEM (0x00008000|( 6<<0))
#define STATUS_TIMEOUT (0x0001)
#define STATUS_INTERRUPT (0x0002)
#define STATUS_ERROR (0x0004)
#define STATUS_FRAMERATE (0x0008)
#define STATUS_DECODE_NTSC (0x0010)
#define STATUS_DECODE_PAL (0x0020)
#define STATUS_DISPLAY_NTSC (0x0040)
#define STATUS_DISPLAY_PAL (0x0080)
#define STATUS_CD_LAYER (0x0100)
#define STATUS_CD_PAYLOAD (0x0200)
#define STATUS_SYSTEM_LAYER (0x0400)
#define STATUS_SYSTEM_PAYLOAD (0x0800)
#define STATUS_VIDEO_PARSE (0x1000)
#define STATUS_VIDEO_DUMP (0x2000)
#define STATUS_DECODE_READY (0x4000)
#define STATUS_DECODING (0x8000)
/*
** audio control commands
*/
#define AVAPI_MUTE (0x80000000|( 0<<16))
#define AVAPI_KEYSHIFT (0x80000000|( 1<<16))
#define AVAPI_VOLUME (0x80000000|( 2<<16))
#define AVAPI_CHANNEL (0x80000000|( 3<<16))
#define AVAPI_SOUND_EFFECT (0x80000000|( 4<<16))
#define AVAPI_EQ (0x80000000|( 5<<16))
#define AVAPI_MIC_VOLUME (0x80000000|( 6<<16))
#define AVAPI_EQ_SET_BAND_GAIN (0x80000000|( 7<<16))
#define AVAPI_SPECTRUM (0x80000000|( 8<<16))
#define AVAPI_MIC_MODE (0x80000000|( 9<<16))
#define AVAPI_SET_ECHO (0x80000000|(10<<16))
#define AVAPI_FDFC_RESET (0x80000000|(11<<16))
#define AVAPI_FDFC_CODEC (0x80000000|(12<<16))
#define AVAPI_FDFC_STOP (0x80000000|(13<<16))
#define AVAPI_FDFC_PLAY_MODE (0x80000000|(14<<16))
#define AVAPI_SCORE_RESET (0x80000000|(15<<16))
#define AVAPI_SCORE_STOP (0x80000000|(16<<16))
#define AVAPI_CDDA_ESP (0x80000000|(17<<16))
// read only commands
#define AVAPI_STATUS_DECODER (0x80000000|(64<<16))
#define AVAPI_STATUS_BITSTREAM (0x80000000|(65<<16))
#define AVAPI_STATUS_PCM_FIFO (0x80000000|(66<<16))
#define AVAPI_STATUS_PCM_HIGH (0x80000000|(67<<16))
#define AVAPI_STATUS_SCORING (0x80000000|(68<<16))
#define AVAPI_SCORE_LOCAL (0x80000000|(69<<16))
#define AVAPI_SCORE_GLOBAL (0x80000000|(70<<16))
#define AVAPI_MP3_BITRATE (0x80000000|(71<<16))
#define AVAPI_ESP_SAMPLE_COUNT (0x80000000|(72<<16))
#define AVAPI_ESP_FREE_SAMPLE_COUNT (0x80000000|(73<<17))
#define AVAPI_control(rw, func, arg) do { \
if (((func) & 0xffff0000) == 0) \
{ \
if (rw) \
{ \
if((func) == AVAPI_LEAVE_ID) vid_set_leave_id(arg); \
else \
{ \
avapi_status = (((AVD_state_flags&AVD_REALTIME) ? AVAPI_REALTIME : 0) | \
((AVD_state_flags&AVD_PLAY_I) ? AVAPI_PLAY_I : 0) | \
((AVD_state_flags&AVD_SLIDE) ? AVAPI_SLIDE : 0) | \
((AVD_state_flags&AVD_PREVIEW) ? AVAPI_PREVIEW : 0) | \
((AVD_state_flags&AVD_PAUSE ) ? AVAPI_PAUSE : 0)); \
} \
} \
else \
{ \
if ((func) == AVAPI_STATUS_CONTROL) { \
avapi_status = (((AVD_state_flags&AVD_REALTIME) ? AVAPI_REALTIME : 0) | \
((AVD_state_flags&AVD_PLAY_I) ? AVAPI_PLAY_I : 0) | \
((AVD_state_flags&AVD_SLIDE) ? AVAPI_SLIDE : 0) | \
((AVD_state_flags&AVD_PREVIEW) ? AVAPI_PREVIEW : 0) | \
((AVD_state_flags&AVD_PAUSE ) ? AVAPI_PAUSE : 0)); \
} \
else if ((func) == AVAPI_STATUS_SYSTEM) { \
avapi_status = (((IsAVDMediaTimeout()) ? STATUS_TIMEOUT : 0) | \
((IsAVDMediaInterrupt()) ? STATUS_INTERRUPT : 0)| \
((IsAVDMediaError()) ? STATUS_ERROR : 0)| \
((IsAVDFrameRate()) ? STATUS_FRAMERATE : 0)| \
((IsAVDDecodeNTSC()) ? STATUS_DECODE_NTSC : 0)| \
((IsAVDDecodePAL()) ? STATUS_DECODE_PAL : 0)| \
((IsAVDDisplayNTSC()) ? STATUS_DISPLAY_NTSC : 0)| \
((IsAVDDisplayPAL()) ? STATUS_DISPLAY_PAL : 0))| \
(((do_cd == do_cd_layer) ? STATUS_CD_LAYER : \
(do_cd == do_cd_payload) ? STATUS_CD_PAYLOAD : 0 )| \
((do_system == do_system_layer) ? STATUS_SYSTEM_LAYER : \
(do_system == do_system_payload) ? STATUS_SYSTEM_PAYLOAD : 0)| \
((do_video == do_video_parsing) ? STATUS_VIDEO_PARSE : \
((do_video == do_video_dumping) ? STATUS_VIDEO_DUMP : 0))| \
((do_dec_video == do_decode_ready) ? STATUS_DECODE_READY : \
(do_dec_video == do_decoding) ? STATUS_DECODING : 0)); } \
} \
} \
else \
{ \
if (rw) \
{ \
if ((func) == AVAPI_MUTE) au_mute(arg); \
else if ((func) == AVAPI_KEYSHIFT) au_keyshift(arg); \
else if ((func) == AVAPI_VOLUME) au_volume(arg); \
else if ((func) == AVAPI_CHANNEL) au_select_channel(arg); \
else if ((func) == AVAPI_SOUND_EFFECT) au_sound_effect(arg); \
else if ((func) == AVAPI_EQ) au_eq(arg); \
else if ((func) == AVAPI_MIC_VOLUME) au_mic_volume(arg); \
else if ((func) == AVAPI_EQ_SET_BAND_GAIN) \
au_eq_user_gain((arg)&0xffff, (((int)(arg))>>16)); /* band index is in lower half-word and dB is in higher half-word */ \
else if ((func) == AVAPI_SPECTRUM) au_spectrum(arg); \
else if ((func) == AVAPI_MIC_MODE) au_mic_mode(arg); \
else if ((func) == AVAPI_SET_ECHO) au_set_echo((arg)>>16, (arg)&0xffff); /* delay in higher half-word and decay in lower half word */ \
else if ((func) == AVAPI_FDFC_RESET) au_reset_fudu(arg); \
else if ((func) == AVAPI_FDFC_CODEC) au_set_fudu_codec(arg); \
else if ((func) == AVAPI_FDFC_STOP) au_stop_fudu(); \
else if ((func) == AVAPI_FDFC_PLAY_MODE) au_set_fudu_play_mode(arg); \
else if ((func) == AVAPI_SCORE_RESET) reset_scoring(arg); \
else if ((func) == AVAPI_SCORE_STOP) stop_scoring(); \
else if ((func) == AVAPI_CDDA_ESP) cdda_esp_enable(arg); \
} \
else \
{ \
if ((func) == AVAPI_STATUS_DECODER) avapi_status = au_get_decoder_status(); \
else if ((func) == AVAPI_STATUS_BITSTREAM) avapi_status = au_get_bitstream_count(); \
else if ((func) == AVAPI_STATUS_PCM_FIFO) avapi_status = au_get_pcm_fifo_count(); \
/*else if ((func) == AVAPI_SOUND_EFFECT) avapi_status = au_get_sound_effect();*/ \
else if ((func) == AVAPI_KEYSHIFT) avapi_status = au_get_key(); \
else if ((func) == AVAPI_CHANNEL) avapi_status = au_get_channel_select(); \
else if ((func) == AVAPI_MUTE) avapi_status = au_get_mute_flag(); \
else if ((func) == AVAPI_VOLUME) avapi_status = au_get_volume(); \
else if ((func) == AVAPI_MIC_MODE) avapi_status = au_get_mic_mode(); \
else if ((func) == AVAPI_MIC_VOLUME) avapi_status = au_get_mic_volume(); \
else if ((func) == AVAPI_FDFC_STOP) avapi_status = au_is_fudu_stopped(); \
else if ((func) == AVAPI_STATUS_PCM_HIGH) avapi_status = polling_pcm_energy(); \
else if ((func) == AVAPI_STATUS_SCORING) avapi_status = is_scoring(); \
else if ((func) == AVAPI_SCORE_LOCAL) avapi_status = get_local_score(); \
else if ((func) == AVAPI_SCORE_GLOBAL) avapi_status = get_score(); \
else if ((func) == AVAPI_MP3_BITRATE) avapi_status = mp3_get_bitrate(); \
else if ((func) == AVAPI_ESP_SAMPLE_COUNT) avapi_status = adpcm_buffer_count(); \
else if ((func) == AVAPI_ESP_FREE_SAMPLE_COUNT) avapi_status = adpcm_buffer_free_count();\
} \
} \
} while(0)
#endif/*__AVAPI_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -