summaryrefslogtreecommitdiff
path: root/include/audiomgr.h
blob: c9780d3779f4300acbf0c267ba825a2313a2c757 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef AUDIOMGR_H
#define AUDIOMGR_H

#include "ultra64.h"
#include "unk.h"
#include "irqmgr.h"
#include "scheduler.h"
#include "z64audio.h"

typedef struct AudioMgr {
    /* 0x000 */ IrqMgr* irqMgr;
    /* 0x004 */ Scheduler* sched;
    /* 0x008 */ OSScTask audioTask;
    /* 0x060 */ AudioTask* rspTask;
    /* 0x064 */ OSMesgQueue interruptQueue;
    /* 0x07C */ OSMesg interruptMsgBuf[30];
    /* 0x0F4 */ OSMesgQueue cmdQueue;
    /* 0x10C */ OSMesg cmdMsgBuf[1];
    /* 0x110 */ OSMesgQueue lockQueue;
    /* 0x128 */ OSMesg lockMsgBuf[1];
    /* 0x12C */ UNK_TYPE1 pad_12C[0x4];
    /* 0x130 */ OSThread thread;
} AudioMgr; // size = 0x2E0

void AudioMgr_StopAllSfxExceptSystem(void);
void AudioMgr_Unlock(AudioMgr* audioMgr);
void AudioMgr_Init(AudioMgr* audioMgr, void* stack, OSPri pri, OSId id, Scheduler* sched, IrqMgr* irqMgr);

#endif