mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2026-04-23 16:39:09 +00:00
Rework input packets based on new header knowledge
This commit is contained in:
46
src/Input.h
46
src/Input.h
@@ -3,50 +3,41 @@
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef struct _NV_INPUT_HEADER {
|
||||
uint32_t packetType;
|
||||
uint32_t size; // Size of packet (excluding this field) - Big Endian
|
||||
uint32_t magic; // Packet type - Little Endian
|
||||
} NV_INPUT_HEADER, PNV_INPUT_HEADER;
|
||||
|
||||
#define PACKET_TYPE_HAPTICS 0x06
|
||||
#define H_MAGIC_A 0x0000000D
|
||||
#define H_MAGIC_B 0x00000001
|
||||
#define ENABLE_HAPTICS_MAGIC 0x0000000D
|
||||
typedef struct _NV_HAPTICS_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
int magicA;
|
||||
int magicB;
|
||||
uint16_t enable;
|
||||
} NV_HAPTICS_PACKET, *PNV_HAPTICS_PACKET;
|
||||
|
||||
#define PACKET_TYPE_KEYBOARD 0x0A
|
||||
typedef struct _NV_KEYBOARD_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
char keyAction;
|
||||
int zero1;
|
||||
char zero1;
|
||||
short keyCode;
|
||||
char modifiers;
|
||||
short zero2;
|
||||
} NV_KEYBOARD_PACKET, *PNV_KEYBOARD_PACKET;
|
||||
|
||||
#define UTF8_TEXT_EVENT_MAGIC 0x17
|
||||
#define UTF8_TEXT_EVENT_MAGIC 0x00000017
|
||||
#define UTF8_TEXT_EVENT_MAX_COUNT 32
|
||||
typedef struct _NV_UNICODE_PACKET {
|
||||
unsigned int size;
|
||||
int magic;
|
||||
NV_INPUT_HEADER header;
|
||||
char text[UTF8_TEXT_EVENT_MAX_COUNT];
|
||||
} NV_UNICODE_PACKET, *PNV_UNICODE_PACKET;
|
||||
|
||||
#define PACKET_TYPE_REL_MOUSE_MOVE 0x08
|
||||
#define MOUSE_MOVE_REL_MAGIC 0x06
|
||||
#define MOUSE_MOVE_REL_MAGIC 0x00000006
|
||||
typedef struct _NV_REL_MOUSE_MOVE_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
int magic;
|
||||
short deltaX;
|
||||
short deltaY;
|
||||
} NV_REL_MOUSE_MOVE_PACKET, *PNV_REL_MOUSE_MOVE_PACKET;
|
||||
|
||||
#define PACKET_TYPE_ABS_MOUSE_MOVE 0x0e
|
||||
#define MOUSE_MOVE_ABS_MAGIC 0x05
|
||||
#define MOUSE_MOVE_ABS_MAGIC 0x00000005
|
||||
typedef struct _NV_ABS_MOUSE_MOVE_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
int magic;
|
||||
|
||||
short x;
|
||||
short y;
|
||||
@@ -59,21 +50,18 @@ typedef struct _NV_ABS_MOUSE_MOVE_PACKET {
|
||||
short height;
|
||||
} NV_ABS_MOUSE_MOVE_PACKET, *PNV_ABS_MOUSE_MOVE_PACKET;
|
||||
|
||||
#define PACKET_TYPE_MOUSE_BUTTON 0x05
|
||||
#define MOUSE_BUTTON_MAGIC 0x00000005
|
||||
typedef struct _NV_MOUSE_BUTTON_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
char action;
|
||||
int button;
|
||||
uint8_t button;
|
||||
} NV_MOUSE_BUTTON_PACKET, *PNV_MOUSE_BUTTON_PACKET;
|
||||
|
||||
#define PACKET_TYPE_CONTROLLER 0x18
|
||||
#define C_HEADER_A 0x0000000A
|
||||
#define CONTROLLER_MAGIC 0x0000000A
|
||||
#define C_HEADER_B 0x1400
|
||||
#define C_TAIL_A 0x0000009C
|
||||
#define C_TAIL_B 0x0055
|
||||
typedef struct _NV_CONTROLLER_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
int headerA;
|
||||
short headerB;
|
||||
short buttonFlags;
|
||||
unsigned char leftTrigger;
|
||||
@@ -86,15 +74,13 @@ typedef struct _NV_CONTROLLER_PACKET {
|
||||
short tailB;
|
||||
} NV_CONTROLLER_PACKET, *PNV_CONTROLLER_PACKET;
|
||||
|
||||
#define PACKET_TYPE_MULTI_CONTROLLER 0x1E
|
||||
#define MC_HEADER_A 0x0000000D
|
||||
#define MULTI_CONTROLLER_MAGIC 0x0000000D
|
||||
#define MC_HEADER_B 0x001A
|
||||
#define MC_MID_B 0x0014
|
||||
#define MC_TAIL_A 0x0000009C
|
||||
#define MC_TAIL_B 0x0055
|
||||
typedef struct _NV_MULTI_CONTROLLER_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
int headerA;
|
||||
short headerB;
|
||||
short controllerNumber;
|
||||
short activeGamepadMask;
|
||||
@@ -110,13 +96,9 @@ typedef struct _NV_MULTI_CONTROLLER_PACKET {
|
||||
short tailB;
|
||||
} NV_MULTI_CONTROLLER_PACKET, *PNV_MULTI_CONTROLLER_PACKET;
|
||||
|
||||
#define PACKET_TYPE_SCROLL 0xA
|
||||
#define MAGIC_A 0x09
|
||||
#define SCROLL_MAGIC 0x00000009
|
||||
typedef struct _NV_SCROLL_PACKET {
|
||||
NV_INPUT_HEADER header;
|
||||
char magicA;
|
||||
char zero1;
|
||||
short zero2;
|
||||
short scrollAmt1;
|
||||
short scrollAmt2;
|
||||
short zero3;
|
||||
|
||||
Reference in New Issue
Block a user