61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
#ifndef _CPU_HLE_AUDIOLIB_
|
|
#define _CPU_HLE_AUDIOLIB_
|
|
|
|
|
|
|
|
#include "cpu_hle.h"
|
|
#include "os.h"
|
|
|
|
// a few of these structures/type were sequestered from SGI\Nindendo's code
|
|
|
|
typedef struct ALLink_s {
|
|
uint32_t next;
|
|
uint32_t prev;
|
|
} ALLink;
|
|
|
|
typedef struct {
|
|
ALLink freeList;
|
|
ALLink allocList;
|
|
int32_t eventCount;
|
|
} ALEventQueue;
|
|
|
|
|
|
typedef struct {
|
|
uint16_t type;
|
|
uint8_t msg[12];
|
|
} ALEvent;
|
|
|
|
|
|
typedef struct {
|
|
ALLink node;
|
|
int32_t delta; //microtime
|
|
ALEvent event;
|
|
} ALEventListItem;
|
|
|
|
int alCopy(usf_state_t *, int paddr);
|
|
int alLink(usf_state_t *, int paddr);
|
|
int alUnLink(usf_state_t *, int paddr);
|
|
int alEvtqPostEvent(usf_state_t *, int paddr) ;
|
|
int alEvtqPostEvent_Alt(usf_state_t *, int paddr);
|
|
int alAudioFrame(usf_state_t *, int paddr);
|
|
|
|
// need to remove these
|
|
|
|
typedef struct {
|
|
uint8_t *base;
|
|
uint8_t *cur;
|
|
int32_t len;
|
|
int32_t count;
|
|
} ALHeap;
|
|
|
|
typedef struct ALPlayer_s {
|
|
struct ALPlayer_s *next;
|
|
void *clientData;
|
|
void *handler;
|
|
int32_t callTime;
|
|
int32_t samplesLeft;
|
|
} ALPlayer;
|
|
|
|
|
|
#endif
|