12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #ifndef ALC_EVENT_H
- #define ALC_EVENT_H
- #include "almalloc.h"
- struct EffectState;
- enum class VChangeState;
- using uint = unsigned int;
- enum {
- /* End event thread processing. */
- EventType_KillThread = 0,
- /* User event types. */
- EventType_SourceStateChange = 1<<0,
- EventType_BufferCompleted = 1<<1,
- EventType_Disconnected = 1<<2,
- /* Internal events. */
- EventType_ReleaseEffectState = 65536,
- };
- struct AsyncEvent {
- uint EnumType{0u};
- union {
- char dummy;
- struct {
- uint id;
- VChangeState 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
|