mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
31 lines
593 B
C
31 lines
593 B
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "Emu/Io/PadHandler.h"
|
||
|
|
#include <Xinput.h>
|
||
|
|
|
||
|
|
class XInputPadHandler : public PadHandlerBase
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
XInputPadHandler();
|
||
|
|
~XInputPadHandler();
|
||
|
|
|
||
|
|
void Init(const u32 max_connect) override;
|
||
|
|
void Close() override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
typedef void (WINAPI * PFN_XINPUTENABLE)(BOOL);
|
||
|
|
typedef DWORD (WINAPI * PFN_XINPUTGETSTATE)(DWORD, XINPUT_STATE *);
|
||
|
|
|
||
|
|
private:
|
||
|
|
DWORD ThreadProcedure();
|
||
|
|
static DWORD WINAPI ThreadProcProxy(LPVOID parameter);
|
||
|
|
|
||
|
|
private:
|
||
|
|
mutable bool active;
|
||
|
|
HANDLE thread;
|
||
|
|
HMODULE library;
|
||
|
|
PFN_XINPUTGETSTATE xinputGetState;
|
||
|
|
PFN_XINPUTENABLE xinputEnable;
|
||
|
|
|
||
|
|
};
|