summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt17
1 files changed, 15 insertions, 2 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt
index 7298795d71..f4eb178cb4 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt
@@ -27,8 +27,6 @@ import org.dolphinemu.dolphinemu.features.netplay.model.ConnectionType
import org.dolphinemu.dolphinemu.features.netplay.model.NetplayMessage
import org.dolphinemu.dolphinemu.features.netplay.model.Player
-//TODO add other necessary @Keep annotations
-//TODO clear boot session data at appropriate time
object Netplay {
@Keep
private var netPlayClientPointer: Long = 0
@@ -123,6 +121,11 @@ object Netplay {
sessionScope?.cancel()
sessionScope = null
+ if (bootSessionDataPointer != 0L) {
+ ReleaseBootSessionData()
+ bootSessionDataPointer = 0
+ }
+
if (netPlayClientPointer != 0L) {
ReleaseNetplayClient()
netPlayClientPointer = 0
@@ -159,6 +162,9 @@ object Netplay {
external fun adjustPadBufferSize(buffer: Int)
@JvmStatic
+ private external fun ReleaseBootSessionData()
+
+ @JvmStatic
private external fun ReleaseNetplayClient()
private fun mergeMessages(): Flow<NetplayMessage> = merge(
@@ -170,6 +176,7 @@ object Netplay {
// NetPlayUI callbacks
+ @Keep
@JvmStatic
fun onBootGame(gameFilePath: String, bootSessionDataPointer: Long) {
this.bootSessionDataPointer = bootSessionDataPointer
@@ -189,31 +196,37 @@ object Netplay {
_connectionLost.trySend(Unit)
}
+ @Keep
@JvmStatic
fun onConnectionError(message: String) {
_connectionErrors.trySend(message)
}
+ @Keep
@JvmStatic
fun onUpdate(players: Array<Player>) {
_players.tryEmit(players.toList())
}
+ @Keep
@JvmStatic
fun onChatMessageReceived(message: String) {
_chatMessages.tryEmit(message)
}
+ @Keep
@JvmStatic
fun onHostInputAuthorityChanged(enabled: Boolean) {
_hostInputAuthorityEnabled.tryEmit(enabled)
}
+ @Keep
@JvmStatic
fun onGameChanged(game: String) {
_game.tryEmit(game)
}
+ @Keep
@JvmStatic
fun onPadBufferChanged(buffer: Int) {
// Only for remote pad buffer settings. Ignore local max buffer changes.