mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2026-10-25 21:40:11 +00:00
Implement controller LED and battery state extensions
This commit is contained in:
1 parent
803ad116fb
commit
d4079940b4
8 files changed
+196
-7
No files matched your search
@@ -35,6 +35,7 @@ static jmethodID BridgeClConnectionStatusUpdateMethod;
|
||||
static jmethodID BridgeClSetHdrModeMethod;
|
||||
static jmethodID BridgeClRumbleTriggersMethod;
|
||||
static jmethodID BridgeClSetMotionEventStateMethod;
|
||||
static jmethodID BridgeClSetControllerLEDMethod;
|
||||
static jbyteArray DecodedFrameBuffer;
|
||||
static jshortArray DecodedAudioBuffer;
|
||||
|
||||
@@ -98,6 +99,7 @@ Java_com_limelight_nvstream_jni_MoonBridge_init(JNIEnv *env, jclass clazz) {
|
||||
BridgeClSetHdrModeMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClSetHdrMode", "(Z[B)V");
|
||||
BridgeClRumbleTriggersMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClRumbleTriggers", "(SSS)V");
|
||||
BridgeClSetMotionEventStateMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClSetMotionEventState", "(SBS)V");
|
||||
BridgeClSetControllerLEDMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClSetControllerLED", "(SBBB)V");
|
||||
}
|
||||
|
||||
int BridgeDrSetup(int videoFormat, int width, int height, int redrawRate, void* context, int drFlags) {
|
||||
@@ -374,6 +376,17 @@ void BridgeClSetMotionEventState(uint16_t controllerNumber, uint8_t motionType,
|
||||
}
|
||||
}
|
||||
|
||||
void BridgeClSetControllerLED(uint16_t controllerNumber, uint8_t r, uint8_t g, uint8_t b) {
|
||||
JNIEnv* env = GetThreadEnv();
|
||||
|
||||
// These jbyte casts are necessary to satisfy CheckJNI
|
||||
(*env)->CallStaticVoidMethod(env, GlobalBridgeClass, BridgeClSetControllerLEDMethod, controllerNumber, (jbyte)r, (jbyte)g, (jbyte)b);
|
||||
if ((*env)->ExceptionCheck(env)) {
|
||||
// We will crash here
|
||||
(*JVM)->DetachCurrentThread(JVM);
|
||||
}
|
||||
}
|
||||
|
||||
void BridgeClLogMessage(const char* format, ...) {
|
||||
va_list va;
|
||||
va_start(va, format);
|
||||
@@ -410,6 +423,7 @@ static CONNECTION_LISTENER_CALLBACKS BridgeConnListenerCallbacks = {
|
||||
.setHdrMode = BridgeClSetHdrMode,
|
||||
.rumbleTriggers = BridgeClRumbleTriggers,
|
||||
.setMotionEventState = BridgeClSetMotionEventState,
|
||||
.setControllerLED = BridgeClSetControllerLED,
|
||||
};
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
|
||||
Submodule app/src/main/jni/moonlight-core/moonlight-common-c updated: c5dc45e144...c0792168f5.
@@ -80,6 +80,14 @@ Java_com_limelight_nvstream_jni_MoonBridge_sendControllerMotionEvent(JNIEnv *env
|
||||
return LiSendControllerMotionEvent(controllerNumber, motionType, x, y, z);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_com_limelight_nvstream_jni_MoonBridge_sendControllerBatteryEvent(JNIEnv *env, jclass clazz,
|
||||
jbyte controllerNumber,
|
||||
jbyte batteryState,
|
||||
jbyte batteryPercentage) {
|
||||
return LiSendControllerBatteryEvent(controllerNumber, batteryState, batteryPercentage);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_com_limelight_nvstream_jni_MoonBridge_sendKeyboardInput(JNIEnv *env, jclass clazz, jshort keyCode, jbyte keyAction, jbyte modifiers, jbyte flags) {
|
||||
LiSendKeyboardEvent2(keyCode, keyAction, modifiers, flags);
|
||||
|
||||
Reference in new issue
Block a user