Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hrydgard
GitHub Repository: hrydgard/ppsspp
Path: blob/master/Windows/XinputDevice.h
5656 views
1
#pragma once
2
3
#include <XInput.h>
4
#include "Core/HLE/sceCtrl.h"
5
#include "Windows/InputDevice.h"
6
7
class XinputDevice final : public InputDevice {
8
public:
9
XinputDevice();
10
~XinputDevice();
11
int UpdateState() override;
12
13
private:
14
void UpdatePad(int pad, const XINPUT_STATE &state, XINPUT_VIBRATION &vibration);
15
void ReleaseAllKeys(int pad);
16
void ApplyButtons(int pad, const XINPUT_STATE &state);
17
void ApplyVibration(int pad, XINPUT_VIBRATION &vibration);
18
19
struct PadData {
20
bool connected = false;
21
int checkDelayUpdates = 0;
22
XINPUT_STATE prevState{};
23
XINPUT_VIBRATION prevVibration{};
24
u16 vendorId = 0;
25
u16 productId = 0;
26
float prevAxisValue[6]{};
27
u32 prevButtons = 0;
28
};
29
PadData padData_[XUSER_MAX_COUNT];
30
double prevVibrationTime_ = 0.0;
31
double newVibrationTime_ = 0.0;
32
};
33
34