ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Window 1OutputWindow 2Comments
2
CommandsPausedSpeakingPendingCommandsPausedSpeakingPending
3
Case 1. Collated output
4
speak(utterance1)FALSEFALSEFALSEFALSEFALSEFALSEW1 first calls speak()
5
speak(utterance2)FALSETRUEFALSEutterance1FALSETRUEFALSEW1 calls speak() again before the first utterance ends.
6
FALSETRUETRUEspeak(utterance3)FALSETRUEFALSEW2 calls speak() while Window 1 is speaking.
7
FALSETRUETRUEFALSETRUETRUE
8
FALSETRUETRUEutterance3FALSETRUEFALSEW2 gets output next, even though W1 called speak first.
9
FALSETRUETRUEFALSETRUEFALSE
10
FALSETRUEFALSEutterance2FALSETRUEFALSE
11
FALSETRUEFALSEFALSETRUEFALSE
12
FALSETRUEFALSEFALSETRUEFALSE
13
FALSEFALSEFALSEFALSEFALSEFALSE
14
Case 2. Pause while speaking
15
FALSEFALSEFALSEspeak(utterance4)FALSEFALSEFALSE
16
pause()TRUETRUEFALSEutterance4FALSETRUEFALSEW1 can't pause utterance it didn't speak, but it's local state is paused
17
speak(utterance5)TRUETRUEFALSEFALSETRUEFALSEW1 speaks in paused state, utterance is queued
18
TRUETRUETRUEpause()FALSETRUEFALSEW2 can pause its own utterance.
19
TRUETRUETRUEresume()TRUETRUEFALSEW2 can resume its own utterance
20
TRUETRUETRUEFALSETRUEFALSE
21
resume()TRUEFALSETRUEFALSEFALSEFALSEW1 is in paused state, needs to resume to get spoken
22
FALSETRUEFALSEutterance5FALSETRUEFALSE
23
FALSEFALSEFALSEFALSEFALSEFALSE
24
Case 3. Cancel
25
speak(utterance5)FALSEFALSEFALSEFALSEFALSEFALSE
26
speak(utterance6)FALSETRUEFALSEutterance5speak(utterance8)FALSETRUEFALSE
27
speak(utterance7)FALSETRUETRUEspeak(utterance9)FALSETRUETRUE
28
FALSETRUETRUEcancel()FALSETRUETRUEW2 can't stop utterance from other window, but its queue will be dropped.
29
FALSETRUETRUEFALSETRUEFALSE
30
FALSETRUETRUEutterance6FALSETRUEFALSE
31
cancel()FALSETRUETRUEFALSETRUEFALSEW1 will stop utterance and drop its queue
32
FALSEFALSEFALSEFALSEFALSEFALSE
33
Case 4. Pause while not speaking
34
pause()FALSEFALSEFALSEFALSEFALSEFALSEW1 pauses when no utterances are spoken
35
TRUEFALSEFALSEFALSEFALSEFALSEPaused state remains local to W1
36
speak(utterance10)TRUEFALSEFALSEFALSEFALSEFALSEW1 speak method is held by local paused state
37
TRUEFALSETRUEspeak(utterance11)FALSEFALSEFALSE
38
resume()TRUETRUETRUEutterance11FALSETRUEFALSEW1 calls resume, utterance gets queued
39
FALSETRUETRUEFALSETRUEFALSE
40
FALSETRUEFALSEutterance10FALSETRUEFALSEW1 utterance gets spoken when W2 utterance completes
41
FALSETRUEFALSEFALSETRUEFALSE
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100