DOOM64-RE

DOOM 64 Reverse Engineering
Log | Files | Refs | README | LICENSE

audio.h (2218B)


      1 #ifndef _AUDIO_H
      2 #define _AUDIO_H
      3 
      4 #include <ultra64.h>
      5 #include <PR/os.h>
      6 #include <PR/libaudio.h>
      7 #include <PR/ucode.h>
      8 
      9 #include "wessapi.h"
     10 #include "wessarc.h"
     11 #include "wessshell.h"
     12 
     13 /*--------------------------------------------------*/
     14 /*  type define's for structures unique to audiomgr */
     15 /*--------------------------------------------------*/
     16 
     17 typedef struct AudioInfo_s
     18 {
     19     short       *data;          /* Output data pointer */
     20     short       frameSamples;   /* # of samples synthesized in this frame */
     21     OSTask      task;           /* scheduler structure */
     22 } AudioInfo;
     23 
     24 #define    NUM_ACMD_LISTS 2
     25 #define    NUM_OUTPUT_BUFFERS 3
     26 
     27 typedef struct
     28 {
     29     Acmd          *ACMDList[NUM_ACMD_LISTS];
     30     AudioInfo     *audioInfo[NUM_OUTPUT_BUFFERS];
     31     ALGlobals     g;
     32 } AMAudioMgr;
     33 
     34 typedef struct
     35 {
     36     ALLink        node;         //0
     37     u32           startAddr;    //8
     38     u32           lastFrame;    //12
     39     char          *ptr;         //16
     40 } AMDMABuffer;
     41 
     42 typedef struct
     43 {
     44     u8            initialized;
     45     AMDMABuffer   *firstUsed;
     46     AMDMABuffer   *firstFree;
     47 } AMDMAState;
     48 
     49 extern AMAudioMgr   __am;			//800B4060
     50 extern ALVoice      *voice;			//800B40E0
     51 extern char         *reverb_status;	//800B40E4
     52 
     53 extern int wess_memfill(void *dst, unsigned char fill, int count);          // 8002E300
     54 extern int wess_rom_copy(char *src, char *dest, int len);                   // 8002E334
     55 extern s32 milli_to_param(register s32 paramvalue, register s32 rate);      // 8002E3D0
     56 extern void wess_init(WessConfig *wessconfig);                              // 8002E41C
     57 extern void amCreateAudioMgr(ALSynConfig *config, WessConfig *wessconfig);  // 8002E610
     58 extern OSTask * wess_work(void);                                            // 8002EB2C
     59 extern OSTask *__amHandleFrameMsg(AudioInfo *info);                         // 8002EBD8
     60 extern s32 __amDMA(s32 addr, s32 len, void *state);                         // 8002ED74
     61 extern ALDMAproc __amDmaNew(AMDMAState **state);                            // 8002EF48
     62 extern void __clearAudioDMA(void);                                          // 8002EF7C
     63 extern void wess_exit(void);                                                // 8002F0CC
     64 
     65 #endif // _AUDIO_H