speakWithOutcome

fun <KEY, OUTCOME> speakWithOutcome(eventKey: KEY, currentKey: () -> KEY?, autoReadoutOrder: List<KEY>, queueEnabled: Boolean, speak: (queue: Boolean) -> Unit, stop: () -> Unit, outcomes: SpeakOutcomes<OUTCOME>): OUTCOME

speakWithPriority の4経路を、呼び出し側が指定した OUTCOME の値へ変換する。

読み上げなしは SpeakOutcomes.skipped、キュー追加は SpeakOutcomes.queued、停止を伴う割り込み再生は SpeakOutcomes.interrupted、 それ以外の通常再生は SpeakOutcomes.spoken を返す。結果の型と値を受け取ることで :core:domain に依存しない。

経路4(再生中のイベントなし)では stop が呼ばれないため、通常再生として扱う。 経路3と取り違えると通常の読み上げが「割り込み再生」として記録される(PR #1626)。