Compile publisher service and controller in the lifecycle test harness
This commit is contained in:
1 parent
1beb19a7f8
commit
9166268102
2 files changed
+29
-1
No files matched your search
@@ -9,7 +9,8 @@ kotlin {
|
||||
"com/utun/chat/data/RouterHostEnvironment.kt", "com/utun/chat/data/RadioHostEnvironment.kt",
|
||||
"com/utun/chat/data/CallServiceHost.kt", "com/utun/chat/data/CallService.kt", "com/utun/chat/data/CallController.kt",
|
||||
"com/utun/chat/data/CallState.kt", "com/utun/chat/data/CallAudioRouter.kt", "com/utun/chat/data/CoreActivity.kt",
|
||||
"com/utun/chat/data/RadioAutoSettings.kt")
|
||||
"com/utun/chat/data/RadioAutoSettings.kt", "com/utun/chat/data/StreamServiceHost.kt",
|
||||
"com/utun/chat/data/StreamService.kt", "com/utun/chat/data/StreamController.kt", "com/utun/chat/data/StreamTxStats.kt")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.utun.chat.data
|
||||
|
||||
import android.content.Context
|
||||
|
||||
/** Camera/DSP — управляемая граница, настоящие StreamController/StreamService компилируются из приложения. */
|
||||
data class StreamCaptureConfig(val value: Int = 1)
|
||||
typealias RadioCompressorSettings = Any
|
||||
class StreamPreview { var closed = false; fun close() { closed = true } }
|
||||
class StreamCaptureEngine(context: Context, val id: Long, group: Long, val config: StreamCaptureConfig, microphone: Boolean,
|
||||
preview: StreamPreview, initialAudioCompressor: RadioCompressorSettings,
|
||||
private val ready: (StreamCaptureConfig, Boolean) -> Unit, failure: (String) -> Unit) {
|
||||
companion object { var nextFailures = emptySet<String>(); val created = mutableListOf<StreamCaptureEngine>() }
|
||||
init { created.add(this) }
|
||||
var failures = nextFailures
|
||||
var started = false
|
||||
var stopped = false
|
||||
var stops = 0
|
||||
var audioCompressorSettings = initialAudioCompressor
|
||||
fun start() { started = true; check("start" !in failures); ready(config, false) }
|
||||
fun stop(): Boolean {
|
||||
stops++; check("stop" !in failures)
|
||||
if ("pending" in failures) return false
|
||||
stopped = true; check("stop after" !in failures); return true
|
||||
}
|
||||
fun change(config: StreamCaptureConfig) { check("change" !in failures); ready(config, false) }
|
||||
fun setAudioEnabled(enabled: Boolean): Boolean { check("audio" !in failures); return "audio reject" !in failures }
|
||||
}
|
||||
Reference in new issue
Block a user