thunderbrew/src/event/Event.hpp

59 lines
1.6 KiB
C++
Raw Normal View History

2023-01-02 13:17:18 -06:00
#ifndef EVENT_EVENT_HPP
#define EVENT_EVENT_HPP
#include "event/CEvent.hpp"
#include "event/Types.hpp"
#include <cstdint>
#include <storm/Array.hpp>
#include <storm/Atomic.hpp>
#include <storm/List.hpp>
#include <storm/Thread.hpp>
class EvtContext;
class EvtThread;
namespace Event {
extern SEvent s_startEvent;
extern SEvent s_shutdownEvent;
extern int32_t s_netServer;
extern int32_t s_originalThreadPriority;
extern int32_t s_threadSlotCount;
extern SCritSect* s_threadSlotCritsects;
extern EvtThread** s_threadSlots;
extern uint32_t s_mainThread;
extern TSGrowableArray<SThread*> s_schedulerThreads;
extern ATOMIC32 s_threadListContention;
extern SCritSect s_threadListCritsect;
extern TSList<EvtThread, TSGetLink<EvtThread>> s_threadList;
extern EvtContext* s_currentEvtContext;
extern ATOMIC32 s_interactiveCount;
#if defined(WHOA_SYSTEM_MAC)
extern bool s_shouldLoopTerminate;
#endif
}
HEVENTCONTEXT EventCreateContextEx(int32_t interactive, int32_t (*initializeHandler)(const void*, void*), int32_t (*destroyHandler)(const void*, void*), uint32_t idleTime, uint32_t debugFlags);
void EventDoMessageLoop();
void EventInitialize(int32_t threadCount, int32_t netServer);
2023-01-02 15:37:41 -06:00
void EventInitiateShutdown();
2023-01-02 13:17:18 -06:00
int32_t EventIsControlKeyDown();
int32_t EventIsKeyDown(KEY key);
int32_t EventIsShiftKeyDown();
void EventPostCloseEx(HEVENTCONTEXT contextHandle);
void EventRegister(EVENTID id, int32_t (*handler)(const void*, void*));
void EventRegisterEx(EVENTID id, int32_t (*handler)(const void*, void*), void* param, float priority);
void OsNetPump(uint32_t timeout);
#endif