mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-08-18 01:15:46 +00:00
Add support for vertical scrolling
This commit is contained in:
parent
3dee3a60d5
commit
a0d9174e75
@ -52,4 +52,16 @@ typedef struct _NV_CONTROLLER_PACKET {
|
|||||||
short tailB;
|
short tailB;
|
||||||
} NV_CONTROLLER_PACKET, *PNV_CONTROLLER_PACKET;
|
} NV_CONTROLLER_PACKET, *PNV_CONTROLLER_PACKET;
|
||||||
|
|
||||||
|
#define PACKET_TYPE_SCROLL 0xA
|
||||||
|
#define MAGIC_A 0x09
|
||||||
|
typedef struct _NV_SCROLL_PACKET {
|
||||||
|
NV_INPUT_HEADER header;
|
||||||
|
char magicA;
|
||||||
|
char zero1;
|
||||||
|
short zero2;
|
||||||
|
short scrollAmt1;
|
||||||
|
short scrollAmt2;
|
||||||
|
short zero3;
|
||||||
|
} NV_SCROLL_PACKET, *PNV_SCROLL_PACKET;
|
||||||
|
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
@ -25,6 +25,7 @@ typedef struct _PACKET_HOLDER {
|
|||||||
NV_MOUSE_MOVE_PACKET mouseMove;
|
NV_MOUSE_MOVE_PACKET mouseMove;
|
||||||
NV_MOUSE_BUTTON_PACKET mouseButton;
|
NV_MOUSE_BUTTON_PACKET mouseButton;
|
||||||
NV_CONTROLLER_PACKET controller;
|
NV_CONTROLLER_PACKET controller;
|
||||||
|
NV_SCROLL_PACKET scroll;
|
||||||
} packet;
|
} packet;
|
||||||
} PACKET_HOLDER, *PPACKET_HOLDER;
|
} PACKET_HOLDER, *PPACKET_HOLDER;
|
||||||
|
|
||||||
@ -282,3 +283,33 @@ int LiSendControllerEvent(short buttonFlags, char leftTrigger, char rightTrigger
|
|||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int LiSendScrollEvent(char scrollClicks) {
|
||||||
|
PPACKET_HOLDER holder;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
holder = malloc(sizeof(*holder));
|
||||||
|
if (holder == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
holder->packetLength = sizeof(NV_SCROLL_PACKET);
|
||||||
|
holder->packet.scroll.header.packetType = htonl(PACKET_TYPE_SCROLL);
|
||||||
|
holder->packet.scroll.magicA = MAGIC_A;
|
||||||
|
holder->packet.scroll.zero1 = 0;
|
||||||
|
holder->packet.scroll.zero2 = 0;
|
||||||
|
holder->packet.scroll.scrollAmt1 = htons(scrollClicks * 120);
|
||||||
|
holder->packet.scroll.scrollAmt2 = holder->packet.scroll.scrollAmt1;
|
||||||
|
holder->packet.scroll.zero3 = 0;
|
||||||
|
|
||||||
|
err = LbqOfferQueueItem(&packetQueue, holder);
|
||||||
|
if (err != LBQ_SUCCESS) {
|
||||||
|
free(holder);
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
@ -129,6 +129,8 @@ int LiSendKeyboardEvent(short keyCode, char keyAction, char modifiers);
|
|||||||
int LiSendControllerEvent(short buttonFlags, char leftTrigger, char rightTrigger,
|
int LiSendControllerEvent(short buttonFlags, char leftTrigger, char rightTrigger,
|
||||||
short leftStickX, short leftStickY, short rightStickX, short rightStickY);
|
short leftStickX, short leftStickY, short rightStickX, short rightStickY);
|
||||||
|
|
||||||
|
int LiSendScrollEvent(char scrollClicks);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
Loading…
x
Reference in New Issue
Block a user