From 6f69da321c96a3660e440116fdf47c06e89cadbd Mon Sep 17 00:00:00 2001 From: Avently <7953703+avently@users.noreply.github.com> Date: Tue, 3 Sep 2024 00:26:35 +0900 Subject: [PATCH] working all 4 streams with mute handling differently --- .../common/views/call/CallView.android.kt | 3 +- .../chat/simplex/common/views/call/WebRTC.kt | 8 +- .../resources/assets/www/android/call.html | 19 ++ .../resources/assets/www/android/style.css | 32 ++ .../commonMain/resources/assets/www/call.js | 273 ++++++++++------ .../resources/assets/www/desktop/call.html | 20 ++ .../resources/assets/www/desktop/style.css | 32 ++ .../resources/assets/www/desktop/ui.js | 30 +- .../common/views/call/CallView.desktop.kt | 3 +- .../simplex-chat-webrtc/src/android/call.html | 19 ++ .../simplex-chat-webrtc/src/android/style.css | 32 ++ packages/simplex-chat-webrtc/src/call.ts | 291 ++++++++++++------ .../simplex-chat-webrtc/src/desktop/call.html | 20 ++ .../simplex-chat-webrtc/src/desktop/style.css | 32 ++ .../simplex-chat-webrtc/src/desktop/ui.ts | 27 +- 15 files changed, 624 insertions(+), 217 deletions(-) diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt index 8f364ec070..5088869a4e 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/call/CallView.android.kt @@ -168,7 +168,8 @@ actual fun ActiveCallView() { when (r.source) { CallMediaSource.Mic -> it.copy(peerMediaSources = sources.copy(mic = r.enabled)) CallMediaSource.Camera -> it.copy(peerMediaSources = sources.copy(camera = r.enabled)) - CallMediaSource.Screen -> it.copy(peerMediaSources = sources.copy(screen = r.enabled)) + CallMediaSource.ScreenAudio -> it.copy(peerMediaSources = sources.copy(screenAudio = r.enabled)) + CallMediaSource.ScreenVideo -> it.copy(peerMediaSources = sources.copy(screenVideo = r.enabled)) } } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/call/WebRTC.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/call/WebRTC.kt index becedba727..ef6b8b5da2 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/call/WebRTC.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/call/WebRTC.kt @@ -71,9 +71,10 @@ enum class CallState { @Serializable data class CallMediaSources( val mic: Boolean = false, val camera: Boolean = false, - val screen: Boolean = false + val screenAudio: Boolean = false, + val screenVideo: Boolean = false ) { - fun hasVideo() = camera || screen + fun hasVideo() = camera || screenVideo } @Serializable @@ -178,7 +179,8 @@ enum class CallMediaType { enum class CallMediaSource { @SerialName("mic") Mic, @SerialName("camera") Camera, - @SerialName("screen") Screen + @SerialName("screenAudio") ScreenAudio, + @SerialName("screenVideo") ScreenVideo } @Serializable diff --git a/apps/multiplatform/common/src/commonMain/resources/assets/www/android/call.html b/apps/multiplatform/common/src/commonMain/resources/assets/www/android/call.html index cbdf7a23a3..c672ea32aa 100644 --- a/apps/multiplatform/common/src/commonMain/resources/assets/www/android/call.html +++ b/apps/multiplatform/common/src/commonMain/resources/assets/www/android/call.html @@ -14,6 +14,16 @@ poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAEUlEQVR42mNk+M+AARiHsiAAcCIKAYwFoQ8AAAAASUVORK5CYII=" onclick="javascript:toggleRemoteVideoFitFill()" > + + + + +