Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00042 #ifndef _orxEVENT_H_
00043 #define _orxEVENT_H_
00044
00045 #include "orxInclude.h"
00046
00047
00050 #define orxEVENT_INIT(EVENT, TYPE, ID, SENDER, RECIPIENT, PAYLOAD) \
00051 do \
00052 { \
00053 EVENT.eType = (orxEVENT_TYPE)(TYPE); \
00054 EVENT.eID = (orxENUM)(ID); \
00055 EVENT.hSender = (orxHANDLE)(SENDER); \
00056 EVENT.hRecipient = (orxHANDLE)(RECIPIENT); \
00057 EVENT.pstPayload = (void *)(PAYLOAD); \
00058 } while(orxFALSE)
00059
00060 #define orxEVENT_SEND(TYPE, ID, SENDER, RECIPIENT, PAYLOAD) \
00061 do \
00062 { \
00063 orxEVENT stEvent; \
00064 orxEVENT_INIT(stEvent, TYPE, ID, SENDER, RECIPIENT, PAYLOAD); \
00065 orxEvent_Send(&stEvent); \
00066 } while(orxFALSE)
00067
00068
00071 typedef enum __orxEVENT_TYPE_t
00072 {
00073 orxEVENT_TYPE_ANIM = 0,
00074 orxEVENT_TYPE_CLOCK,
00075 orxEVENT_TYPE_CONFIG,
00076 orxEVENT_TYPE_DISPLAY,
00077 orxEVENT_TYPE_FX,
00078 orxEVENT_TYPE_INPUT,
00079 orxEVENT_TYPE_LOCALE,
00080 orxEVENT_TYPE_OBJECT,
00081 orxEVENT_TYPE_RENDER,
00082 orxEVENT_TYPE_PHYSICS,
00083 orxEVENT_TYPE_SHADER,
00084 orxEVENT_TYPE_SOUND,
00085 orxEVENT_TYPE_SPAWNER,
00086 orxEVENT_TYPE_SYSTEM,
00087 orxEVENT_TYPE_TEXTURE,
00088
00089 orxEVENT_TYPE_CORE_NUMBER,
00090
00091 orxEVENT_TYPE_FIRST_RESERVED = orxEVENT_TYPE_CORE_NUMBER,
00092
00093 orxEVENT_TYPE_LAST_RESERVED = 127,
00094
00095 orxEVENT_TYPE_USER_DEFINED,
00096
00097 orxEVENT_TYPE_NONE = orxENUM_NONE,
00098
00099 } orxEVENT_TYPE;
00100
00103 typedef struct __orxEVENT_t
00104 {
00105 orxEVENT_TYPE eType;
00106 orxENUM eID;
00107 orxHANDLE hSender;
00108 orxHANDLE hRecipient;
00109 void *pstPayload;
00111 } orxEVENT;
00112
00113
00117 typedef orxSTATUS (orxFASTCALL *orxEVENT_HANDLER)(const orxEVENT *_pstEvent);
00118
00119
00122 extern orxDLLAPI void orxFASTCALL orxEvent_Setup();
00123
00127 extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_Init();
00128
00131 extern orxDLLAPI void orxFASTCALL orxEvent_Exit();
00132
00138 extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_AddHandler(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler);
00139
00145 extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_RemoveHandler(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler);
00146
00151 extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_Send(const orxEVENT *_pstEvent);
00152
00158 extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_SendShort(orxEVENT_TYPE _eEventType, orxENUM _eEventID);
00159
00160 #endif
00161