-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathdirective.go
128 lines (106 loc) · 2.25 KB
/
directive.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package avs
import (
"strings"
"time"
)
/********** Alerts **********/
// The DeleteAlert directive.
type DeleteAlert struct {
*Message
Payload struct {
Token string `json:"token"`
} `json:"payload"`
}
// The SetAlert directive.
type SetAlert struct {
*Message
Payload Alert `json:"payload"`
}
/********** AudioPlayer **********/
// The ClearQueue directive.
type ClearQueue struct {
*Message
Payload struct {
ClearBehavior ClearBehavior `json:"clearBehavior"`
} `json:"payload"`
}
// The Play directive.
type Play struct {
*Message
Payload struct {
AudioItem AudioItem `json:"audioItem"`
PlayBehavior PlayBehavior `json:"playBehavior"`
} `json:"payload"`
}
// The Stop directive.
type Stop struct {
*Message
Payload struct{} `json:"payload"`
}
/********** Speaker **********/
// The AdjustVolume directive.
type AdjustVolume struct {
*Message
Payload struct {
Volume int `json:"volume"`
} `json:"payload"`
}
// The SetMute directive.
type SetMute struct {
*Message
Payload struct {
Mute bool `json:"mute"`
} `json:"payload"`
}
// The SetVolume directive.
type SetVolume struct {
*Message
Payload struct {
Volume int `json:"volume"`
} `json:"payload"`
}
/********** SpeechRecognizer **********/
// The ExpectSpeech directive.
type ExpectSpeech struct {
*Message
Payload struct {
TimeoutInMilliseconds int `json:"timeoutInMilliseconds"`
} `json:"payload"`
}
func (m *ExpectSpeech) Timeout() time.Duration {
return time.Duration(m.Payload.TimeoutInMilliseconds) * time.Millisecond
}
// The StopCapture directive.
type StopCapture struct {
*Message
Payload struct{} `json:"payload"`
}
/********** SpeechSynthesizer **********/
// The Speak directive.
type Speak struct {
*Message
Payload struct {
Format string `json:"format"`
URL string `json:"url"`
Token string `json:"token"`
} `json:"payload"`
}
func (m *Speak) ContentId() string {
if !strings.HasPrefix(m.Payload.URL, "cid:") {
return ""
}
return m.Payload.URL[4:]
}
/********** System **********/
// The SetEndpoint directive.
type SetEndpoint struct {
*Message
Payload struct {
Endpoint string `json:"endpoint"`
} `json:"payload"`
}
// The ResetUserInactivity directive.
type ResetUserInactivity struct {
*Message
Payload struct{} `json:"payload"`
}