speakWorker = {
const set = v => viewof isChecked.setValue(v)
while (sayText.length) {
yield 'waiting to start'
await Promises.delay(PLAYBACK_SPEED * 7)
for (const char of morseLib.encode(sayText)) {
if (char === '.') {
yield 'saying .'
set(true)
await Promises.delay(PLAYBACK_SPEED)
set(false)
} else if (char === '-') {
yield 'saying -'
set(true)
await Promises.delay(PLAYBACK_SPEED * 3)
set(false)
} else if (char === ' ') {
yield 'saying space'
set(false)
await Promises.delay(PLAYBACK_SPEED)
}
await Promises.delay(PLAYBACK_SPEED)
}
}
yield 'idle'
}