SDL  2.0
SDL_hid.c File Reference
#include "../../SDL_internal.h"
#include "SDL_hid.h"
+ Include dependency graph for SDL_hid.c:

Go to the source code of this file.

Functions

int WIN_LoadHIDDLL (void)
 
void WIN_UnloadHIDDLL (void)
 

Variables

HidD_GetString_t SDL_HidD_GetManufacturerString
 
HidD_GetString_t SDL_HidD_GetProductString
 
HidD_GetPreparsedData_t SDL_HidD_GetPreparsedData
 
HidD_FreePreparsedData_t SDL_HidD_FreePreparsedData
 
HidP_GetCaps_t SDL_HidP_GetCaps
 
HidP_GetButtonCaps_t SDL_HidP_GetButtonCaps
 
HidP_GetValueCaps_t SDL_HidP_GetValueCaps
 
HidP_MaxDataListLength_t SDL_HidP_MaxDataListLength
 
HidP_GetData_t SDL_HidP_GetData
 
static HMODULE s_pHIDDLL = 0
 
static int s_HIDDLLRefCount = 0
 

Function Documentation

◆ WIN_LoadHIDDLL()

int WIN_LoadHIDDLL ( void  )

Definition at line 43 of file SDL_hid.c.

44 {
45  if (s_pHIDDLL) {
48  return 0; /* already loaded */
49  }
50 
51  s_pHIDDLL = LoadLibrary(L"hid.dll");
52  if (!s_pHIDDLL) {
53  return -1;
54  }
55 
57  s_HIDDLLRefCount = 1;
58 
59  SDL_HidD_GetManufacturerString = (HidD_GetString_t)GetProcAddress(s_pHIDDLL, "HidD_GetManufacturerString");
60  SDL_HidD_GetProductString = (HidD_GetString_t)GetProcAddress(s_pHIDDLL, "HidD_GetProductString");
61  SDL_HidD_GetPreparsedData = (HidD_GetPreparsedData_t)GetProcAddress(s_pHIDDLL, "HidD_GetPreparsedData");
62  SDL_HidD_FreePreparsedData = (HidD_FreePreparsedData_t)GetProcAddress(s_pHIDDLL, "HidD_FreePreparsedData");
63  SDL_HidP_GetCaps = (HidP_GetCaps_t)GetProcAddress(s_pHIDDLL, "HidP_GetCaps");
64  SDL_HidP_GetButtonCaps = (HidP_GetButtonCaps_t)GetProcAddress(s_pHIDDLL, "HidP_GetButtonCaps");
65  SDL_HidP_GetValueCaps = (HidP_GetValueCaps_t)GetProcAddress(s_pHIDDLL, "HidP_GetValueCaps");
66  SDL_HidP_MaxDataListLength = (HidP_MaxDataListLength_t)GetProcAddress(s_pHIDDLL, "HidP_MaxDataListLength");
67  SDL_HidP_GetData = (HidP_GetData_t)GetProcAddress(s_pHIDDLL, "HidP_GetData");
72  return -1;
73  }
74 
75  return 0;
76 }
#define SDL_assert(condition)
Definition: SDL_assert.h:171
HidD_FreePreparsedData_t SDL_HidD_FreePreparsedData
Definition: SDL_hid.c:31
HidP_GetCaps_t SDL_HidP_GetCaps
Definition: SDL_hid.c:32
HidP_GetButtonCaps_t SDL_HidP_GetButtonCaps
Definition: SDL_hid.c:33
HidD_GetString_t SDL_HidD_GetManufacturerString
Definition: SDL_hid.c:28
HidD_GetPreparsedData_t SDL_HidD_GetPreparsedData
Definition: SDL_hid.c:30
void WIN_UnloadHIDDLL(void)
Definition: SDL_hid.c:79
static HMODULE s_pHIDDLL
Definition: SDL_hid.c:38
HidP_MaxDataListLength_t SDL_HidP_MaxDataListLength
Definition: SDL_hid.c:35
HidP_GetValueCaps_t SDL_HidP_GetValueCaps
Definition: SDL_hid.c:34
static int s_HIDDLLRefCount
Definition: SDL_hid.c:39
HidP_GetData_t SDL_HidP_GetData
Definition: SDL_hid.c:36
HidD_GetString_t SDL_HidD_GetProductString
Definition: SDL_hid.c:29
BOOLEAN(WINAPI * HidD_GetString_t)(HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength)
Definition: SDL_hid.h:185
NTSTATUS(WINAPI * HidP_GetValueCaps_t)(HIDP_REPORT_TYPE ReportType, PHIDP_VALUE_CAPS ValueCaps, PUSHORT ValueCapsLength, PHIDP_PREPARSED_DATA PreparsedData)
Definition: SDL_hid.h:190
NTSTATUS(WINAPI * HidP_GetCaps_t)(PHIDP_PREPARSED_DATA PreparsedData, PHIDP_CAPS Capabilities)
Definition: SDL_hid.h:188
BOOLEAN(WINAPI * HidD_GetPreparsedData_t)(HANDLE HidDeviceObject, PHIDP_PREPARSED_DATA *PreparsedData)
Definition: SDL_hid.h:186
NTSTATUS(WINAPI * HidP_GetData_t)(HIDP_REPORT_TYPE ReportType, PHIDP_DATA DataList, PULONG DataLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength)
Definition: SDL_hid.h:192
BOOLEAN(WINAPI * HidD_FreePreparsedData_t)(PHIDP_PREPARSED_DATA PreparsedData)
Definition: SDL_hid.h:187
NTSTATUS(WINAPI * HidP_GetButtonCaps_t)(HIDP_REPORT_TYPE ReportType, PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData)
Definition: SDL_hid.h:189
ULONG(WINAPI * HidP_MaxDataListLength_t)(HIDP_REPORT_TYPE ReportType, PHIDP_PREPARSED_DATA PreparsedData)
Definition: SDL_hid.h:191

