SoundTriggerInternal.java revision a772e5fc062c8de48cb9c1d61755110f6b2e189b
1a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra/** 2a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Copyright (C) 2014 The Android Open Source Project 3a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * 4a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Licensed under the Apache License, Version 2.0 (the "License"); 5a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * you may not use this file except in compliance with the License. 6a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * You may obtain a copy of the License at 7a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * 8a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * http://www.apache.org/licenses/LICENSE-2.0 9a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * 10a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Unless required by applicable law or agreed to in writing, software 11a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * distributed under the License is distributed on an "AS IS" BASIS, 12a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * See the License for the specific language governing permissions and 14a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * limitations under the License. 15a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra */ 16a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 17a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishrapackage com.android.server.soundtrigger; 18a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 19a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.IRecognitionStatusCallback; 20a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger; 21a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.Keyphrase; 22a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionEvent; 23a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.KeyphraseRecognitionExtra; 24a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel; 25a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.ModuleProperties; 26a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.RecognitionConfig; 27a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.RecognitionEvent; 28a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTrigger.SoundModelEvent; 29a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport android.hardware.soundtrigger.SoundTriggerModule; 30a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 31a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport java.io.FileDescriptor; 32a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishraimport java.io.PrintWriter; 33a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 34a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra/** 35a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Provides a local service for managing voice-related recoginition models. This is primarily used 36a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * by the {@link VoiceInteractionManagerService}. 37a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra */ 38a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishrapublic abstract class SoundTriggerInternal { 39a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra /** 40a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Return codes for {@link #startRecognition(int, KeyphraseSoundModel, 41a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * IRecognitionStatusCallback, RecognitionConfig)}, 42a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * {@link #stopRecognition(int, IRecognitionStatusCallback)} 43a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra */ 44a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public static final int STATUS_ERROR = SoundTrigger.STATUS_ERROR; 45a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public static final int STATUS_OK = SoundTrigger.STATUS_OK; 46a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 47a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra /** The {@link ModuleProperties} for the system, or null if none exists. */ 48a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra private ModuleProperties moduleProperties; 49a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 50a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra /** 51a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Starts recognition for the given keyphraseId. 52a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * 53a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @param keyphraseId The identifier of the keyphrase for which 54a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * the recognition is to be started. 55a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @param soundModel The sound model to use for recognition. 56a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @param listener The listener for the recognition events related to the given keyphrase. 57a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @return One of {@link #STATUS_ERROR} or {@link #STATUS_OK}. 58a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra */ 59a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public abstract int startRecognition(int keyphraseId, KeyphraseSoundModel soundModel, 60a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra IRecognitionStatusCallback listener, RecognitionConfig recognitionConfig); 61a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 62a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra /** 63a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Stops recognition for the given {@link Keyphrase} if a recognition is 64a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * currently active. 65a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * 66a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @param keyphraseId The identifier of the keyphrase for which 67a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * the recognition is to be stopped. 68a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @param listener The listener for the recognition events related to the given keyphrase. 69a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * 70a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * @return One of {@link #STATUS_ERROR} or {@link #STATUS_OK}. 71a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra */ 72a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public abstract int stopRecognition(int keyphraseId, IRecognitionStatusCallback listener); 73a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 74a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra /** 75a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra * Stops all recognitions active currently and clears the internal state. 76a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra */ 77a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public abstract void stopAllRecognitions(); 78a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 79a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public ModuleProperties getModuleProperties() { 80a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra return moduleProperties; 81a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra } 82a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra 83a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra public abstract void dump(FileDescriptor fd, PrintWriter pw, String[] args); 84a772e5fc062c8de48cb9c1d61755110f6b2e189bArunesh Mishra} 85