mirror of https://github.com/axmolengine/axmol.git
50 lines
932 B
C++
50 lines
932 B
C++
#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
|