!7 sclass Entry { S fullLine, time, text, comments; } sclass FullSpeechLogAsTable extends DynObjectTable { start { dontPersist(); setData(map(func(S line) -> Entry { makeEntry(line) }, scanLog(speechRecognitionLog()))); onSpeechRecognized_raw(voidfunc(S line) { add(makeEntry(line)) }); } Entry makeEntry(S line) { ret nu(Entry, fullLine := line, text := speechRecognitionLog_extractUtterance(line), time := formatLocalDateWithMilliseconds(parseLeadingLong(line))); } L getList() { ret syncCloneList(data); } }