github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/external/glfw/src/linux_joystick.h (about)

     1  //========================================================================
     2  // GLFW 3.4 Linux - www.glfw.org
     3  //------------------------------------------------------------------------
     4  // Copyright (c) 2014 Jonas Ã…dahl <jadahl@gmail.com>
     5  //
     6  // This software is provided 'as-is', without any express or implied
     7  // warranty. In no event will the authors be held liable for any damages
     8  // arising from the use of this software.
     9  //
    10  // Permission is granted to anyone to use this software for any purpose,
    11  // including commercial applications, and to alter it and redistribute it
    12  // freely, subject to the following restrictions:
    13  //
    14  // 1. The origin of this software must not be misrepresented; you must not
    15  //    claim that you wrote the original software. If you use this software
    16  //    in a product, an acknowledgment in the product documentation would
    17  //    be appreciated but is not required.
    18  //
    19  // 2. Altered source versions must be plainly marked as such, and must not
    20  //    be misrepresented as being the original software.
    21  //
    22  // 3. This notice may not be removed or altered from any source
    23  //    distribution.
    24  //
    25  //========================================================================
    26  
    27  #include <linux/input.h>
    28  #include <linux/limits.h>
    29  #include <regex.h>
    30  
    31  #define GLFW_LINUX_JOYSTICK_STATE         _GLFWjoystickLinux linjs;
    32  #define GLFW_LINUX_LIBRARY_JOYSTICK_STATE _GLFWlibraryLinux  linjs;
    33  
    34  #define GLFW_BUILD_LINUX_MAPPINGS
    35  
    36  // Linux-specific joystick data
    37  //
    38  typedef struct _GLFWjoystickLinux
    39  {
    40      int                     fd;
    41      char                    path[PATH_MAX];
    42      int                     keyMap[KEY_CNT - BTN_MISC];
    43      int                     absMap[ABS_CNT];
    44      struct input_absinfo    absInfo[ABS_CNT];
    45      int                     hats[4][2];
    46  } _GLFWjoystickLinux;
    47  
    48  // Linux-specific joystick API data
    49  //
    50  typedef struct _GLFWlibraryLinux
    51  {
    52      int                     inotify;
    53      int                     watch;
    54      regex_t                 regex;
    55      GLFWbool                dropped;
    56  } _GLFWlibraryLinux;
    57  
    58  void _glfwDetectJoystickConnectionLinux(void);
    59  
    60  GLFWbool _glfwInitJoysticksLinux(void);
    61  void _glfwTerminateJoysticksLinux(void);
    62  GLFWbool _glfwPollJoystickLinux(_GLFWjoystick* js, int mode);
    63  const char* _glfwGetMappingNameLinux(void);
    64  void _glfwUpdateGamepadGUIDLinux(char* guid);
    65