40d3a9bd8c
Bug: 36453077 Test: mma Change-Id: I0b1f77dfae5d2258969e33d85ecf45401ffbdfaa
118 lines
4.4 KiB
Text
118 lines
4.4 KiB
Text
/*
|
|
* Copyright 2016 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.0;
|
|
|
|
import android.hardware.audio.common@2.0;
|
|
|
|
interface ISoundTriggerHwCallback {
|
|
enum RecognitionStatus : uint32_t {
|
|
SUCCESS = 0,
|
|
ABORT = 1,
|
|
FAILURE = 2,
|
|
};
|
|
|
|
enum SoundModelStatus : uint32_t {
|
|
UPDATED = 0,
|
|
};
|
|
|
|
/**
|
|
* Generic recognition event sent via recognition callback
|
|
*/
|
|
struct RecognitionEvent {
|
|
/** Recognition status e.g. SUCCESS */
|
|
RecognitionStatus status;
|
|
/** Sound model type for this event. e.g SoundModelType.TYPE_KEYPHRASE */
|
|
SoundModelType type;
|
|
/** Handle of loaded sound model which triggered the event */
|
|
SoundModelHandle model;
|
|
/** It is possible to capture audio from this */
|
|
/** utterance buffered by the implementation */
|
|
bool captureAvailable;
|
|
/** Audio session ID. framework use */
|
|
int32_t captureSession;
|
|
/**
|
|
* Delay in ms between end of model detection and start of audio
|
|
/**
|
|
* available for capture. A negative value is possible
|
|
* (e.g. if key phrase is also available for capture */
|
|
int32_t captureDelayMs;
|
|
/**
|
|
* Duration in ms of audio captured before the start of the trigger.
|
|
* 0 if none. */
|
|
int32_t capturePreambleMs;
|
|
/** The opaque data is the capture of the trigger sound */
|
|
bool triggerInData;
|
|
/**
|
|
* Audio format of either the trigger in event data or to use for
|
|
* capture of the rest of the utterance */
|
|
AudioConfig audioConfig;
|
|
/** Opaque event data */
|
|
vec<uint8_t> data;
|
|
};
|
|
|
|
/**
|
|
* Specialized recognition event for key phrase recognitions
|
|
*/
|
|
struct PhraseRecognitionEvent {
|
|
/** Common part of the recognition event */
|
|
RecognitionEvent common;
|
|
/** List of descriptors for each recognized key phrase */
|
|
vec<PhraseRecognitionExtra> phraseExtras;
|
|
};
|
|
|
|
/**
|
|
* Event sent via load sound model callback
|
|
*/
|
|
struct ModelEvent {
|
|
/** Sound model status e.g. SoundModelStatus.UPDATED */
|
|
SoundModelStatus status;
|
|
/** Loaded sound model that triggered the event */
|
|
SoundModelHandle model;
|
|
/** Opaque event data, passed transparently by the framework */
|
|
vec<uint8_t> data;
|
|
};
|
|
|
|
typedef int32_t CallbackCookie;
|
|
|
|
/**
|
|
* Callback method called by the HAL when the sound recognition triggers
|
|
* @param event A RecognitionEvent structure containing detailed results
|
|
* of the recognition triggered
|
|
* @param cookie The cookie passed by the framework when recognition was
|
|
* started (see ISoundtriggerHw.startRecognition()
|
|
*/
|
|
recognitionCallback(RecognitionEvent event, CallbackCookie cookie);
|
|
|
|
/**
|
|
* Callback method called by the HAL when the sound recognition triggers
|
|
* for a key phrase sound model.
|
|
* @param event A RecognitionEvent structure containing detailed results
|
|
* of the recognition triggered
|
|
* @param cookie The cookie passed by the framework when recognition was
|
|
* started (see ISoundtriggerHw.startRecognition()
|
|
*/
|
|
phraseRecognitionCallback(PhraseRecognitionEvent event,
|
|
CallbackCookie cookie);
|
|
/**
|
|
* Callback method called by the HAL when the sound model loading completes
|
|
* @param event A ModelEvent structure containing detailed results of the
|
|
* model loading operation
|
|
* @param cookie The cookie passed by the framework when loading was
|
|
* initiated (see ISoundtriggerHw.loadSoundModel()
|
|
*/
|
|
soundModelCallback(ModelEvent event, CallbackCookie cookie);
|
|
};
|