Clarify asynchronous radio signaling and wire identity contracts
This commit is contained in:
1 parent
cda411a57e
commit
6ec8950a85
2 files changed
+5
-2
No files matched your search
@@ -303,7 +303,10 @@ object NativeLib {
|
||||
* true — копия принята очередью живого worker; применение асинхронно, stop/restart может отменить её.
|
||||
* После SERVICE_STARTED монитор повторяет актуальное состояние. false — отказ с native-диагностикой. */
|
||||
fun setPhoneState(state: Int, policy: Int): Boolean = nativeSetPhoneState(state, policy)
|
||||
/* action: radio_call_action, результат — CHAT_EVT_RADIO_CALL (65). */
|
||||
/** Адресное приглашение в рацию: action — radio_call_action (1..8), id — ненулевые uint64-биты Long.
|
||||
* Для START (1) group/peer также ненулевые; прочие действия используют id.
|
||||
* true — копия команды принята очередью живого uasync; результат сигналинга приходит событием 65
|
||||
* (id/group/peer:8LE + phase/reason/incoming:1). false — отказ с native-логом; restart отменяет старые запросы. */
|
||||
fun radioCall(id: Long, action: Int, group: Long = 0, peer: Long = 0): Boolean = nativeRadioCall(id, group, peer, action)
|
||||
private external fun nativeRadioCall(id: Long, group: Long, peer: Long, action: Int): Boolean
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ object RadioCallController {
|
||||
/** На main: занят также между принятым START и первым событием; ENDED-карточка не удерживает активность. */
|
||||
fun busy(): Boolean = pendingStart != null || _state.value?.phase?.let { it != RadioCallPhase.ENDED } == true
|
||||
|
||||
/** На main запросить START ненулевым участнику/каналу. Резерв busy снимает первое событие либо reset/отказ очереди. */
|
||||
/** На main запросить START с ненулевыми ID канала и участника. Busy снимает первое событие либо reset/отказ очереди. */
|
||||
fun start(channel: String, peer: Long) {
|
||||
checkMain()
|
||||
if (!ready || !NativeLib.isReady() || busy() || CallController.state.value?.ongoing == true) {
|
||||
|
||||
Reference in new issue
Block a user