From 7b13f1281794d6b1e56ecc5b15050ed61c4c4770 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 15 Jan 2024 14:54:59 -0600 Subject: [PATCH] Update moonlight-common-c with new encryption support --- app/src/main/java/com/limelight/nvstream/http/NvHTTP.java | 4 +++- app/src/main/java/com/limelight/nvstream/jni/MoonBridge.java | 2 ++ app/src/main/jni/moonlight-core/moonlight-common-c | 2 +- app/src/main/jni/moonlight-core/simplejni.c | 5 +++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/limelight/nvstream/http/NvHTTP.java b/app/src/main/java/com/limelight/nvstream/http/NvHTTP.java index 6dcc4b01..775a35ea 100644 --- a/app/src/main/java/com/limelight/nvstream/http/NvHTTP.java +++ b/app/src/main/java/com/limelight/nvstream/http/NvHTTP.java @@ -50,6 +50,7 @@ import com.limelight.BuildConfig; import com.limelight.LimeLog; import com.limelight.nvstream.ConnectionContext; import com.limelight.nvstream.http.PairingManager.PairState; +import com.limelight.nvstream.jni.MoonBridge; import okhttp3.ConnectionPool; import okhttp3.HttpUrl; @@ -784,7 +785,8 @@ public class NvHTTP { "&surroundAudioInfo=" + context.streamConfig.getAudioConfiguration().getSurroundAudioInfo() + "&remoteControllersBitmap=" + context.streamConfig.getAttachedGamepadMask() + "&gcmap=" + context.streamConfig.getAttachedGamepadMask() + - "&gcpersist="+(context.streamConfig.getPersistGamepadsAfterDisconnect() ? 1 : 0)); + "&gcpersist="+(context.streamConfig.getPersistGamepadsAfterDisconnect() ? 1 : 0) + + MoonBridge.getLaunchUrlQueryParameters()); if ((verb.equals("launch") && !getXmlString(xmlStr, "gamesession", true).equals("0") || (verb.equals("resume") && !getXmlString(xmlStr, "resume", true).equals("0")))) { // sessionUrl0 will be missing for older GFE versions diff --git a/app/src/main/java/com/limelight/nvstream/jni/MoonBridge.java b/app/src/main/java/com/limelight/nvstream/jni/MoonBridge.java index 9d54b4dd..aceb8d8f 100644 --- a/app/src/main/java/com/limelight/nvstream/jni/MoonBridge.java +++ b/app/src/main/java/com/limelight/nvstream/jni/MoonBridge.java @@ -413,6 +413,8 @@ public class MoonBridge { // The RTT is in the top 32 bits, and the RTT variance is in the bottom 32 bits public static native long getEstimatedRttInfo(); + public static native String getLaunchUrlQueryParameters(); + public static native byte guessControllerType(int vendorId, int productId); public static native boolean guessControllerHasPaddles(int vendorId, int productId); diff --git a/app/src/main/jni/moonlight-core/moonlight-common-c b/app/src/main/jni/moonlight-core/moonlight-common-c index 6e9ed871..298f356a 160000 --- a/app/src/main/jni/moonlight-core/moonlight-common-c +++ b/app/src/main/jni/moonlight-core/moonlight-common-c @@ -1 +1 @@ -Subproject commit 6e9ed871bc3e013386c775b2ee7d31deb1151068 +Subproject commit 298f356acbb57f56863680d41c0d307a2fd5cb91 diff --git a/app/src/main/jni/moonlight-core/simplejni.c b/app/src/main/jni/moonlight-core/simplejni.c index 9fbbfd08..39f4843d 100644 --- a/app/src/main/jni/moonlight-core/simplejni.c +++ b/app/src/main/jni/moonlight-core/simplejni.c @@ -212,6 +212,11 @@ Java_com_limelight_nvstream_jni_MoonBridge_getEstimatedRttInfo(JNIEnv *env, jcla return ((uint64_t)rtt << 32U) | variance; } +JNIEXPORT jstring JNICALL +Java_com_limelight_nvstream_jni_MoonBridge_getLaunchUrlQueryParameters(JNIEnv *env, jclass clazz) { + return (*env)->NewStringUTF(env, LiGetLaunchUrlQueryParameters()); +} + JNIEXPORT jbyte JNICALL Java_com_limelight_nvstream_jni_MoonBridge_guessControllerType(JNIEnv *env, jclass clazz, jint vendorId, jint productId) { unsigned int unDeviceID = MAKE_CONTROLLER_ID(vendorId, productId);