orx 1.16
Portable Game Engine
Loading...
Searching...
No Matches
orxEvent.h
Go to the documentation of this file.
1/* Orx - Portable Game Engine
2 *
3 * Copyright (c) 2008- Orx-Project
4 *
5 * This software is provided 'as-is', without any express or implied
6 * warranty. In no event will the authors be held liable for any damages
7 * arising from the use of this software.
8 *
9 * Permission is granted to anyone to use this software for any purpose,
10 * including commercial applications, and to alter it and redistribute it
11 * freely, subject to the following restrictions:
12 *
13 * 1. The origin of this software must not be misrepresented; you must not
14 * claim that you wrote the original software. If you use this software
15 * in a product, an acknowledgment in the product documentation would be
16 * appreciated but is not required.
17 *
18 * 2. Altered source versions must be plainly marked as such, and must not be
19 * misrepresented as being the original software.
20 *
21 * 3. This notice may not be removed or altered from any source
22 * distribution.
23 */
24
32
40
41
42#ifndef _orxEVENT_H_
43#define _orxEVENT_H_
44
45#include "orxInclude.h"
46
47
50#define orxEVENT_INIT(EVENT, TYPE, ID, SENDER, RECIPIENT, PAYLOAD) \
51do \
52{ \
53 EVENT.eType = (orxEVENT_TYPE)(TYPE); \
54 EVENT.eID = (orxENUM)(ID); \
55 EVENT.hSender = (orxHANDLE)(SENDER); \
56 EVENT.hRecipient = (orxHANDLE)(RECIPIENT); \
57 EVENT.pstPayload = (void *)(PAYLOAD); \
58} while(orxFALSE)
59
60#define orxEVENT_SEND(TYPE, ID, SENDER, RECIPIENT, PAYLOAD) \
61do \
62{ \
63 orxEVENT stEvent; \
64 orxEVENT_INIT(stEvent, TYPE, ID, SENDER, RECIPIENT, PAYLOAD); \
65 orxEvent_Send(&stEvent); \
66} while(orxFALSE)
67
68#define orxEVENT_GET_FLAG(ID) ((orxU32)(1U << (orxU32)(ID)))
69#define orxEVENT_KU32_FLAG_ID_NONE 0x00000000
70#define orxEVENT_KU32_MASK_ID_ALL 0xFFFFFFFF
71
72
112
115typedef struct __orxEVENT_t
116{
118 orxENUM eID;
122 void *pContext;
123
124} orxEVENT;
125
126
130typedef orxSTATUS (orxFASTCALL *orxEVENT_HANDLER)(const orxEVENT *_pstEvent);
131
132
135extern orxDLLAPI void orxFASTCALL orxEvent_Setup();
136
140extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_Init();
141
144extern orxDLLAPI void orxFASTCALL orxEvent_Exit();
145
151extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_AddHandler(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler);
152
159extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_AddHandlerWithContext(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler, void *_pContext);
160
166extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_RemoveHandler(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler);
167
174extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_RemoveHandlerWithContext(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler, void *_pContext);
175
184extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_SetHandlerIDFlags(orxEVENT_HANDLER _pfnEventHandler, orxEVENT_TYPE _eEventType, void *_pContext, orxU32 _u32AddIDFlags, orxU32 _u32RemoveIDFlags);
185
190extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_Send(orxEVENT *_pstEvent);
191
197extern orxDLLAPI orxSTATUS orxFASTCALL orxEvent_SendShort(orxEVENT_TYPE _eEventType, orxENUM _eEventID);
198
202extern orxDLLAPI orxBOOL orxFASTCALL orxEvent_IsSending();
203
204#endif /*_orxEVENT_H_*/
205
#define orxDLLAPI
Definition orxDecl.h:381
orxDLLAPI void orxFASTCALL orxEvent_Exit()
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_RemoveHandler(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler)
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_SendShort(orxEVENT_TYPE _eEventType, orxENUM _eEventID)
orxDLLAPI void orxFASTCALL orxEvent_Setup()
orxEVENT_TYPE
Definition orxEvent.h:76
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_Init()
orxDLLAPI orxBOOL orxFASTCALL orxEvent_IsSending()
orxSTATUS(orxFASTCALL * orxEVENT_HANDLER)(const orxEVENT *_pstEvent)
Definition orxEvent.h:130
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_SetHandlerIDFlags(orxEVENT_HANDLER _pfnEventHandler, orxEVENT_TYPE _eEventType, void *_pContext, orxU32 _u32AddIDFlags, orxU32 _u32RemoveIDFlags)
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_RemoveHandlerWithContext(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler, void *_pContext)
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_AddHandlerWithContext(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler, void *_pContext)
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_Send(orxEVENT *_pstEvent)
orxDLLAPI orxSTATUS orxFASTCALL orxEvent_AddHandler(orxEVENT_TYPE _eEventType, orxEVENT_HANDLER _pfnEventHandler)
@ orxEVENT_TYPE_NONE
Definition orxEvent.h:109
@ orxEVENT_TYPE_FX
Definition orxEvent.h:81
@ orxEVENT_TYPE_RESOURCE
Definition orxEvent.h:87
@ orxEVENT_TYPE_ANIM
Definition orxEvent.h:77
@ orxEVENT_TYPE_CORE_NUMBER
Definition orxEvent.h:97
@ orxEVENT_TYPE_TIMELINE
Definition orxEvent.h:93
@ orxEVENT_TYPE_SPAWNER
Definition orxEvent.h:90
@ orxEVENT_TYPE_TRIGGER
Definition orxEvent.h:94
@ orxEVENT_TYPE_FIRST_EXTENSION
Definition orxEvent.h:103
@ orxEVENT_TYPE_PHYSICS
Definition orxEvent.h:86
@ orxEVENT_TYPE_TEXTURE
Definition orxEvent.h:92
@ orxEVENT_TYPE_SHADER
Definition orxEvent.h:88
@ orxEVENT_TYPE_FIRST_RESERVED
Definition orxEvent.h:99
@ orxEVENT_TYPE_LAST_EXTENSION
Definition orxEvent.h:105
@ orxEVENT_TYPE_SOUND
Definition orxEvent.h:89
@ orxEVENT_TYPE_OBJECT
Definition orxEvent.h:84
@ orxEVENT_TYPE_CONFIG
Definition orxEvent.h:79
@ orxEVENT_TYPE_CLOCK
Definition orxEvent.h:78
@ orxEVENT_TYPE_VIEWPORT
Definition orxEvent.h:95
@ orxEVENT_TYPE_RENDER
Definition orxEvent.h:85
@ orxEVENT_TYPE_DISPLAY
Definition orxEvent.h:80
@ orxEVENT_TYPE_LAST_RESERVED
Definition orxEvent.h:101
@ orxEVENT_TYPE_SYSTEM
Definition orxEvent.h:91
@ orxEVENT_TYPE_LOCALE
Definition orxEvent.h:83
@ orxEVENT_TYPE_INPUT
Definition orxEvent.h:82
@ orxEVENT_TYPE_USER_DEFINED
Definition orxEvent.h:107
void * orxHANDLE
Definition orxType.h:166
orxSTATUS
Definition orxType.h:270
orxEVENT_TYPE eType
Definition orxEvent.h:117
void * pContext
Definition orxEvent.h:122
orxENUM eID
Definition orxEvent.h:118
orxHANDLE hSender
Definition orxEvent.h:119
void * pstPayload
Definition orxEvent.h:121
orxHANDLE hRecipient
Definition orxEvent.h:120

Generated for orx by doxygen 1.8.11