From 1bffa6bf4106e4b2179c75302cb047b0dd58da72 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 20 Mar 2019 18:29:56 -0700 Subject: [PATCH] Update moonlight-common-c with connection listener and build warning fixes --- .../nvstream/NvConnectionListener.java | 1 + .../limelight/nvstream/jni/MoonBridge.java | 21 ++++----- .../src/main/jni/moonlight-core/callbacks.c | 43 +++++++------------ .../jni/moonlight-core/moonlight-common-c | 2 +- 4 files changed, 26 insertions(+), 41 deletions(-) diff --git a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnectionListener.java b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnectionListener.java index 44aad3aa..29b98920 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/NvConnectionListener.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/NvConnectionListener.java @@ -7,6 +7,7 @@ public interface NvConnectionListener { void connectionStarted(); void connectionTerminated(long errorCode); + void connectionStatusUpdate(int connectionStatus); void displayMessage(String message); void displayTransientMessage(String message); diff --git a/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java b/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java index c3510d9b..28b1e3d0 100644 --- a/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java +++ b/moonlight-common/src/main/java/com/limelight/nvstream/jni/MoonBridge.java @@ -29,6 +29,9 @@ public class MoonBridge { public static final int DR_OK = 0; public static final int DR_NEED_IDR = -1; + public static final int CONN_STATUS_OKAY = 0; + public static final int CONN_STATUS_POOR = 1; + private static AudioRenderer audioRenderer; private static VideoDecoderRenderer videoRenderer; private static NvConnectionListener connectionListener; @@ -144,24 +147,18 @@ public class MoonBridge { } } - public static void bridgeClDisplayMessage(String message) { - if (connectionListener != null) { - connectionListener.displayMessage(message); - } - } - - public static void bridgeClDisplayTransientMessage(String message) { - if (connectionListener != null) { - connectionListener.displayTransientMessage(message); - } - } - public static void bridgeClRumble(short controllerNumber, short lowFreqMotor, short highFreqMotor) { if (connectionListener != null) { connectionListener.rumble(controllerNumber, lowFreqMotor, highFreqMotor); } } + public static void bridgeClConnectionStatusUpdate(int connectionStatus) { + if (connectionListener != null) { + connectionListener.connectionStatusUpdate(connectionStatus); + } + } + public static void setupBridge(VideoDecoderRenderer videoRenderer, AudioRenderer audioRenderer, NvConnectionListener connectionListener) { MoonBridge.videoRenderer = videoRenderer; MoonBridge.audioRenderer = audioRenderer; diff --git a/moonlight-common/src/main/jni/moonlight-core/callbacks.c b/moonlight-common/src/main/jni/moonlight-core/callbacks.c index dcdfd187..531386c7 100644 --- a/moonlight-common/src/main/jni/moonlight-core/callbacks.c +++ b/moonlight-common/src/main/jni/moonlight-core/callbacks.c @@ -32,9 +32,8 @@ static jmethodID BridgeClStageCompleteMethod; static jmethodID BridgeClStageFailedMethod; static jmethodID BridgeClConnectionStartedMethod; static jmethodID BridgeClConnectionTerminatedMethod; -static jmethodID BridgeClDisplayMessageMethod; -static jmethodID BridgeClDisplayTransientMessageMethod; static jmethodID BridgeClRumbleMethod; +static jmethodID BridgeClConnectionStatusUpdateMethod; static jbyteArray DecodedFrameBuffer; static jbyteArray DecodedAudioBuffer; @@ -93,9 +92,8 @@ Java_com_limelight_nvstream_jni_MoonBridge_init(JNIEnv *env, jclass clazz) { BridgeClStageFailedMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClStageFailed", "(IJ)V"); BridgeClConnectionStartedMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClConnectionStarted", "()V"); BridgeClConnectionTerminatedMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClConnectionTerminated", "(J)V"); - BridgeClDisplayMessageMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClDisplayMessage", "(Ljava/lang/String;)V"); - BridgeClDisplayTransientMessageMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClDisplayTransientMessage", "(Ljava/lang/String;)V"); BridgeClRumbleMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClRumble", "(SSS)V"); + BridgeClConnectionStatusUpdateMethod = (*env)->GetStaticMethodID(env, clazz, "bridgeClConnectionStatusUpdate", "(I)V"); } int BridgeDrSetup(int videoFormat, int width, int height, int redrawRate, void* context, int drFlags) { @@ -345,27 +343,7 @@ void BridgeClConnectionTerminated(long errorCode) { (*env)->CallStaticVoidMethod(env, GlobalBridgeClass, BridgeClConnectionTerminatedMethod, errorCode); } -void BridgeClDisplayMessage(const char* message) { - JNIEnv* env = GetThreadEnv(); - - if ((*env)->ExceptionCheck(env)) { - return; - } - - (*env)->CallStaticVoidMethod(env, GlobalBridgeClass, BridgeClDisplayMessageMethod, (*env)->NewStringUTF(env, message)); -} - -void BridgeClDisplayTransientMessage(const char* message) { - JNIEnv* env = GetThreadEnv(); - - if ((*env)->ExceptionCheck(env)) { - return; - } - - (*env)->CallStaticVoidMethod(env, GlobalBridgeClass, BridgeClDisplayTransientMessageMethod, (*env)->NewStringUTF(env, message)); -} - -void BridgeClRumble(short controllerNumber, short lowFreqMotor, short highFreqMotor) { +void BridgeClRumble(unsigned short controllerNumber, unsigned short lowFreqMotor, unsigned short highFreqMotor) { JNIEnv* env = GetThreadEnv(); if ((*env)->ExceptionCheck(env)) { @@ -375,6 +353,16 @@ void BridgeClRumble(short controllerNumber, short lowFreqMotor, short highFreqMo (*env)->CallStaticVoidMethod(env, GlobalBridgeClass, BridgeClRumbleMethod, controllerNumber, lowFreqMotor, highFreqMotor); } +void BridgeClConnectionStatusUpdate(int connectionStatus) { + JNIEnv* env = GetThreadEnv(); + + if ((*env)->ExceptionCheck(env)) { + return; + } + + (*env)->CallStaticVoidMethod(env, GlobalBridgeClass, BridgeClConnectionStatusUpdateMethod, connectionStatus); +} + void BridgeClLogMessage(const char* format, ...) { va_list va; va_start(va, format); @@ -404,10 +392,9 @@ static CONNECTION_LISTENER_CALLBACKS BridgeConnListenerCallbacks = { .stageFailed = BridgeClStageFailed, .connectionStarted = BridgeClConnectionStarted, .connectionTerminated = BridgeClConnectionTerminated, - .displayMessage = BridgeClDisplayMessage, - .displayTransientMessage = BridgeClDisplayTransientMessage, .logMessage = BridgeClLogMessage, - .rumble = BridgeClRumble + .rumble = BridgeClRumble, + .connectionStatusUpdate = BridgeClConnectionStatusUpdate, }; JNIEXPORT jint JNICALL diff --git a/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c b/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c index 83d7f675..e9bc1070 160000 --- a/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c +++ b/moonlight-common/src/main/jni/moonlight-core/moonlight-common-c @@ -1 +1 @@ -Subproject commit 83d7f675a7e49cea371561b74cd0d3672b64e9f9 +Subproject commit e9bc1070b716e1cd79646cba9e02293f1ffb4c3b