|
|
- #ifndef CORE_EVENT_H
- #define CORE_EVENT_H
-
- #include "almalloc.h"
-
- struct EffectState;
-
- using uint = unsigned int;
-
-
- struct AsyncEvent {
- enum : uint {
- /* End event thread processing. */
- KillThread = 0,
-
- /* User event types. */
- SourceStateChange = 1<<0,
- BufferCompleted = 1<<1,
- Disconnected = 1<<2,
-
- /* Internal events. */
- ReleaseEffectState = 65536,
- };
-
- enum class SrcState {
- Reset,
- Stop,
- Play,
- Pause
- };
-
- uint EnumType{0u};
- union {
- char dummy;
- struct {
- uint id;
- SrcState state;
- } srcstate;
- struct {
- uint id;
- uint count;
- } bufcomp;
- struct {
- char msg[244];
- } disconnect;
- EffectState *mEffectState;
- } u{};
-
- AsyncEvent() noexcept = default;
- constexpr AsyncEvent(uint type) noexcept : EnumType{type} { }
-
- DISABLE_ALLOC()
- };
-
- #endif
|