summaryrefslogtreecommitdiff
path: root/include/Z2AudioCS/SpkSystem.h
blob: 05541c72e5c0d5727f4d957c4909b5a6aa602e74 (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
30
31
32
33
34
35
36
37
38
#ifndef Z2AUDIOCS_SPKSYSTEM_H
#define Z2AUDIOCS_SPKSYSTEM_H

#include "Z2AudioCS/SpkData.h"
#include "Z2AudioCS/SpkMixingBuffer.h"
#include "Z2AudioCS/SpkSound.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JKernel/JKRHeap.h"
#include <revolution/types.h>

class SpkSystem : protected JASGlobalInstance<SpkSystem> {
public:
    SpkSystem(JKRHeap* heap);
    void setResource(JKRArchive* resArc, u16, u16);
    void framework(void);
    void startSound(s32 chan, s32 param_1, SpkSoundHandle* handle);
    void startLevelSound(s32 chan, s32 param_1, SpkSoundHandle* handle);
    void stopAll(s32 chan, s32 msec);
    void setMasterVolume(f32 vol);
    f32 getMasterVolume(void);
    void setConfigVolume(s32 vol);
    static void newSoundMemPool(s32 numOfSound);
    static void connect(s32 chan);
    static void disconnect(s32 chan);
    static void extensionProcess(s32, s32);

    inline SpkData* getData(void) const { return mData; }
    inline SpkMixingBuffer* getMixingBuffer(void) const { return mMixingBuffer; }

private:
    /* 0x00 */ JKRHeap* mHeap;
    /* 0x04 */ SpkData* mData;
    /* 0x08 */ SpkMixingBuffer* mMixingBuffer;
    /* 0x0C */ SpkSoundHolder* mSoundHolder;
};

#endif /* Z2AUDIOCS_SPKSYSTEM_H */