387bdf02cb
These methods are not aligned with "structured interface" approach. Bug: 68823037 Test: make Change-Id: Id73d676e0386125bca678e7c7c2ea006c73a1365
164 lines
7.2 KiB
Text
164 lines
7.2 KiB
Text
/*
|
|
* Copyright 2017 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package android.hardware.soundtrigger@2.1;
|
|
|
|
import @2.0::ISoundTriggerHw;
|
|
import @2.0::ISoundTriggerHwCallback.CallbackCookie;
|
|
import @2.0::SoundModelHandle;
|
|
|
|
import ISoundTriggerHwCallback;
|
|
|
|
/**
|
|
* SoundTrigger HAL interface. Used for hardware recognition of hotwords.
|
|
*/
|
|
interface ISoundTriggerHw extends @2.0::ISoundTriggerHw {
|
|
|
|
/**
|
|
* Base sound model descriptor. This struct is the header of a larger block
|
|
* passed to loadSoundModel_2_1() and contains the binary data of the
|
|
* sound model.
|
|
*/
|
|
struct SoundModel {
|
|
/** Sound model header. Any data contained in the 'header.data' field
|
|
* is ignored */
|
|
@2.0::ISoundTriggerHw.SoundModel header;
|
|
/** Opaque data transparent to Android framework */
|
|
memory data;
|
|
};
|
|
|
|
/**
|
|
* Specialized sound model for key phrase detection.
|
|
* Proprietary representation of key phrases in binary data must match
|
|
* information indicated by phrases field.
|
|
*/
|
|
struct PhraseSoundModel {
|
|
/** Common part of sound model descriptor */
|
|
SoundModel common;
|
|
/** List of descriptors for key phrases supported by this sound model */
|
|
vec<Phrase> phrases;
|
|
};
|
|
|
|
/**
|
|
* Configuration for sound trigger capture session passed to
|
|
* startRecognition_2_1() method.
|
|
*/
|
|
struct RecognitionConfig {
|
|
/** Configuration header. Any data contained in the 'header.data' field
|
|
* is ignored */
|
|
@2.0::ISoundTriggerHw.RecognitionConfig header;
|
|
/** Opaque capture configuration data transparent to the framework */
|
|
memory data;
|
|
};
|
|
|
|
/**
|
|
* Load a sound model. Once loaded, recognition of this model can be
|
|
* started and stopped. Only one active recognition per model at a time.
|
|
* The SoundTrigger service must handle concurrent recognition requests by
|
|
* different users/applications on the same model.
|
|
* The implementation returns a unique handle used by other functions
|
|
* (unloadSoundModel(), startRecognition*(), etc...
|
|
*
|
|
* Must have the exact same semantics as loadSoundModel from
|
|
* ISoundTriggerHw@2.0 except that the SoundModel uses shared memory
|
|
* instead of data.
|
|
*
|
|
* @param soundModel A SoundModel structure describing the sound model
|
|
* to load.
|
|
* @param callback The callback interface on which the soundmodelCallback*()
|
|
* method must be called upon completion.
|
|
* @param cookie The value of the cookie argument passed to the completion
|
|
* callback. This unique context information is assigned and
|
|
* used only by the framework.
|
|
* @return retval Operation completion status: 0 in case of success,
|
|
* -EINVAL in case of invalid sound model (e.g 0 data size),
|
|
* -ENOSYS in case of invalid operation (e.g max number of models
|
|
* exceeded),
|
|
* -ENOMEM in case of memory allocation failure,
|
|
* -ENODEV in case of initialization error.
|
|
* @return modelHandle A unique handle assigned by the HAL for use by the
|
|
* framework when controlling activity for this sound model.
|
|
*/
|
|
@callflow(next={"startRecognition_2_1", "unloadSoundModel"})
|
|
loadSoundModel_2_1(SoundModel soundModel,
|
|
ISoundTriggerHwCallback callback,
|
|
CallbackCookie cookie)
|
|
generates (int32_t retval, SoundModelHandle modelHandle);
|
|
|
|
/**
|
|
* Load a key phrase sound model. Once loaded, recognition of this model can
|
|
* be started and stopped. Only one active recognition per model at a time.
|
|
* The SoundTrigger service must handle concurrent recognition requests by
|
|
* different users/applications on the same model.
|
|
* The implementation returns a unique handle used by other functions
|
|
* (unloadSoundModel(), startRecognition*(), etc...
|
|
*
|
|
* Must have the exact same semantics as loadPhraseSoundModel from
|
|
* ISoundTriggerHw@2.0 except that the PhraseSoundModel uses shared memory
|
|
* instead of data.
|
|
*
|
|
* @param soundModel A PhraseSoundModel structure describing the sound model
|
|
* to load.
|
|
* @param callback The callback interface on which the soundmodelCallback*()
|
|
* method must be called upon completion.
|
|
* @param cookie The value of the cookie argument passed to the completion
|
|
* callback. This unique context information is assigned and
|
|
* used only by the framework.
|
|
* @return retval Operation completion status: 0 in case of success,
|
|
* -EINVAL in case of invalid sound model (e.g 0 data size),
|
|
* -ENOSYS in case of invalid operation (e.g max number of models
|
|
* exceeded),
|
|
* -ENOMEM in case of memory allocation failure,
|
|
* -ENODEV in case of initialization error.
|
|
* @return modelHandle A unique handle assigned by the HAL for use by the
|
|
* framework when controlling activity for this sound model.
|
|
*/
|
|
@callflow(next={"startRecognition_2_1", "unloadSoundModel"})
|
|
loadPhraseSoundModel_2_1(PhraseSoundModel soundModel,
|
|
ISoundTriggerHwCallback callback,
|
|
CallbackCookie cookie)
|
|
generates (int32_t retval, SoundModelHandle modelHandle);
|
|
|
|
/**
|
|
* Start recognition on a given model. Only one recognition active
|
|
* at a time per model. Once recognition succeeds of fails, the callback
|
|
* is called.
|
|
*
|
|
* Must have the exact same semantics as startRecognition from
|
|
* ISoundTriggerHw@2.0 except that the RecognitionConfig uses shared memory
|
|
* instead of data.
|
|
*
|
|
* @param modelHandle the handle of the sound model to use for recognition
|
|
* @param config A RecognitionConfig structure containing attributes of the
|
|
* recognition to perform
|
|
* @param callback The callback interface on which the recognitionCallback()
|
|
* method must be called upon recognition.
|
|
* @param cookie The value of the cookie argument passed to the recognition
|
|
* callback. This unique context information is assigned and
|
|
* used only by the framework.
|
|
* @return retval Operation completion status: 0 in case of success,
|
|
* -EINVAL in case of invalid recognition attributes,
|
|
* -ENOSYS in case of invalid model handle,
|
|
* -ENOMEM in case of memory allocation failure,
|
|
* -ENODEV in case of initialization error.
|
|
*/
|
|
@callflow(next={"stopRecognition", "stopAllRecognitions"})
|
|
startRecognition_2_1(SoundModelHandle modelHandle,
|
|
RecognitionConfig config,
|
|
ISoundTriggerHwCallback callback,
|
|
CallbackCookie cookie)
|
|
generates (int32_t retval);
|
|
};
|