References s_HIDDLLRefCount, s_pHIDDLL, SDL_assert, SDL_HidD_FreePreparsedData, SDL_HidD_GetManufacturerString, SDL_HidD_GetPreparsedData, SDL_HidD_GetProductString, SDL_HidP_GetButtonCaps, SDL_HidP_GetCaps, SDL_HidP_GetData, SDL_HidP_GetValueCaps, SDL_HidP_MaxDataListLength, and WIN_UnloadHIDDLL().

◆ WIN_UnloadHIDDLL()

void WIN_UnloadHIDDLL ( void  )

Definition at line 79 of file SDL_hid.c.

80 {
81  if (s_pHIDDLL) {
83  if (--s_HIDDLLRefCount == 0) {
84  FreeLibrary(s_pHIDDLL);
85  s_pHIDDLL = NULL;
86  }
87  } else {
89  }
90 }
#define NULL
Definition: begin_code.h:163

References NULL, s_HIDDLLRefCount, s_pHIDDLL, and SDL_assert.

Referenced by WIN_LoadHIDDLL().

Variable Documentation

◆ s_HIDDLLRefCount

int s_HIDDLLRefCount = 0
static

Definition at line 39 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL(), and WIN_UnloadHIDDLL().

◆ s_pHIDDLL

HMODULE s_pHIDDLL = 0
static

Definition at line 38 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL(), and WIN_UnloadHIDDLL().

◆ SDL_HidD_FreePreparsedData

HidD_FreePreparsedData_t SDL_HidD_FreePreparsedData

Definition at line 31 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidD_GetManufacturerString

HidD_GetString_t SDL_HidD_GetManufacturerString

Definition at line 28 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidD_GetPreparsedData

HidD_GetPreparsedData_t SDL_HidD_GetPreparsedData

Definition at line 30 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidD_GetProductString

HidD_GetString_t SDL_HidD_GetProductString

Definition at line 29 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidP_GetButtonCaps

HidP_GetButtonCaps_t SDL_HidP_GetButtonCaps

Definition at line 33 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidP_GetCaps

HidP_GetCaps_t SDL_HidP_GetCaps

Definition at line 32 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidP_GetData

HidP_GetData_t SDL_HidP_GetData

Definition at line 36 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidP_GetValueCaps

HidP_GetValueCaps_t SDL_HidP_GetValueCaps

Definition at line 34 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().

◆ SDL_HidP_MaxDataListLength

HidP_MaxDataListLength_t SDL_HidP_MaxDataListLength

Definition at line 35 of file SDL_hid.c.

Referenced by WIN_LoadHIDDLL().