123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- #ifndef _duck_dxa_h
- #define _duck_dxa_h
- #include "duck_wav.h"
- #if defined(__cplusplus)
- extern "C" {
- #endif
- typedef struct tXAudioSource* DXL_XAUDIOSRC_HANDLE;
- #define MAX_AUDIO_REGISTRATIONS 20
- typedef struct tXAudioRegistration {
- unsigned short formatTag;
- int (*audio_dxer_init)(DXL_XAUDIOSRC_HANDLE src);
- int (*audio_dxer_dx)(DXL_XAUDIOSRC_HANDLE src, void *left, void *right, int nSamples);
- int (*audio_dxer_exit)(DXL_XAUDIOSRC_HANDLE src);
- int (*audio_dxer_clear)(DXL_XAUDIOSRC_HANDLE src);
- } DXL_AUDIO_REGISTRATION;
- typedef struct tXAudioSource
- {
- unsigned char *addr;
- int totalPos;
- int length;
- int interleave;
- short aiSamp[2],aiStepIndex[2];
- int blockFinished;
- int samplesRead;
- UINT64 profileStartTime;
- UINT64 profileEndTime;
- UINT64 dxClocks;
- UINT64 samplesDXed;
- short iFirstNibble;
- short iNextInput;
- short sum,diff,nudiff;
- DKWAVEFORM wv;
- DXL_AUDIO_REGISTRATION registration;
- void* more;
- } DXL_XAUDIOSRC;
- typedef struct tAudioBuff *DXL_AUDIODST_HANDLE;
- int DXL_InitAudio(
- int srcs,
- int dsts
- );
- void DXL_ExitAudio(void);
- typedef struct tDKWAVEFORM *DKWAVEFORMPTR;
- DXL_XAUDIOSRC_HANDLE DXL_CreateXAudioSrc(
-
- DKWAVEFORMPTR wv,
- unsigned char *addr,
- int length
- );
- void DXL_AlterXAudioData(
- DXL_XAUDIOSRC_HANDLE xSource,
- unsigned char *addr,
- int length
- );
- void DXL_DestroyXAudioSrc(
- DXL_XAUDIOSRC_HANDLE xSource
- );
-
- DXL_AUDIODST_HANDLE DXL_CreateAudioDst(
- void *addrL,
- void *addrR,
- int length,
- int bitDepth,
- int numChannels,
- int sampleRate
- );
- void DXL_AlterAudioDst(
- DXL_AUDIODST_HANDLE dst,
- void *addrL,
- void *addrR,
- int length,
- int bitDepth,
- int numChannels,
- int sampleRate
- );
- void DXL_DestroyAudioDst(
- DXL_AUDIODST_HANDLE dst
- );
- int DXL_dxAudio(
- DXL_XAUDIOSRC_HANDLE src,
- DXL_AUDIODST_HANDLE dst,
- int maxSamplesToDecompress
- );
- int DXL_ClearAudio(DXL_XAUDIOSRC_HANDLE xSourcePublic);
- int DXL_RegisteredAudioDXerGet(DXL_AUDIO_REGISTRATION *oneRegistration);
- int DXL_RegisteredAudioDXerSet(
- unsigned short formatTag,
- int (*audio_dxer_init) (DXL_XAUDIOSRC_HANDLE src),
- int (*audio_dxer_dx) (DXL_XAUDIOSRC_HANDLE src, void *left, void *right, int nSamples),
- int (*audio_dxer_exit) (DXL_XAUDIOSRC_HANDLE src),
- int (*audio_dxer_clear) (DXL_XAUDIOSRC_HANDLE src)
- );
-
-
-
- void DXL_AudioAccurateTime(UINT64* temp);
- int DXL_RegisterAVC(void);
- int DXL_RegisterAC3(void);
- int DXL_RegisterQDesign(void);
- int DXL_RegisterACM(unsigned short formatTag);
- int DXL_RegisterDK4(void);
- int DXL_RegisterMP3(void);
- #if defined(__cplusplus)
- }
- #endif
- #endif
|