summaryrefslogtreecommitdiff
path: root/include/egg/audio/eggAudioSystem.h
blob: 8ab478240f1be8f7dce1996781f672cf882d8b47 (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
39
40
41
42
43
44
45
46
47
48
#ifndef EGG_AUDIO_SYSTEM_H
#define EGG_AUDIO_SYSTEM_H

#include "common.h"

namespace EGG {

class AudioSystem {
public:
    AudioSystem();
    ~AudioSystem();

    // TODO - this seems to use milliseconds as the unit, but
    // calling code seems to pass frame counts...
    void reset(s32 ms);
    void recoverReset();
    // TODO - see reset
    void shutdown(s32 ms);
    void calc();

    // Non-official inline names
    bool isReset() {
        return mResetStatus == 2;
    }

    bool isShutdown() {
        return mShutdownStatus == 2;
    }

    bool isShuttingDown() {
        return mShutdownStatus != 0;
    }

    bool isResetting() {
        return mResetStatus != 0;
    }

    static AudioSystem *sInstanse; ///< sic

private:
    /* 0x00 */ f32 mSavedMasterVolume;
    /* 0x04 */ s32 mResetStatus;
    /* 0x08 */ s32 mShutdownStatus;
};

} // namespace EGG

#endif