aboutsummaryrefslogtreecommitdiffstats
path: root/core/voice_change.h
blob: ddc6186f5da2f75fb3a416c983dd75c9848a34c7 (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
#ifndef VOICE_CHANGE_H
#define VOICE_CHANGE_H

#include <atomic>

#include "almalloc.h"

struct Voice;

using uint = unsigned int;


enum class VChangeState {
    Reset,
    Stop,
    Play,
    Pause,
    Restart
};
struct VoiceChange {
    Voice *mOldVoice{nullptr};
    Voice *mVoice{nullptr};
    uint mSourceID{0};
    VChangeState mState{};

    std::atomic<VoiceChange*> mNext{nullptr};

    DEF_NEWDEL(VoiceChange)
};

#endif /* VOICE_CHANGE_H */