11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright (c) 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccicr.define('hotword.constants', function() {
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci'use strict';
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Hotword data shared module extension's ID.
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @const {string}
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar SHARED_MODULE_ID = 'lccekmodgklaepjeofjdjpbminllajkg';
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Path to shared module data.
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @const {string}
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar SHARED_MODULE_ROOT = '_modules/' + SHARED_MODULE_ID;
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Time to wait for expected messages, in milliseconds.
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @enum {number}
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar TimeoutMs = {
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  SHORT: 200,
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  NORMAL: 500,
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  LONG: 2000
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * The URL of the files used by the plugin.
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @enum {string}
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar File = {
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  RECOGNIZER_CONFIG: 'hotword.data',
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Errors emitted by the NaClManager.
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @enum {string}
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar Error = {
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  NACL_CRASH: 'nacl_crash',
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  TIMEOUT: 'timeout',
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Event types supported by NaClManager.
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @enum {string}
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar Event = {
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  READY: 'ready',
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  TRIGGER: 'trigger',
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  ERROR: 'error',
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Messages for communicating with the NaCl recognizer plugin. These must match
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * constants in <google3>/hotword_plugin.c
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @enum {string}
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar NaClPlugin = {
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  RESTART: 'r',
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  SAMPLE_RATE_PREFIX: 'h',
651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MODEL_PREFIX: 'm',
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  STOP: 's',
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  REQUEST_MODEL: 'model',
681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MODEL_LOADED: 'model_loaded',
691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  READY_FOR_AUDIO: 'audio',
701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  STOPPED: 'stopped',
711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  HOTWORD_DETECTED: 'hotword',
721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  MS_CONFIGURED: 'ms_configured'
731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Source of a hotwording session request.
771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @enum {string}
781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar SessionSource = {
801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  LAUNCHER: 'launcher'
811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/**
841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * The browser UI language.
851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @const {string}
861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */
871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivar UI_LANGUAGE = (chrome.i18n && chrome.i18n.getUILanguage) ?
881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      chrome.i18n.getUILanguage() : '';
891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccireturn {
911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  SHARED_MODULE_ID: SHARED_MODULE_ID,
921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  SHARED_MODULE_ROOT: SHARED_MODULE_ROOT,
931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  TimeoutMs: TimeoutMs,
941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  File: File,
951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  Error: Error,
961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  Event: Event,
971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  NaClPlugin: NaClPlugin,
981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  SessionSource: SessionSource,
991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  UI_LANGUAGE: UI_LANGUAGE
1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci});
103