VSF Documented
SDL_events.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __VSF_SDL2_EVENTS_H__
19#define __VSF_SDL2_EVENTS_H__
20
21/*============================ INCLUDES ======================================*/
22
23#include "../../vsf_sdl2_cfg.h"
24
25#if VSF_USE_SDL2 == ENABLED
26
27#include "vsf.h"
28
29#include "SDL_stdinc.h"
30
31#include "SDL_keyboard.h"
32#include "SDL_mouse.h"
33//#include "SDL_joystick.h"
34//#include "SDL_gamecontroller.h"
35//#include "SDL_touch.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/*============================ MACROS ========================================*/
42/*============================ MACROFIED FUNCTIONS ===========================*/
43
44#if VSF_SDL_CFG_WRAPPER == ENABLED
45#define SDL_PollEvent VSF_SDL_WRAPPER(SDL_PollEvent)
46#define SDL_WaitEventTimeout VSF_SDL_WRAPPER(SDL_WaitEventTimeout)
47#define SDL_WaitEvent VSF_SDL_WRAPPER(SDL_WaitEvent)
48#define SDL_FlushEvent VSF_SDL_WRAPPER(SDL_FlushEvent)
49#define SDL_EventState VSF_SDL_WRAPPER(SDL_EventState)
50#define SDL_PumpEvents VSF_SDL_WRAPPER(SDL_PumpEvents)
51#endif
52
53/*============================ MACROS ========================================*/
54/*============================ TYPES =========================================*/
55
56// events
57enum {
64};
65
66typedef enum {
69 SDL_QUIT = 0x100,
70
73
74 SDL_KEYDOWN = 0x300,
78
83
91
98
102
103 SDL_DROPFILE = 0x1000,
107
110
111#if VSF_SDL_CFG_V1_COMPATIBLE == ENABLED
113#endif
114
116 SDL_LASTEVENT = 0xFFFF
118
119enum {
129};
130
131typedef struct SDL_KeyboardEvent {
139
140typedef int SDL_JoystickID;
142typedef struct SDL_JoyHatEvent {
149typedef struct SDL_JoyAxisEvent {
156typedef struct SDL_JoyBallEvent {
164typedef struct SDL_JoyButtonEvent {
171typedef struct SDL_JoyDeviceEvent {
201 float x;
202 float y;
203 float pressure;
210 float data[3];
212typedef struct SDL_MouseMotionEvent {
223enum {
229};
230typedef struct SDL_MouseButtonEvent {
241typedef struct SDL_MouseWheelEvent {
250typedef enum {
267typedef struct SDL_WindowEvent {
275#define SDL_TEXTINPUTEVENT_TEXT_SIZE 32
276typedef struct SDL_TextInputEvent {
282typedef struct SDL_DropEvent {
285 // file should be allocated by SDL_malloc
286 // user should call SDL_free to free file
287 char *file;
290typedef struct SDL_UserEvent {
294 void *data1;
295 void *data2;
297
298typedef struct SDL_Cursor SDL_Cursor;
299typedef enum SDL_SystemCursor {
303
304#if VSF_SDL_CFG_V1_COMPATIBLE == ENABLED
305enum {
309};
310typedef struct SDL_ActiveEvent {
315#endif
316
317typedef enum SDL_eventaction {
322
323typedef union SDL_Event {
326
340
344
346
347#if VSF_SDL_CFG_V1_COMPATIBLE == ENABLED
349#endif
351
352/*============================ GLOBAL VARIABLES ==============================*/
353/*============================ LOCAL VARIABLES ===============================*/
354/*============================ PROTOTYPES ====================================*/
355
356extern int SDL_PollEvent(SDL_Event * event);
357extern int SDL_PollEvent(SDL_Event * event);
358extern int SDL_WaitEventTimeout(SDL_Event * event, int timeout);
359extern void SDL_FlushEvent(uint32_t type);
361extern void SDL_PumpEvents(void);
362extern int SDL_PeepEvents(SDL_Event * events, int numevents, SDL_eventaction action, uint32_t minType, uint32_t maxType);
363extern int SDL_PushEvent(SDL_Event * event);
364extern uint32_t SDL_RegisterEvents(int numevents);
365
366#ifdef __cplusplus
367}
368#endif
369
370#endif // VSF_USE_SDL
371#endif // __VSF_SDL2_EVENTS_H__
#define SDL_PollEvent
Definition SDL_events.h:45
@ SDL_BUTTON_X2
Definition SDL_events.h:228
@ SDL_BUTTON_X1
Definition SDL_events.h:227
@ SDL_BUTTON_RIGHT
Definition SDL_events.h:226
@ SDL_BUTTON_LEFT
Definition SDL_events.h:224
@ SDL_BUTTON_MIDDLE
Definition SDL_events.h:225
SDL_EventType
Definition SDL_events.h:66
@ SDL_MOUSEMOTION
Definition SDL_events.h:79
@ SDL_JOYDEVICEADDED
Definition SDL_events.h:89
@ SDL_DROPBEGIN
Definition SDL_events.h:105
@ SDL_FINGERMOTION
Definition SDL_events.h:101
@ SDL_TEXTEDITING
Definition SDL_events.h:76
@ SDL_DROPTEXT
Definition SDL_events.h:104
@ SDL_QUIT
Definition SDL_events.h:69
@ SDL_JOYBUTTONDOWN
Definition SDL_events.h:87
@ SDL_USEREVENT
Definition SDL_events.h:115
@ SDL_MOUSEBUTTONUP
Definition SDL_events.h:81
@ SDL_JOYDEVICEREMOVED
Definition SDL_events.h:90
@ SDL_TEXTINPUT
Definition SDL_events.h:77
@ SDL_DUMMYEVENT
Definition SDL_events.h:68
@ SDL_WINDOWEVENT
Definition SDL_events.h:71
@ SDL_MOUSEWHEEL
Definition SDL_events.h:82
@ SDL_SYSWMEVENT
Definition SDL_events.h:72
@ SDL_JOYBUTTONUP
Definition SDL_events.h:88
@ SDL_JOYBALLMOTION
Definition SDL_events.h:85
@ SDL_ACTIVEEVENT
Definition SDL_events.h:112
@ SDL_FINGERUP
Definition SDL_events.h:100
@ SDL_CONTROLLERBUTTONUP
Definition SDL_events.h:94
@ SDL_MOUSEBUTTONDOWN
Definition SDL_events.h:80
@ SDL_CONTROLLERDEVICEADDED
Definition SDL_events.h:95
@ SDL_FINGERDOWN
Definition SDL_events.h:99
@ SDL_DROPCOMPLETE
Definition SDL_events.h:106
@ SDL_CONTROLLERBUTTONDOWN
Definition SDL_events.h:93
@ SDL_CONTROLLERAXISMOTION
Definition SDL_events.h:92
@ SDL_KEYDOWN
Definition SDL_events.h:74
@ SDL_AUDIODEVICEREMOVED
Definition SDL_events.h:109
@ SDL_DROPFILE
Definition SDL_events.h:103
@ SDL_AUDIODEVICEADDED
Definition SDL_events.h:108
@ SDL_KEYUP
Definition SDL_events.h:75
@ SDL_CONTROLLERDEVICEREMOVED
Definition SDL_events.h:96
@ SDL_CONTROLLERDEVICEREMAPPED
Definition SDL_events.h:97
@ SDL_JOYAXISMOTION
Definition SDL_events.h:84
@ SDL_JOYHATMOTION
Definition SDL_events.h:86
@ SDL_FIRSTEVENT
Definition SDL_events.h:67
@ SDL_LASTEVENT
Definition SDL_events.h:116
int SDL_PeepEvents(SDL_Event *events, int numevents, SDL_eventaction action, uint32_t minType, uint32_t maxType)
Definition vsf_sdl2_event.c:758
SDL_SystemCursor
Definition SDL_events.h:299
@ SDL_SYSTEM_CURSOR_ARROW
Definition SDL_events.h:300
@ SDL_NUM_SYSTEM_CURSORS
Definition SDL_events.h:301
#define SDL_FlushEvent
Definition SDL_events.h:48
#define SDL_TEXTINPUTEVENT_TEXT_SIZE
Definition SDL_events.h:275
int SDL_JoystickID
Definition SDL_events.h:140
struct SDL_Cursor SDL_Cursor
Definition SDL_events.h:298
struct SDL_Joystick SDL_Joystick
Definition SDL_events.h:141
@ SDL_HAT_CENTERED
Definition SDL_events.h:120
@ SDL_HAT_RIGHTUP
Definition SDL_events.h:125
@ SDL_HAT_LEFT
Definition SDL_events.h:124
@ SDL_HAT_LEFTDOWN
Definition SDL_events.h:128
@ SDL_HAT_LEFTUP
Definition SDL_events.h:127
@ SDL_HAT_DOWN
Definition SDL_events.h:123
@ SDL_HAT_UP
Definition SDL_events.h:121
@ SDL_HAT_RIGHTDOWN
Definition SDL_events.h:126
@ SDL_HAT_RIGHT
Definition SDL_events.h:122
#define SDL_EventState
Definition SDL_events.h:49
SDL_eventaction
Definition SDL_events.h:317
@ SDL_ADDEVENT
Definition SDL_events.h:318
@ SDL_PEEKEVENT
Definition SDL_events.h:319
@ SDL_GETEVENT
Definition SDL_events.h:320
@ SDL_APPMOUSEFOCUS
Definition SDL_events.h:306
@ SDL_APPINPUTFOCUS
Definition SDL_events.h:307
@ SDL_APPACTIVE
Definition SDL_events.h:308
@ SDL_IGNORE
Definition SDL_events.h:59
@ SDL_QUERY
Definition SDL_events.h:58
@ SDL_ENABLE
Definition SDL_events.h:61
@ SDL_PRESSED
Definition SDL_events.h:63
@ SDL_DISABLE
Definition SDL_events.h:60
@ SDL_RELEASED
Definition SDL_events.h:62
#define SDL_WaitEventTimeout
Definition SDL_events.h:46
SDL_WindowEventID
Definition SDL_events.h:250
@ SDL_WINDOWEVENT_HIDDEN
Definition SDL_events.h:253
@ SDL_WINDOWEVENT_FOCUS_LOST
Definition SDL_events.h:264
@ SDL_WINDOWEVENT_CLOSE
Definition SDL_events.h:265
@ SDL_WINDOWEVENT_RESIZED
Definition SDL_events.h:256
@ SDL_WINDOWEVENT_FOCUS_GAINED
Definition SDL_events.h:263
@ SDL_WINDOWEVENT_SHOWN
Definition SDL_events.h:252
@ SDL_WINDOWEVENT_MOVED
Definition SDL_events.h:255
@ SDL_WINDOWEVENT_MINIMIZED
Definition SDL_events.h:258
@ SDL_WINDOWEVENT_LEAVE
Definition SDL_events.h:262
@ SDL_WINDOWEVENT_MAXIMIZED
Definition SDL_events.h:259
@ SDL_WINDOWEVENT_SIZE_CHANGED
Definition SDL_events.h:257
@ SDL_WINDOWEVENT_RESTORED
Definition SDL_events.h:260
@ SDL_WINDOWEVENT_EXPOSED
Definition SDL_events.h:254
@ SDL_WINDOWEVENT_ENTER
Definition SDL_events.h:261
@ SDL_WINDOWEVENT_NONE
Definition SDL_events.h:251
int SDL_PushEvent(SDL_Event *event)
Definition vsf_sdl2_event.c:568
#define SDL_PumpEvents
Definition SDL_events.h:50
uint32_t SDL_RegisterEvents(int numevents)
Definition vsf_sdl2_event.c:872
__le16 timeout
Definition ieee80211.h:94
u8 action
Definition ieee80211.h:120
unsigned uint32_t
Definition stdint.h:9
int int32_t
Definition stdint.h:8
short int16_t
Definition stdint.h:6
unsigned char uint8_t
Definition stdint.h:5
Definition SDL_events.h:310
uint8_t gain
Definition SDL_events.h:312
uint8_t state
Definition SDL_events.h:313
uint8_t type
Definition SDL_events.h:311
Definition SDL_events.h:188
SDL_JoystickID which
Definition SDL_events.h:191
uint32_t timestamp
Definition SDL_events.h:190
uint8_t axis
Definition SDL_events.h:192
int16_t value
Definition SDL_events.h:193
uint32_t type
Definition SDL_events.h:189
Definition SDL_events.h:181
uint8_t state
Definition SDL_events.h:186
uint32_t type
Definition SDL_events.h:182
uint32_t timestamp
Definition SDL_events.h:183
SDL_JoystickID which
Definition SDL_events.h:184
uint8_t button
Definition SDL_events.h:185
Definition SDL_events.h:176
uint32_t timestamp
Definition SDL_events.h:178
uint32_t type
Definition SDL_events.h:177
int32_t which
Definition SDL_events.h:179
Definition SDL_events.h:205
float data[3]
Definition SDL_events.h:210
uint32_t type
Definition SDL_events.h:206
int32_t sendor
Definition SDL_events.h:209
SDL_JoystickID which
Definition SDL_events.h:208
uint32_t timestamp
Definition SDL_events.h:207
Definition SDL_events.h:195
uint32_t type
Definition SDL_events.h:196
SDL_JoystickID which
Definition SDL_events.h:198
float pressure
Definition SDL_events.h:203
float y
Definition SDL_events.h:202
uint32_t timestamp
Definition SDL_events.h:197
int32_t finger
Definition SDL_events.h:200
float x
Definition SDL_events.h:201
int32_t touchpad
Definition SDL_events.h:199
Definition SDL_events.h:282
uint32_t timestamp
Definition SDL_events.h:284
uint32_t type
Definition SDL_events.h:283
char * file
Definition SDL_events.h:287
uint32_t windowID
Definition SDL_events.h:288
Definition SDL_events.h:149
uint32_t type
Definition SDL_events.h:150
SDL_JoystickID which
Definition SDL_events.h:152
uint32_t timestamp
Definition SDL_events.h:151
uint8_t axis
Definition SDL_events.h:153
int16_t value
Definition SDL_events.h:154
Definition SDL_events.h:156
int16_t xrel
Definition SDL_events.h:161
uint32_t timestamp
Definition SDL_events.h:158
SDL_JoystickID which
Definition SDL_events.h:159
int16_t yrel
Definition SDL_events.h:162
uint32_t type
Definition SDL_events.h:157
uint8_t ball
Definition SDL_events.h:160
Definition SDL_events.h:164
SDL_JoystickID which
Definition SDL_events.h:167
uint32_t type
Definition SDL_events.h:165
uint8_t state
Definition SDL_events.h:169
uint32_t timestamp
Definition SDL_events.h:166
uint8_t button
Definition SDL_events.h:168
Definition SDL_events.h:171
uint32_t timestamp
Definition SDL_events.h:173
int32_t which
Definition SDL_events.h:174
uint32_t type
Definition SDL_events.h:172
Definition SDL_events.h:142
uint32_t type
Definition SDL_events.h:143
uint32_t timestamp
Definition SDL_events.h:144
uint8_t value
Definition SDL_events.h:147
SDL_JoystickID which
Definition SDL_events.h:145
uint8_t hat
Definition SDL_events.h:146
Definition SDL_events.h:131
SDL_Keysym keysym
Definition SDL_events.h:135
uint32_t timestamp
Definition SDL_events.h:133
uint8_t state
Definition SDL_events.h:136
uint32_t type
Definition SDL_events.h:132
uint8_t repeat
Definition SDL_events.h:137
uint32_t windowID
Definition SDL_events.h:134
Definition SDL_keyboard.h:48
Definition SDL_events.h:230
uint32_t which
Definition SDL_events.h:234
uint32_t type
Definition SDL_events.h:231
uint8_t button
Definition SDL_events.h:235
uint8_t clicks
Definition SDL_events.h:237
uint8_t state
Definition SDL_events.h:236
uint32_t windowID
Definition SDL_events.h:233
int32_t x
Definition SDL_events.h:238
uint32_t timestamp
Definition SDL_events.h:232
int32_t y
Definition SDL_events.h:239
Definition SDL_events.h:212
uint32_t type
Definition SDL_events.h:213
int32_t x
Definition SDL_events.h:218
uint32_t state
Definition SDL_events.h:217
int32_t xrel
Definition SDL_events.h:220
int32_t y
Definition SDL_events.h:219
int32_t yrel
Definition SDL_events.h:221
uint32_t which
Definition SDL_events.h:216
uint32_t timestamp
Definition SDL_events.h:214
uint32_t windowID
Definition SDL_events.h:215
Definition SDL_events.h:241
uint32_t direction
Definition SDL_events.h:248
uint32_t type
Definition SDL_events.h:242
int32_t y
Definition SDL_events.h:247
int32_t x
Definition SDL_events.h:246
uint32_t timestamp
Definition SDL_events.h:243
uint32_t windowID
Definition SDL_events.h:244
uint32_t which
Definition SDL_events.h:245
Definition SDL_events.h:276
char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]
Definition SDL_events.h:280
uint32_t timestamp
Definition SDL_events.h:278
uint32_t type
Definition SDL_events.h:277
uint32_t windowID
Definition SDL_events.h:279
Definition SDL_events.h:290
uint32_t type
Definition SDL_events.h:291
void * data2
Definition SDL_events.h:295
void * data1
Definition SDL_events.h:294
int32_t code
Definition SDL_events.h:293
uint32_t timestamp
Definition SDL_events.h:292
Definition SDL_events.h:267
int32_t data2
Definition SDL_events.h:273
uint32_t windowID
Definition SDL_events.h:270
uint32_t timestamp
Definition SDL_events.h:269
int32_t data1
Definition SDL_events.h:272
uint32_t type
Definition SDL_events.h:268
uint8_t event
Definition SDL_events.h:271
Definition SDL_events.h:323
uint32_t type
Definition SDL_events.h:324
SDL_JoyDeviceEvent jdevice
Definition SDL_events.h:331
SDL_MouseWheelEvent wheel
Definition SDL_events.h:334
SDL_JoyHatEvent jhat
Definition SDL_events.h:329
SDL_JoyButtonEvent jbutton
Definition SDL_events.h:330
SDL_WindowEvent window
Definition SDL_events.h:341
SDL_TextInputEvent text
Definition SDL_events.h:342
SDL_ControllerAxisEvent caxis
Definition SDL_events.h:337
SDL_MouseButtonEvent button
Definition SDL_events.h:333
SDL_UserEvent user
Definition SDL_events.h:345
SDL_ActiveEvent active
Definition SDL_events.h:348
SDL_KeyboardEvent key
Definition SDL_events.h:325
SDL_MouseMotionEvent motion
Definition SDL_events.h:332
SDL_JoyAxisEvent jaxis
Definition SDL_events.h:327
SDL_DropEvent drop
Definition SDL_events.h:343
SDL_ControllerDeviceEvent cdevice
Definition SDL_events.h:335
SDL_ControllerSensorEvent csensor
Definition SDL_events.h:339
SDL_JoyBallEvent jball
Definition SDL_events.h:328
SDL_ControllerButtonEvent cbutton
Definition SDL_events.h:336
SDL_ControllerTouchpadEvent ctouchpad
Definition SDL_events.h:338
vk_av_control_type_t type
Definition vsf_audio.h:170
uint8_t state
Definition vsf_msg_tree.h:247
struct event_t events[32]
Definition vsf_xboot.c:36