| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,136 @@ | ||
| /* | ||
| Simple DirectMedia Layer | ||
| Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> | ||
| This software is provided 'as-is', without any express or implied | ||
| warranty. In no event will the authors be held liable for any damages | ||
| arising from the use of this software. | ||
| Permission is granted to anyone to use this software for any purpose, | ||
| including commercial applications, and to alter it and redistribute it | ||
| freely, subject to the following restrictions: | ||
| 1. The origin of this software must not be misrepresented; you must not | ||
| claim that you wrote the original software. If you use this software | ||
| in a product, an acknowledgment in the product documentation would be | ||
| appreciated but is not required. | ||
| 2. Altered source versions must be plainly marked as such, and must not be | ||
| misrepresented as being the original software. | ||
| 3. This notice may not be removed or altered from any source distribution. | ||
| */ | ||
|
|
||
| /** | ||
| * \file SDL_filesystem.h | ||
| * | ||
| * \brief Include file for filesystem SDL API functions | ||
| */ | ||
|
|
||
| #ifndef _SDL_filesystem_h | ||
| #define _SDL_filesystem_h | ||
|
|
||
| #include "SDL_stdinc.h" | ||
|
|
||
| #include "begin_code.h" | ||
|
|
||
| /* Set up for C function definitions, even when using C++ */ | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /** | ||
| * \brief Get the path where the application resides. | ||
| * | ||
| * Get the "base path". This is the directory where the application was run | ||
| * from, which is probably the installation directory, and may or may not | ||
| * be the process's current working directory. | ||
| * | ||
| * This returns an absolute path in UTF-8 encoding, and is guaranteed to | ||
| * end with a path separator ('\\' on Windows, '/' most other places). | ||
| * | ||
| * The pointer returned by this function is owned by you. Please call | ||
| * SDL_free() on the pointer when you are done with it, or it will be a | ||
| * memory leak. This is not necessarily a fast call, though, so you should | ||
| * call this once near startup and save the string if you need it. | ||
| * | ||
| * Some platforms can't determine the application's path, and on other | ||
| * platforms, this might be meaningless. In such cases, this function will | ||
| * return NULL. | ||
| * | ||
| * \return String of base dir in UTF-8 encoding, or NULL on error. | ||
| * | ||
| * \sa SDL_GetPrefPath | ||
| */ | ||
| extern DECLSPEC char *SDLCALL SDL_GetBasePath(void); | ||
|
|
||
| /** | ||
| * \brief Get the user-and-app-specific path where files can be written. | ||
| * | ||
| * Get the "pref dir". This is meant to be where users can write personal | ||
| * files (preferences and save games, etc) that are specific to your | ||
| * application. This directory is unique per user, per application. | ||
| * | ||
| * This function will decide the appropriate location in the native filesystem, | ||
| * create the directory if necessary, and return a string of the absolute | ||
| * path to the directory in UTF-8 encoding. | ||
| * | ||
| * On Windows, the string might look like: | ||
| * "C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\" | ||
| * | ||
| * On Linux, the string might look like: | ||
| * "/home/bob/.local/share/My Program Name/" | ||
| * | ||
| * On Mac OS X, the string might look like: | ||
| * "/Users/bob/Library/Application Support/My Program Name/" | ||
| * | ||
| * (etc.) | ||
| * | ||
| * You specify the name of your organization (if it's not a real organization, | ||
| * your name or an Internet domain you own might do) and the name of your | ||
| * application. These should be untranslated proper names. | ||
| * | ||
| * Both the org and app strings may become part of a directory name, so | ||
| * please follow these rules: | ||
| * | ||
| * - Try to use the same org string (including case-sensitivity) for | ||
| * all your applications that use this function. | ||
| * - Always use a unique app string for each one, and make sure it never | ||
| * changes for an app once you've decided on it. | ||
| * - Unicode characters are legal, as long as it's UTF-8 encoded, but... | ||
| * - ...only use letters, numbers, and spaces. Avoid punctuation like | ||
| * "Game Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient. | ||
| * | ||
| * This returns an absolute path in UTF-8 encoding, and is guaranteed to | ||
| * end with a path separator ('\\' on Windows, '/' most other places). | ||
| * | ||
| * The pointer returned by this function is owned by you. Please call | ||
| * SDL_free() on the pointer when you are done with it, or it will be a | ||
| * memory leak. This is not necessarily a fast call, though, so you should | ||
| * call this once near startup and save the string if you need it. | ||
| * | ||
| * You should assume the path returned by this function is the only safe | ||
| * place to write files (and that SDL_GetBasePath(), while it might be | ||
| * writable, or even the parent of the returned path, aren't where you | ||
| * should be writing things). | ||
| * | ||
| * Some platforms can't determine the pref path, and on other | ||
| * platforms, this might be meaningless. In such cases, this function will | ||
| * return NULL. | ||
| * | ||
| * \param org The name of your organization. | ||
| * \param app The name of your application. | ||
| * \return UTF-8 string of user dir in platform-dependent notation. NULL | ||
| * if there's a problem (creating directory failed, etc). | ||
| * | ||
| * \sa SDL_GetBasePath | ||
| */ | ||
| extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); | ||
|
|
||
| /* Ends C function definitions when using C++ */ | ||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #include "close_code.h" | ||
|
|
||
| #endif /* _SDL_system_h */ | ||
|
|
||
| /* vi: set ts=4 sw=4 expandtab: */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,316 @@ | ||
| /* | ||
| Simple DirectMedia Layer | ||
| Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> | ||
| This software is provided 'as-is', without any express or implied | ||
| warranty. In no event will the authors be held liable for any damages | ||
| arising from the use of this software. | ||
| Permission is granted to anyone to use this software for any purpose, | ||
| including commercial applications, and to alter it and redistribute it | ||
| freely, subject to the following restrictions: | ||
| 1. The origin of this software must not be misrepresented; you must not | ||
| claim that you wrote the original software. If you use this software | ||
| in a product, an acknowledgment in the product documentation would be | ||
| appreciated but is not required. | ||
| 2. Altered source versions must be plainly marked as such, and must not be | ||
| misrepresented as being the original software. | ||
| 3. This notice may not be removed or altered from any source distribution. | ||
| */ | ||
|
|
||
| /** | ||
| * \file SDL_gamecontroller.h | ||
| * | ||
| * Include file for SDL game controller event handling | ||
| */ | ||
|
|
||
| #ifndef _SDL_gamecontroller_h | ||
| #define _SDL_gamecontroller_h | ||
|
|
||
| #include "SDL_stdinc.h" | ||
| #include "SDL_error.h" | ||
| #include "SDL_rwops.h" | ||
| #include "SDL_joystick.h" | ||
|
|
||
| #include "begin_code.h" | ||
| /* Set up for C function definitions, even when using C++ */ | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /** | ||
| * \file SDL_gamecontroller.h | ||
| * | ||
| * In order to use these functions, SDL_Init() must have been called | ||
| * with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system | ||
| * for game controllers, and load appropriate drivers. | ||
| * | ||
| * If you would like to receive controller updates while the application | ||
| * is in the background, you should set the following hint before calling | ||
| * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS | ||
| */ | ||
|
|
||
| /* The gamecontroller structure used to identify an SDL game controller */ | ||
| struct _SDL_GameController; | ||
| typedef struct _SDL_GameController SDL_GameController; | ||
|
|
||
|
|
||
| typedef enum | ||
| { | ||
| SDL_CONTROLLER_BINDTYPE_NONE = 0, | ||
| SDL_CONTROLLER_BINDTYPE_BUTTON, | ||
| SDL_CONTROLLER_BINDTYPE_AXIS, | ||
| SDL_CONTROLLER_BINDTYPE_HAT | ||
| } SDL_GameControllerBindType; | ||
|
|
||
| /** | ||
| * Get the SDL joystick layer binding for this controller button/axis mapping | ||
| */ | ||
| typedef struct SDL_GameControllerButtonBind | ||
| { | ||
| SDL_GameControllerBindType bindType; | ||
| union | ||
| { | ||
| int button; | ||
| int axis; | ||
| struct { | ||
| int hat; | ||
| int hat_mask; | ||
| } hat; | ||
| } value; | ||
|
|
||
| } SDL_GameControllerButtonBind; | ||
|
|
||
|
|
||
| /** | ||
| * To count the number of game controllers in the system for the following: | ||
| * int nJoysticks = SDL_NumJoysticks(); | ||
| * int nGameControllers = 0; | ||
| * for ( int i = 0; i < nJoysticks; i++ ) { | ||
| * if ( SDL_IsGameController(i) ) { | ||
| * nGameControllers++; | ||
| * } | ||
| * } | ||
| * | ||
| * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: | ||
| * guid,name,mappings | ||
| * | ||
| * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. | ||
| * Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. | ||
| * The mapping format for joystick is: | ||
| * bX - a joystick button, index X | ||
| * hX.Y - hat X with value Y | ||
| * aX - axis X of the joystick | ||
| * Buttons can be used as a controller axis and vice versa. | ||
| * | ||
| * This string shows an example of a valid mapping for a controller | ||
| * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", | ||
| * | ||
| */ | ||
|
|
||
| /** | ||
| * Load a set of mappings from a seekable SDL data stream (memory or file), filtered by the current SDL_GetPlatform() | ||
| * A community sourced database of controllers is available at https://raw.github.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt | ||
| * | ||
| * If \c freerw is non-zero, the stream will be closed after being read. | ||
| * | ||
| * \return number of mappings added, -1 on error | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, int freerw ); | ||
|
|
||
| /** | ||
| * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() | ||
| * | ||
| * Convenience macro. | ||
| */ | ||
| #define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1) | ||
|
|
||
| /** | ||
| * Add or update an existing mapping configuration | ||
| * | ||
| * \return 1 if mapping is added, 0 if updated, -1 on error | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping( const char* mappingString ); | ||
|
|
||
| /** | ||
| * Get a mapping string for a GUID | ||
| * | ||
| * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available | ||
| */ | ||
| extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); | ||
|
|
||
| /** | ||
| * Get a mapping string for an open GameController | ||
| * | ||
| * \return the mapping string. Must be freed with SDL_free. Returns NULL if no mapping is available | ||
| */ | ||
| extern DECLSPEC char * SDLCALL SDL_GameControllerMapping( SDL_GameController * gamecontroller ); | ||
|
|
||
| /** | ||
| * Is the joystick on this index supported by the game controller interface? | ||
| */ | ||
| extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); | ||
|
|
||
|
|
||
| /** | ||
| * Get the implementation dependent name of a game controller. | ||
| * This can be called before any controllers are opened. | ||
| * If no name can be found, this function returns NULL. | ||
| */ | ||
| extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index); | ||
|
|
||
| /** | ||
| * Open a game controller for use. | ||
| * The index passed as an argument refers to the N'th game controller on the system. | ||
| * This index is the value which will identify this controller in future controller | ||
| * events. | ||
| * | ||
| * \return A controller identifier, or NULL if an error occurred. | ||
| */ | ||
| extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index); | ||
|
|
||
| /** | ||
| * Return the name for this currently opened controller | ||
| */ | ||
| extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); | ||
|
|
||
| /** | ||
| * Returns SDL_TRUE if the controller has been opened and currently connected, | ||
| * or SDL_FALSE if it has not. | ||
| */ | ||
| extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); | ||
|
|
||
| /** | ||
| * Get the underlying joystick object used by a controller | ||
| */ | ||
| extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); | ||
|
|
||
| /** | ||
| * Enable/disable controller event polling. | ||
| * | ||
| * If controller events are disabled, you must call SDL_GameControllerUpdate() | ||
| * yourself and check the state of the controller when you want controller | ||
| * information. | ||
| * | ||
| * The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE. | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state); | ||
|
|
||
| /** | ||
| * Update the current state of the open game controllers. | ||
| * | ||
| * This is called automatically by the event loop if any game controller | ||
| * events are enabled. | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); | ||
|
|
||
|
|
||
| /** | ||
| * The list of axes available from a controller | ||
| */ | ||
| typedef enum | ||
| { | ||
| SDL_CONTROLLER_AXIS_INVALID = -1, | ||
| SDL_CONTROLLER_AXIS_LEFTX, | ||
| SDL_CONTROLLER_AXIS_LEFTY, | ||
| SDL_CONTROLLER_AXIS_RIGHTX, | ||
| SDL_CONTROLLER_AXIS_RIGHTY, | ||
| SDL_CONTROLLER_AXIS_TRIGGERLEFT, | ||
| SDL_CONTROLLER_AXIS_TRIGGERRIGHT, | ||
| SDL_CONTROLLER_AXIS_MAX | ||
| } SDL_GameControllerAxis; | ||
|
|
||
| /** | ||
| * turn this string into a axis mapping | ||
| */ | ||
| extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *pchString); | ||
|
|
||
| /** | ||
| * turn this axis enum into a string mapping | ||
| */ | ||
| extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); | ||
|
|
||
| /** | ||
| * Get the SDL joystick layer binding for this controller button mapping | ||
| */ | ||
| extern DECLSPEC SDL_GameControllerButtonBind SDLCALL | ||
| SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, | ||
| SDL_GameControllerAxis axis); | ||
|
|
||
| /** | ||
| * Get the current state of an axis control on a game controller. | ||
| * | ||
| * The state is a value ranging from -32768 to 32767. | ||
| * | ||
| * The axis indices start at index 0. | ||
| */ | ||
| extern DECLSPEC Sint16 SDLCALL | ||
| SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, | ||
| SDL_GameControllerAxis axis); | ||
|
|
||
| /** | ||
| * The list of buttons available from a controller | ||
| */ | ||
| typedef enum | ||
| { | ||
| SDL_CONTROLLER_BUTTON_INVALID = -1, | ||
| SDL_CONTROLLER_BUTTON_A, | ||
| SDL_CONTROLLER_BUTTON_B, | ||
| SDL_CONTROLLER_BUTTON_X, | ||
| SDL_CONTROLLER_BUTTON_Y, | ||
| SDL_CONTROLLER_BUTTON_BACK, | ||
| SDL_CONTROLLER_BUTTON_GUIDE, | ||
| SDL_CONTROLLER_BUTTON_START, | ||
| SDL_CONTROLLER_BUTTON_LEFTSTICK, | ||
| SDL_CONTROLLER_BUTTON_RIGHTSTICK, | ||
| SDL_CONTROLLER_BUTTON_LEFTSHOULDER, | ||
| SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, | ||
| SDL_CONTROLLER_BUTTON_DPAD_UP, | ||
| SDL_CONTROLLER_BUTTON_DPAD_DOWN, | ||
| SDL_CONTROLLER_BUTTON_DPAD_LEFT, | ||
| SDL_CONTROLLER_BUTTON_DPAD_RIGHT, | ||
| SDL_CONTROLLER_BUTTON_MAX | ||
| } SDL_GameControllerButton; | ||
|
|
||
| /** | ||
| * turn this string into a button mapping | ||
| */ | ||
| extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *pchString); | ||
|
|
||
| /** | ||
| * turn this button enum into a string mapping | ||
| */ | ||
| extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); | ||
|
|
||
| /** | ||
| * Get the SDL joystick layer binding for this controller button mapping | ||
| */ | ||
| extern DECLSPEC SDL_GameControllerButtonBind SDLCALL | ||
| SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, | ||
| SDL_GameControllerButton button); | ||
|
|
||
|
|
||
| /** | ||
| * Get the current state of a button on a game controller. | ||
| * | ||
| * The button indices start at index 0. | ||
| */ | ||
| extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, | ||
| SDL_GameControllerButton button); | ||
|
|
||
| /** | ||
| * Close a controller previously opened with SDL_GameControllerOpen(). | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller); | ||
|
|
||
|
|
||
| /* Ends C function definitions when using C++ */ | ||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #include "close_code.h" | ||
|
|
||
| #endif /* _SDL_gamecontroller_h */ | ||
|
|
||
| /* vi: set ts=4 sw=4 expandtab: */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| /* | ||
| Simple DirectMedia Layer | ||
| Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> | ||
| This software is provided 'as-is', without any express or implied | ||
| warranty. In no event will the authors be held liable for any damages | ||
| arising from the use of this software. | ||
| Permission is granted to anyone to use this software for any purpose, | ||
| including commercial applications, and to alter it and redistribute it | ||
| freely, subject to the following restrictions: | ||
| 1. The origin of this software must not be misrepresented; you must not | ||
| claim that you wrote the original software. If you use this software | ||
| in a product, an acknowledgment in the product documentation would be | ||
| appreciated but is not required. | ||
| 2. Altered source versions must be plainly marked as such, and must not be | ||
| misrepresented as being the original software. | ||
| 3. This notice may not be removed or altered from any source distribution. | ||
| */ | ||
|
|
||
| /** | ||
| * \file SDL_gesture.h | ||
| * | ||
| * Include file for SDL gesture event handling. | ||
| */ | ||
|
|
||
| #ifndef _SDL_gesture_h | ||
| #define _SDL_gesture_h | ||
|
|
||
| #include "SDL_stdinc.h" | ||
| #include "SDL_error.h" | ||
| #include "SDL_video.h" | ||
|
|
||
| #include "SDL_touch.h" | ||
|
|
||
|
|
||
| #include "begin_code.h" | ||
| /* Set up for C function definitions, even when using C++ */ | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| typedef Sint64 SDL_GestureID; | ||
|
|
||
| /* Function prototypes */ | ||
|
|
||
| /** | ||
| * \brief Begin Recording a gesture on the specified touch, or all touches (-1) | ||
| * | ||
| * | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); | ||
|
|
||
|
|
||
| /** | ||
| * \brief Save all currently loaded Dollar Gesture templates | ||
| * | ||
| * | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); | ||
|
|
||
| /** | ||
| * \brief Save a currently loaded Dollar Gesture template | ||
| * | ||
| * | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); | ||
|
|
||
|
|
||
| /** | ||
| * \brief Load Dollar Gesture templates from a file | ||
| * | ||
| * | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); | ||
|
|
||
|
|
||
| /* Ends C function definitions when using C++ */ | ||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #include "close_code.h" | ||
|
|
||
| #endif /* _SDL_gesture_h */ | ||
|
|
||
| /* vi: set ts=4 sw=4 expandtab: */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,341 @@ | ||
| /* | ||
| Simple DirectMedia Layer | ||
| Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> | ||
| This software is provided 'as-is', without any express or implied | ||
| warranty. In no event will the authors be held liable for any damages | ||
| arising from the use of this software. | ||
| Permission is granted to anyone to use this software for any purpose, | ||
| including commercial applications, and to alter it and redistribute it | ||
| freely, subject to the following restrictions: | ||
| 1. The origin of this software must not be misrepresented; you must not | ||
| claim that you wrote the original software. If you use this software | ||
| in a product, an acknowledgment in the product documentation would be | ||
| appreciated but is not required. | ||
| 2. Altered source versions must be plainly marked as such, and must not be | ||
| misrepresented as being the original software. | ||
| 3. This notice may not be removed or altered from any source distribution. | ||
| */ | ||
|
|
||
| /** | ||
| * \file SDL_keycode.h | ||
| * | ||
| * Defines constants which identify keyboard keys and modifiers. | ||
| */ | ||
|
|
||
| #ifndef _SDL_keycode_h | ||
| #define _SDL_keycode_h | ||
|
|
||
| #include "SDL_stdinc.h" | ||
| #include "SDL_scancode.h" | ||
|
|
||
| /** | ||
| * \brief The SDL virtual key representation. | ||
| * | ||
| * Values of this type are used to represent keyboard keys using the current | ||
| * layout of the keyboard. These values include Unicode values representing | ||
| * the unmodified character that would be generated by pressing the key, or | ||
| * an SDLK_* constant for those keys that do not generate characters. | ||
| */ | ||
| typedef Sint32 SDL_Keycode; | ||
|
|
||
| #define SDLK_SCANCODE_MASK (1<<30) | ||
| #define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) | ||
|
|
||
| enum | ||
| { | ||
| SDLK_UNKNOWN = 0, | ||
|
|
||
| SDLK_RETURN = '\r', | ||
| SDLK_ESCAPE = '\033', | ||
| SDLK_BACKSPACE = '\b', | ||
| SDLK_TAB = '\t', | ||
| SDLK_SPACE = ' ', | ||
| SDLK_EXCLAIM = '!', | ||
| SDLK_QUOTEDBL = '"', | ||
| SDLK_HASH = '#', | ||
| SDLK_PERCENT = '%', | ||
| SDLK_DOLLAR = '$', | ||
| SDLK_AMPERSAND = '&', | ||
| SDLK_QUOTE = '\'', | ||
| SDLK_LEFTPAREN = '(', | ||
| SDLK_RIGHTPAREN = ')', | ||
| SDLK_ASTERISK = '*', | ||
| SDLK_PLUS = '+', | ||
| SDLK_COMMA = ',', | ||
| SDLK_MINUS = '-', | ||
| SDLK_PERIOD = '.', | ||
| SDLK_SLASH = '/', | ||
| SDLK_0 = '0', | ||
| SDLK_1 = '1', | ||
| SDLK_2 = '2', | ||
| SDLK_3 = '3', | ||
| SDLK_4 = '4', | ||
| SDLK_5 = '5', | ||
| SDLK_6 = '6', | ||
| SDLK_7 = '7', | ||
| SDLK_8 = '8', | ||
| SDLK_9 = '9', | ||
| SDLK_COLON = ':', | ||
| SDLK_SEMICOLON = ';', | ||
| SDLK_LESS = '<', | ||
| SDLK_EQUALS = '=', | ||
| SDLK_GREATER = '>', | ||
| SDLK_QUESTION = '?', | ||
| SDLK_AT = '@', | ||
| /* | ||
| Skip uppercase letters | ||
| */ | ||
| SDLK_LEFTBRACKET = '[', | ||
| SDLK_BACKSLASH = '\\', | ||
| SDLK_RIGHTBRACKET = ']', | ||
| SDLK_CARET = '^', | ||
| SDLK_UNDERSCORE = '_', | ||
| SDLK_BACKQUOTE = '`', | ||
| SDLK_a = 'a', | ||
| SDLK_b = 'b', | ||
| SDLK_c = 'c', | ||
| SDLK_d = 'd', | ||
| SDLK_e = 'e', | ||
| SDLK_f = 'f', | ||
| SDLK_g = 'g', | ||
| SDLK_h = 'h', | ||
| SDLK_i = 'i', | ||
| SDLK_j = 'j', | ||
| SDLK_k = 'k', | ||
| SDLK_l = 'l', | ||
| SDLK_m = 'm', | ||
| SDLK_n = 'n', | ||
| SDLK_o = 'o', | ||
| SDLK_p = 'p', | ||
| SDLK_q = 'q', | ||
| SDLK_r = 'r', | ||
| SDLK_s = 's', | ||
| SDLK_t = 't', | ||
| SDLK_u = 'u', | ||
| SDLK_v = 'v', | ||
| SDLK_w = 'w', | ||
| SDLK_x = 'x', | ||
| SDLK_y = 'y', | ||
| SDLK_z = 'z', | ||
|
|
||
| SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), | ||
|
|
||
| SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1), | ||
| SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2), | ||
| SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3), | ||
| SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4), | ||
| SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5), | ||
| SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6), | ||
| SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7), | ||
| SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8), | ||
| SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9), | ||
| SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10), | ||
| SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11), | ||
| SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12), | ||
|
|
||
| SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN), | ||
| SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK), | ||
| SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE), | ||
| SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), | ||
| SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), | ||
| SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), | ||
| SDLK_DELETE = '\177', | ||
| SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END), | ||
| SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), | ||
| SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), | ||
| SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT), | ||
| SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN), | ||
| SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP), | ||
|
|
||
| SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR), | ||
| SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE), | ||
| SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY), | ||
| SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS), | ||
| SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS), | ||
| SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER), | ||
| SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1), | ||
| SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2), | ||
| SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3), | ||
| SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4), | ||
| SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5), | ||
| SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6), | ||
| SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7), | ||
| SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8), | ||
| SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9), | ||
| SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0), | ||
| SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD), | ||
|
|
||
| SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION), | ||
| SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER), | ||
| SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS), | ||
| SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13), | ||
| SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14), | ||
| SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15), | ||
| SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16), | ||
| SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17), | ||
| SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18), | ||
| SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19), | ||
| SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20), | ||
| SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21), | ||
| SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22), | ||
| SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23), | ||
| SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24), | ||
| SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE), | ||
| SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP), | ||
| SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU), | ||
| SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT), | ||
| SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP), | ||
| SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN), | ||
| SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO), | ||
| SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT), | ||
| SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY), | ||
| SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE), | ||
| SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND), | ||
| SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE), | ||
| SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP), | ||
| SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN), | ||
| SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA), | ||
| SDLK_KP_EQUALSAS400 = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400), | ||
|
|
||
| SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE), | ||
| SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ), | ||
| SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL), | ||
| SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR), | ||
| SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR), | ||
| SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2), | ||
| SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR), | ||
| SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT), | ||
| SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER), | ||
| SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN), | ||
| SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL), | ||
| SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL), | ||
|
|
||
| SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00), | ||
| SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000), | ||
| SDLK_THOUSANDSSEPARATOR = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR), | ||
| SDLK_DECIMALSEPARATOR = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR), | ||
| SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT), | ||
| SDLK_CURRENCYSUBUNIT = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT), | ||
| SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN), | ||
| SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN), | ||
| SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE), | ||
| SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE), | ||
| SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB), | ||
| SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE), | ||
| SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A), | ||
| SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B), | ||
| SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C), | ||
| SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D), | ||
| SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E), | ||
| SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F), | ||
| SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR), | ||
| SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER), | ||
| SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT), | ||
| SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS), | ||
| SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER), | ||
| SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND), | ||
| SDLK_KP_DBLAMPERSAND = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND), | ||
| SDLK_KP_VERTICALBAR = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR), | ||
| SDLK_KP_DBLVERTICALBAR = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR), | ||
| SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON), | ||
| SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH), | ||
| SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE), | ||
| SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT), | ||
| SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM), | ||
| SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE), | ||
| SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL), | ||
| SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR), | ||
| SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD), | ||
| SDLK_KP_MEMSUBTRACT = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT), | ||
| SDLK_KP_MEMMULTIPLY = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY), | ||
| SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE), | ||
| SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS), | ||
| SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR), | ||
| SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY), | ||
| SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY), | ||
| SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL), | ||
| SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL), | ||
| SDLK_KP_HEXADECIMAL = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL), | ||
|
|
||
| SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL), | ||
| SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT), | ||
| SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT), | ||
| SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI), | ||
| SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL), | ||
| SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT), | ||
| SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT), | ||
| SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI), | ||
|
|
||
| SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE), | ||
|
|
||
| SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT), | ||
| SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV), | ||
| SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP), | ||
| SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY), | ||
| SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE), | ||
| SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT), | ||
| SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW), | ||
| SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL), | ||
| SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR), | ||
| SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER), | ||
| SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH), | ||
| SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME), | ||
| SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK), | ||
| SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD), | ||
| SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP), | ||
| SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH), | ||
| SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS), | ||
|
|
||
| SDLK_BRIGHTNESSDOWN = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN), | ||
| SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP), | ||
| SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH), | ||
| SDLK_KBDILLUMTOGGLE = | ||
| SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE), | ||
| SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), | ||
| SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), | ||
| SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), | ||
| SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP) | ||
| }; | ||
|
|
||
| /** | ||
| * \brief Enumeration of valid key mods (possibly OR'd together). | ||
| */ | ||
| typedef enum | ||
| { | ||
| KMOD_NONE = 0x0000, | ||
| KMOD_LSHIFT = 0x0001, | ||
| KMOD_RSHIFT = 0x0002, | ||
| KMOD_LCTRL = 0x0040, | ||
| KMOD_RCTRL = 0x0080, | ||
| KMOD_LALT = 0x0100, | ||
| KMOD_RALT = 0x0200, | ||
| KMOD_LGUI = 0x0400, | ||
| KMOD_RGUI = 0x0800, | ||
| KMOD_NUM = 0x1000, | ||
| KMOD_CAPS = 0x2000, | ||
| KMOD_MODE = 0x4000, | ||
| KMOD_RESERVED = 0x8000 | ||
| } SDL_Keymod; | ||
|
|
||
| #define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL) | ||
| #define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT) | ||
| #define KMOD_ALT (KMOD_LALT|KMOD_RALT) | ||
| #define KMOD_GUI (KMOD_LGUI|KMOD_RGUI) | ||
|
|
||
| #endif /* _SDL_keycode_h */ | ||
|
|
||
| /* vi: set ts=4 sw=4 expandtab: */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,211 @@ | ||
| /* | ||
| Simple DirectMedia Layer | ||
| Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> | ||
| This software is provided 'as-is', without any express or implied | ||
| warranty. In no event will the authors be held liable for any damages | ||
| arising from the use of this software. | ||
| Permission is granted to anyone to use this software for any purpose, | ||
| including commercial applications, and to alter it and redistribute it | ||
| freely, subject to the following restrictions: | ||
| 1. The origin of this software must not be misrepresented; you must not | ||
| claim that you wrote the original software. If you use this software | ||
| in a product, an acknowledgment in the product documentation would be | ||
| appreciated but is not required. | ||
| 2. Altered source versions must be plainly marked as such, and must not be | ||
| misrepresented as being the original software. | ||
| 3. This notice may not be removed or altered from any source distribution. | ||
| */ | ||
|
|
||
| /** | ||
| * \file SDL_log.h | ||
| * | ||
| * Simple log messages with categories and priorities. | ||
| * | ||
| * By default logs are quiet, but if you're debugging SDL you might want: | ||
| * | ||
| * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); | ||
| * | ||
| * Here's where the messages go on different platforms: | ||
| * Windows: debug output stream | ||
| * Android: log output | ||
| * Others: standard error output (stderr) | ||
| */ | ||
|
|
||
| #ifndef _SDL_log_h | ||
| #define _SDL_log_h | ||
|
|
||
| #include "SDL_stdinc.h" | ||
|
|
||
| #include "begin_code.h" | ||
| /* Set up for C function definitions, even when using C++ */ | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
|
|
||
| /** | ||
| * \brief The maximum size of a log message | ||
| * | ||
| * Messages longer than the maximum size will be truncated | ||
| */ | ||
| #define SDL_MAX_LOG_MESSAGE 4096 | ||
|
|
||
| /** | ||
| * \brief The predefined log categories | ||
| * | ||
| * By default the application category is enabled at the INFO level, | ||
| * the assert category is enabled at the WARN level, test is enabled | ||
| * at the VERBOSE level and all other categories are enabled at the | ||
| * CRITICAL level. | ||
| */ | ||
| enum | ||
| { | ||
| SDL_LOG_CATEGORY_APPLICATION, | ||
| SDL_LOG_CATEGORY_ERROR, | ||
| SDL_LOG_CATEGORY_ASSERT, | ||
| SDL_LOG_CATEGORY_SYSTEM, | ||
| SDL_LOG_CATEGORY_AUDIO, | ||
| SDL_LOG_CATEGORY_VIDEO, | ||
| SDL_LOG_CATEGORY_RENDER, | ||
| SDL_LOG_CATEGORY_INPUT, | ||
| SDL_LOG_CATEGORY_TEST, | ||
|
|
||
| /* Reserved for future SDL library use */ | ||
| SDL_LOG_CATEGORY_RESERVED1, | ||
| SDL_LOG_CATEGORY_RESERVED2, | ||
| SDL_LOG_CATEGORY_RESERVED3, | ||
| SDL_LOG_CATEGORY_RESERVED4, | ||
| SDL_LOG_CATEGORY_RESERVED5, | ||
| SDL_LOG_CATEGORY_RESERVED6, | ||
| SDL_LOG_CATEGORY_RESERVED7, | ||
| SDL_LOG_CATEGORY_RESERVED8, | ||
| SDL_LOG_CATEGORY_RESERVED9, | ||
| SDL_LOG_CATEGORY_RESERVED10, | ||
|
|
||
| /* Beyond this point is reserved for application use, e.g. | ||
| enum { | ||
| MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, | ||
| MYAPP_CATEGORY_AWESOME2, | ||
| MYAPP_CATEGORY_AWESOME3, | ||
| ... | ||
| }; | ||
| */ | ||
| SDL_LOG_CATEGORY_CUSTOM | ||
| }; | ||
|
|
||
| /** | ||
| * \brief The predefined log priorities | ||
| */ | ||
| typedef enum | ||
| { | ||
| SDL_LOG_PRIORITY_VERBOSE = 1, | ||
| SDL_LOG_PRIORITY_DEBUG, | ||
| SDL_LOG_PRIORITY_INFO, | ||
| SDL_LOG_PRIORITY_WARN, | ||
| SDL_LOG_PRIORITY_ERROR, | ||
| SDL_LOG_PRIORITY_CRITICAL, | ||
| SDL_NUM_LOG_PRIORITIES | ||
| } SDL_LogPriority; | ||
|
|
||
|
|
||
| /** | ||
| * \brief Set the priority of all log categories | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); | ||
|
|
||
| /** | ||
| * \brief Set the priority of a particular log category | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, | ||
| SDL_LogPriority priority); | ||
|
|
||
| /** | ||
| * \brief Get the priority of a particular log category | ||
| */ | ||
| extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); | ||
|
|
||
| /** | ||
| * \brief Reset all priorities to default. | ||
| * | ||
| * \note This is called in SDL_Quit(). | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_Log(const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_PRIORITY_VERBOSE | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_PRIORITY_DEBUG | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogDebug(int category, const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_PRIORITY_INFO | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogInfo(int category, const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_PRIORITY_WARN | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogWarn(int category, const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_PRIORITY_ERROR | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogError(int category, const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with SDL_LOG_PRIORITY_CRITICAL | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogCritical(int category, const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with the specified category and priority. | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogMessage(int category, | ||
| SDL_LogPriority priority, | ||
| const char *fmt, ...); | ||
|
|
||
| /** | ||
| * \brief Log a message with the specified category and priority. | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, | ||
| SDL_LogPriority priority, | ||
| const char *fmt, va_list ap); | ||
|
|
||
| /** | ||
| * \brief The prototype for the log output function | ||
| */ | ||
| typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); | ||
|
|
||
| /** | ||
| * \brief Get the current log output function. | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); | ||
|
|
||
| /** | ||
| * \brief This function allows you to replace the default log output | ||
| * function with one of your own. | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); | ||
|
|
||
|
|
||
| /* Ends C function definitions when using C++ */ | ||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #include "close_code.h" | ||
|
|
||
| #endif /* _SDL_log_h */ | ||
|
|
||
| /* vi: set ts=4 sw=4 expandtab: */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,106 +1,155 @@ | ||
| /* | ||
| Simple DirectMedia Layer | ||
| Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> | ||
| This software is provided 'as-is', without any express or implied | ||
| warranty. In no event will the authors be held liable for any damages | ||
| arising from the use of this software. | ||
| Permission is granted to anyone to use this software for any purpose, | ||
| including commercial applications, and to alter it and redistribute it | ||
| freely, subject to the following restrictions: | ||
| 1. The origin of this software must not be misrepresented; you must not | ||
| claim that you wrote the original software. If you use this software | ||
| in a product, an acknowledgment in the product documentation would be | ||
| appreciated but is not required. | ||
| 2. Altered source versions must be plainly marked as such, and must not be | ||
| misrepresented as being the original software. | ||
| 3. This notice may not be removed or altered from any source distribution. | ||
| */ | ||
|
|
||
| #ifndef _SDL_main_h | ||
| #define _SDL_main_h | ||
|
|
||
| #include "SDL_stdinc.h" | ||
|
|
||
| /** | ||
| * \file SDL_main.h | ||
| * | ||
| * Redefine main() on some platforms so that it is called by SDL. | ||
| */ | ||
|
|
||
| #ifndef SDL_MAIN_HANDLED | ||
| #if defined(__WIN32__) | ||
| /* On Windows SDL provides WinMain(), which parses the command line and passes | ||
| the arguments to your main function. | ||
| If you provide your own WinMain(), you may define SDL_MAIN_HANDLED | ||
| */ | ||
| #define SDL_MAIN_AVAILABLE | ||
|
|
||
| #elif defined(__WINRT__) | ||
| /* On WinRT, SDL provides a main function that initializes CoreApplication, | ||
| creating an instance of IFrameworkView in the process. | ||
| Please note that #include'ing SDL_main.h is not enough to get a main() | ||
| function working. In non-XAML apps, the file, | ||
| src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled | ||
| into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be | ||
| called, with a pointer to the Direct3D-hosted XAML control passed in. | ||
| */ | ||
| #define SDL_MAIN_NEEDED | ||
|
|
||
| #elif defined(__IPHONEOS__) | ||
| /* On iOS SDL provides a main function that creates an application delegate | ||
| and starts the iOS application run loop. | ||
| See src/video/uikit/SDL_uikitappdelegate.m for more details. | ||
| */ | ||
| #define SDL_MAIN_NEEDED | ||
|
|
||
| #elif defined(__ANDROID__) | ||
| /* On Android SDL provides a Java class in SDLActivity.java that is the | ||
| main activity entry point. | ||
| See README-android.txt for more details on extending that class. | ||
| */ | ||
| #define SDL_MAIN_NEEDED | ||
|
|
||
| #endif | ||
| #endif /* SDL_MAIN_HANDLED */ | ||
|
|
||
| #ifdef __cplusplus | ||
| #define C_LINKAGE "C" | ||
| #else | ||
| #define C_LINKAGE | ||
| #endif /* __cplusplus */ | ||
|
|
||
| /** | ||
| * \file SDL_main.h | ||
| * | ||
| * The application's main() function must be called with C linkage, | ||
| * and should be declared like this: | ||
| * \code | ||
| * #ifdef __cplusplus | ||
| * extern "C" | ||
| * #endif | ||
| * int main(int argc, char *argv[]) | ||
| * { | ||
| * } | ||
| * \endcode | ||
| */ | ||
|
|
||
| #if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE) | ||
| #define main SDL_main | ||
| #endif | ||
|
|
||
| /** | ||
| * The prototype for the application's main() function | ||
| */ | ||
| extern C_LINKAGE int SDL_main(int argc, char *argv[]); | ||
|
|
||
|
|
||
| #include "begin_code.h" | ||
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| /** | ||
| * This is called by the real SDL main function to let the rest of the | ||
| * library know that initialization was done properly. | ||
| * | ||
| * Calling this yourself without knowing what you're doing can cause | ||
| * crashes and hard to diagnose problems with your application. | ||
| */ | ||
| extern DECLSPEC void SDLCALL SDL_SetMainReady(void); | ||
|
|
||
| #ifdef __WIN32__ | ||
|
|
||
| /** | ||
| * This can be called to set the application class at startup | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, | ||
| void *hInst); | ||
| extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); | ||
|
|
||
| #endif /* __WIN32__ */ | ||
|
|
||
|
|
||
| #ifdef __WINRT__ | ||
|
|
||
| /** | ||
| * \brief Initializes and launches an SDL/WinRT application. | ||
| * | ||
| * \param mainFunction The SDL app's C-style main(). | ||
| * \param xamlBackgroundPanel An optional, XAML-based, background panel. | ||
| * For Non-XAML apps, this value must be set to NULL. For XAML apps, | ||
| * pass in a pointer to a SwapChainBackgroundPanel, casted to an | ||
| * IInspectable (via reinterpret_cast). | ||
| * \ret 0 on success, -1 on failure. On failure, use SDL_GetError to retrieve more | ||
| * information on the failure. | ||
| */ | ||
| extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * xamlBackgroundPanel); | ||
|
|
||
| #endif /* __WINRT__ */ | ||
|
|
||
|
|
||
| #ifdef __cplusplus | ||
| } | ||
| #endif | ||
| #include "close_code.h" | ||
|
|
||
| #endif /* _SDL_main_h */ | ||
|
|
||
| /* vi: set ts=4 sw=4 expandtab: */ |