| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #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
|