mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2026-04-02 22:06:10 +00:00
Add LiGetHostFeatureFlags() API
This commit is contained in:
@@ -1226,7 +1226,7 @@ int LiSendTouchEvent(uint8_t eventType, uint32_t pointerId, float x, float y, fl
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This is a protocol extension only supported with Sunshine
|
// This is a protocol extension only supported with Sunshine
|
||||||
if (!(SunshineFeatureFlags & SS_FF_PEN_TOUCH_EVENTS)) {
|
if (!(SunshineFeatureFlags & LI_FF_PEN_TOUCH_EVENTS)) {
|
||||||
return LI_ERR_UNSUPPORTED;
|
return LI_ERR_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1275,7 +1275,7 @@ int LiSendPenEvent(uint8_t eventType, uint8_t toolType, uint8_t penButtons,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This is a protocol extension only supported with Sunshine
|
// This is a protocol extension only supported with Sunshine
|
||||||
if (!(SunshineFeatureFlags & SS_FF_PEN_TOUCH_EVENTS)) {
|
if (!(SunshineFeatureFlags & LI_FF_PEN_TOUCH_EVENTS)) {
|
||||||
return LI_ERR_UNSUPPORTED;
|
return LI_ERR_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1368,7 +1368,7 @@ int LiSendControllerTouchEvent(uint8_t controllerNumber, uint8_t eventType, uint
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This is a protocol extension only supported with Sunshine
|
// This is a protocol extension only supported with Sunshine
|
||||||
if (!(SunshineFeatureFlags & SS_FF_CONTROLLER_TOUCH_EVENTS)) {
|
if (!(SunshineFeatureFlags & LI_FF_CONTROLLER_TOUCH_EVENTS)) {
|
||||||
return LI_ERR_UNSUPPORTED;
|
return LI_ERR_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1416,7 +1416,7 @@ int LiSendControllerMotionEvent(uint8_t controllerNumber, uint8_t motionType, fl
|
|||||||
}
|
}
|
||||||
|
|
||||||
// This is a protocol extension only supported with Sunshine
|
// This is a protocol extension only supported with Sunshine
|
||||||
if (!(SunshineFeatureFlags & SS_FF_CONTROLLER_TOUCH_EVENTS)) {
|
if (!(SunshineFeatureFlags & LI_FF_CONTROLLER_TOUCH_EVENTS)) {
|
||||||
return LI_ERR_UNSUPPORTED;
|
return LI_ERR_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,6 @@ extern uint16_t VideoPortNumber;
|
|||||||
extern SS_PING AudioPingPayload;
|
extern SS_PING AudioPingPayload;
|
||||||
extern SS_PING VideoPingPayload;
|
extern SS_PING VideoPingPayload;
|
||||||
|
|
||||||
#define SS_FF_PEN_TOUCH_EVENTS 0x01
|
|
||||||
#define SS_FF_CONTROLLER_TOUCH_EVENTS 0x02
|
|
||||||
extern uint32_t SunshineFeatureFlags;
|
extern uint32_t SunshineFeatureFlags;
|
||||||
|
|
||||||
// ENet channel ID values
|
// ENet channel ID values
|
||||||
|
|||||||
@@ -624,6 +624,9 @@ int LiSendMouseMoveAsMousePositionEvent(short deltaX, short deltaY, short refere
|
|||||||
//
|
//
|
||||||
// If unsupported by the host, this will return LI_ERR_UNSUPPORTED and the caller should consider
|
// If unsupported by the host, this will return LI_ERR_UNSUPPORTED and the caller should consider
|
||||||
// falling back to other functions to send this input (such as LiSendMousePositionEvent()).
|
// falling back to other functions to send this input (such as LiSendMousePositionEvent()).
|
||||||
|
//
|
||||||
|
// To determine if LiSendTouchEvent() is supported without calling it, call LiGetHostFeatureFlags()
|
||||||
|
// and check for the LI_FF_PEN_TOUCH_EVENTS flag.
|
||||||
#define LI_TOUCH_EVENT_HOVER 0x00
|
#define LI_TOUCH_EVENT_HOVER 0x00
|
||||||
#define LI_TOUCH_EVENT_DOWN 0x01
|
#define LI_TOUCH_EVENT_DOWN 0x01
|
||||||
#define LI_TOUCH_EVENT_UP 0x02
|
#define LI_TOUCH_EVENT_UP 0x02
|
||||||
@@ -642,6 +645,9 @@ int LiSendTouchEvent(uint8_t eventType, uint32_t pointerId, float x, float y, fl
|
|||||||
//
|
//
|
||||||
// x, y, pressure, rotation, contact area, and tilt are ignored for LI_TOUCH_EVENT_BUTTON_ONLY events.
|
// x, y, pressure, rotation, contact area, and tilt are ignored for LI_TOUCH_EVENT_BUTTON_ONLY events.
|
||||||
// If one of those changes, send LI_TOUCH_EVENT_MOVE or LI_TOUCH_EVENT_HOVER instead.
|
// If one of those changes, send LI_TOUCH_EVENT_MOVE or LI_TOUCH_EVENT_HOVER instead.
|
||||||
|
//
|
||||||
|
// To determine if LiSendPenEvent() is supported without calling it, call LiGetHostFeatureFlags()
|
||||||
|
// and check for the LI_FF_PEN_TOUCH_EVENTS flag.
|
||||||
#define LI_TOOL_TYPE_UNKNOWN 0x00
|
#define LI_TOOL_TYPE_UNKNOWN 0x00
|
||||||
#define LI_TOOL_TYPE_PEN 0x01
|
#define LI_TOOL_TYPE_PEN 0x01
|
||||||
#define LI_TOOL_TYPE_ERASER 0x02
|
#define LI_TOOL_TYPE_ERASER 0x02
|
||||||
@@ -762,6 +768,9 @@ int LiSendControllerArrivalEvent(uint8_t controllerNumber, uint16_t activeGamepa
|
|||||||
//
|
//
|
||||||
// If unsupported by the host, this will return LI_ERR_UNSUPPORTED and the caller should consider
|
// If unsupported by the host, this will return LI_ERR_UNSUPPORTED and the caller should consider
|
||||||
// using this touch input to simulate trackpad input.
|
// using this touch input to simulate trackpad input.
|
||||||
|
//
|
||||||
|
// To determine if LiSendControllerTouchEvent() is supported without calling it, call LiGetHostFeatureFlags()
|
||||||
|
// and check for the LI_FF_CONTROLLER_TOUCH_EVENTS flag.
|
||||||
int LiSendControllerTouchEvent(uint8_t controllerNumber, uint8_t eventType, uint32_t pointerId, float x, float y, float pressure);
|
int LiSendControllerTouchEvent(uint8_t controllerNumber, uint8_t eventType, uint32_t pointerId, float x, float y, float pressure);
|
||||||
|
|
||||||
// This function allows clients to send controller-associated motion events to a supported host.
|
// This function allows clients to send controller-associated motion events to a supported host.
|
||||||
@@ -934,6 +943,11 @@ bool LiGetHdrMetadata(PSS_HDR_METADATA metadata);
|
|||||||
// frame, just that an IDR frame will arrive soon.
|
// frame, just that an IDR frame will arrive soon.
|
||||||
void LiRequestIdrFrame(void);
|
void LiRequestIdrFrame(void);
|
||||||
|
|
||||||
|
// This function returns any extended feature flags supported by the host.
|
||||||
|
#define LI_FF_PEN_TOUCH_EVENTS 0x01 // LiSendTouchEvent()/LiSendPenEvent() supported
|
||||||
|
#define LI_FF_CONTROLLER_TOUCH_EVENTS 0x02 // LiSendControllerTouchEvent() supported
|
||||||
|
uint32_t LiGetHostFeatureFlags(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -155,3 +155,7 @@ void LiInitializeServerInformation(PSERVER_INFORMATION serverInfo) {
|
|||||||
uint64_t LiGetMillis(void) {
|
uint64_t LiGetMillis(void) {
|
||||||
return PltGetMillis();
|
return PltGetMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t LiGetHostFeatureFlags(void) {
|
||||||
|
return SunshineFeatureFlags;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user