Observe native radio capture and PTT commands in host tests
This commit is contained in:
1 parent
4ff2f56aa8
commit
81b9469302
1 file changed
+25
+25
@@ -34,6 +34,29 @@ object LogManager {
|
||||
|
||||
/** Только host-тест: считает уведомления standby, не загружает JNI и не запускает ядро. */
|
||||
object NativeLib {
|
||||
data class RadioCommand(val kind: String, val group: Long)
|
||||
val radioCommands: MutableList<RadioCommand> = Collections.synchronizedList(mutableListOf())
|
||||
@Volatile var radioRequest = 0L
|
||||
@Volatile private var radioGroup = 0L
|
||||
@Volatile private var radioMode = 0
|
||||
@Volatile private var radioTx = false
|
||||
fun radioSetActive(group: Long, active: Boolean) { radioCommands.add(RadioCommand("active=$active", group)) }
|
||||
fun radioConfigure(request: Long, settings: RadioAutoSettings): Boolean { radioRequest = request; return settings.valid() }
|
||||
fun radioAudioStart(group: Long, channels: Int): Boolean {
|
||||
radioGroup = group; radioCommands.add(RadioCommand("audio start", group)); return true
|
||||
}
|
||||
fun radioAudioStop() { radioTx = false; radioCommands.add(RadioCommand("audio stop", radioGroup)) }
|
||||
fun radioAudioPull(group: Long, out: ShortArray, playedFrames: Long): Int = 0
|
||||
fun radioAudioFeed(group: Long, samples: ShortArray): Boolean = group == radioGroup
|
||||
fun radioCaptureStart(group: Long, channels: Int, mode: Int): Boolean {
|
||||
radioMode = mode; radioCommands.add(RadioCommand("capture start", group)); return true
|
||||
}
|
||||
fun radioCaptureStop() { radioTx = false; radioCommands.add(RadioCommand("capture stop", radioGroup)) }
|
||||
fun radioCaptureDiscontinuity(group: Long) { radioCommands.add(RadioCommand("boundary", group)) }
|
||||
fun radioAutoMode() = radioMode
|
||||
fun radioTransmitting() = radioTx
|
||||
fun radioTalkBegin(group: Long) { radioTx = true; radioCommands.add(RadioCommand("begin", group)) }
|
||||
fun radioTalkEnd(group: Long) { radioTx = false; radioCommands.add(RadioCommand("end", group)) }
|
||||
data class LocalInvite(val peer: Long, val request: Long, val link: String)
|
||||
val localInvites = mutableListOf<LocalInvite>()
|
||||
var sendLocal: (LocalInvite) -> Boolean = { true }
|
||||
@@ -84,6 +107,8 @@ object NativeLib {
|
||||
|
||||
/** Управляемая подготовка конфига: тест удерживает реальный worker, считает перекрытия и затем дожидается его завершения. */
|
||||
class HostConfigProvider {
|
||||
var radioSettings = RadioAutoSettings()
|
||||
fun getRadioAutoSettings() = radioSettings
|
||||
var mediaProfile = MediaAudioProfile.AUTO
|
||||
var failMediaRead = false
|
||||
var failMediaWrite = false
|
||||
|
||||
Reference in new issue
Block a user