File tree Expand file tree Collapse file tree 3 files changed +50
-5
lines changed
Expand file tree Collapse file tree 3 files changed +50
-5
lines changed Original file line number Diff line number Diff line change @@ -95,10 +95,17 @@ function sepiaFW_build_input_controls_cmdl() {
9595 }
9696 }
9797 function wakeWordBroadcaster ( ev ) {
98- if ( Cmdl . broadcasters . wakeWord && ev . detail && ev . detail . keyword ) {
99- broadcastEvent ( "sepia-wake-word" , {
100- word : ev . detail . keyword
101- } ) ;
98+ if ( Cmdl . broadcasters . wakeWord && ev . detail && ev . detail . state ) {
99+ var d = {
100+ state : ev . detail . state
101+ }
102+ if ( ev . detail . keyword ) {
103+ d . word = ev . detail . keyword ;
104+ }
105+ if ( ev . detail . msg ) {
106+ d . msg = ev . detail . msg ;
107+ }
108+ broadcastEvent ( "sepia-wake-word" , d ) ;
102109 }
103110 }
104111
@@ -162,6 +169,23 @@ function sepiaFW_build_input_controls_cmdl() {
162169
163170 Cmdl . set = { } ;
164171
172+ Cmdl . set . wakeword = function ( ev ) {
173+ if ( ev . state ) {
174+ if ( ev . state == "on" || ev . state == "active" || ev . state == "activate" ) {
175+ SepiaFW . wakeTriggers . useWakeWord = true ;
176+ if ( ! SepiaFW . wakeTriggers . engineLoaded ) {
177+ SepiaFW . wakeTriggers . setupWakeWords ( ) ; //will auto-start after setup
178+ } else if ( ! SepiaFW . wakeTriggers . isListening ( ) ) {
179+ SepiaFW . wakeTriggers . listenToWakeWords ( ) ;
180+ }
181+ } else if ( ev . state == "off" || ev . state == "inactive" || ev . state == "deactivate" ) {
182+ if ( SepiaFW . wakeTriggers . engineLoaded && SepiaFW . wakeTriggers . isListening ( ) ) {
183+ SepiaFW . wakeTriggers . stopListeningToWakeWords ( ) ;
184+ }
185+ }
186+ }
187+ }
188+
165189 //---------- GET ------------
166190
167191 Cmdl . get = { } ;
Original file line number Diff line number Diff line change @@ -195,9 +195,19 @@ function sepiaFW_build_animate(){
195195
196196 Animate . wakeWord . active = function ( ) {
197197 $ ( '#sepiaFW-nav-label-online-status' ) . addClass ( "wake-word-active" ) ;
198+ //dispatch event
199+ var event = new CustomEvent ( 'sepia_wake_word' , { detail : {
200+ state : "active"
201+ } } ) ;
202+ document . dispatchEvent ( event ) ;
198203 }
199204 Animate . wakeWord . inactive = function ( ) {
200205 $ ( '#sepiaFW-nav-label-online-status' ) . removeClass ( "wake-word-active" ) ;
206+ //dispatch event
207+ var event = new CustomEvent ( 'sepia_wake_word' , { detail : {
208+ state : "inactive"
209+ } } ) ;
210+ document . dispatchEvent ( event ) ;
201211 }
202212
203213 //channel animations for missed off-channel messages:
Original file line number Diff line number Diff line change @@ -18,7 +18,8 @@ function sepiaFW_build_wake_triggers() {
1818
1919 //dispatch event
2020 var event = new CustomEvent ( 'sepia_wake_word' , { detail : {
21- keyword : keyword
21+ keyword : keyword ,
22+ state : "triggered"
2223 } } ) ;
2324 document . dispatchEvent ( event ) ;
2425
@@ -33,6 +34,15 @@ function sepiaFW_build_wake_triggers() {
3334 } ) ;
3435 }
3536 }
37+ function broadcastWakeWordError ( error ) {
38+ //dispatch event
39+ var event = new CustomEvent ( 'sepia_wake_word' , { detail : {
40+ msg : error ,
41+ state : "error"
42+ } } ) ;
43+ document . dispatchEvent ( event ) ;
44+ }
45+ //NOTE: active, inactive: see ui.animate.wakeWord...
3646
3747 //Interface
3848
@@ -399,6 +409,7 @@ function sepiaFW_build_wake_triggers() {
399409 }
400410 SepiaFW . debug . error ( "Porcupine: " + errMsg ) ;
401411 SepiaFW . ui . showPopup ( "Porcupine error: " + errMsg ) ;
412+ broadcastWakeWordError ( errMsg ) ;
402413 } ;
403414
404415 //-------------------------------------------------
You can’t perform that action at this time.
0 commit comments