• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5cr.define('hotword.constants', function() {
6'use strict';
7
8/**
9 * Hotword data shared module extension's ID.
10 * @const {string}
11 */
12var SHARED_MODULE_ID = 'lccekmodgklaepjeofjdjpbminllajkg';
13
14/**
15 * Path to shared module data.
16 * @const {string}
17 */
18var SHARED_MODULE_ROOT = '_modules/' + SHARED_MODULE_ID;
19
20/**
21 * Time to wait for expected messages, in milliseconds.
22 * @enum {number}
23 */
24var TimeoutMs = {
25  SHORT: 200,
26  NORMAL: 500,
27  LONG: 2000
28};
29
30/**
31 * The URL of the files used by the plugin.
32 * @enum {string}
33 */
34var File = {
35  RECOGNIZER_CONFIG: 'hotword.data',
36};
37
38/**
39 * Errors emitted by the NaClManager.
40 * @enum {string}
41 */
42var Error = {
43  NACL_CRASH: 'nacl_crash',
44  TIMEOUT: 'timeout',
45};
46
47/**
48 * Event types supported by NaClManager.
49 * @enum {string}
50 */
51var Event = {
52  READY: 'ready',
53  TRIGGER: 'trigger',
54  ERROR: 'error',
55};
56
57/**
58 * Messages for communicating with the NaCl recognizer plugin. These must match
59 * constants in <google3>/hotword_plugin.c
60 * @enum {string}
61 */
62var NaClPlugin = {
63  RESTART: 'r',
64  SAMPLE_RATE_PREFIX: 'h',
65  MODEL_PREFIX: 'm',
66  STOP: 's',
67  REQUEST_MODEL: 'model',
68  MODEL_LOADED: 'model_loaded',
69  READY_FOR_AUDIO: 'audio',
70  STOPPED: 'stopped',
71  HOTWORD_DETECTED: 'hotword',
72  MS_CONFIGURED: 'ms_configured'
73};
74
75/**
76 * Source of a hotwording session request.
77 * @enum {string}
78 */
79var SessionSource = {
80  LAUNCHER: 'launcher'
81};
82
83/**
84 * The browser UI language.
85 * @const {string}
86 */
87var UI_LANGUAGE = (chrome.i18n && chrome.i18n.getUILanguage) ?
88      chrome.i18n.getUILanguage() : '';
89
90return {
91  SHARED_MODULE_ID: SHARED_MODULE_ID,
92  SHARED_MODULE_ROOT: SHARED_MODULE_ROOT,
93  TimeoutMs: TimeoutMs,
94  File: File,
95  Error: Error,
96  Event: Event,
97  NaClPlugin: NaClPlugin,
98  SessionSource: SessionSource,
99  UI_LANGUAGE: UI_LANGUAGE
100};
101
102});
103