1882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov/* 2882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Copyright 2017 The Android Open Source Project 3882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * 4882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Licensed under the Apache License, Version 2.0 (the "License"); 5882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * you may not use this file except in compliance with the License. 6882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * You may obtain a copy of the License at 7882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * 8882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * http://www.apache.org/licenses/LICENSE-2.0 9882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * 10882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Unless required by applicable law or agreed to in writing, software 11882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * distributed under the License is distributed on an "AS IS" BASIS, 12882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * See the License for the specific language governing permissions and 14882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * limitations under the License. 15882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 16882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 17882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganovpackage android.hardware.soundtrigger@2.1; 18882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 19882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganovimport @2.0::ISoundTriggerHwCallback; 20882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganovimport @2.0::PhraseRecognitionExtra; 21882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 22882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov/** 23882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * SoundTrigger HAL Callback interface. Obtained during SoundTrigger setup. 24882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 25882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov@hidl_callback 26882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganovinterface ISoundTriggerHwCallback extends @2.0::ISoundTriggerHwCallback { 27882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 28882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** 29882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Generic recognition event sent via recognition callback. 30882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 31882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov struct RecognitionEvent { 32882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** Event header. Any data contained in the 'header.data' field 33882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * is ignored */ 34882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov @2.0::ISoundTriggerHwCallback.RecognitionEvent header; 35882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** Opaque event data */ 36882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov memory data; 37882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov }; 38882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 39882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** 40882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Specialized recognition event for key phrase recognitions. 41882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 42882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov struct PhraseRecognitionEvent { 43882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** Common part of the recognition event */ 44882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov RecognitionEvent common; 45882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** List of descriptors for each recognized key phrase */ 46882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov vec<PhraseRecognitionExtra> phraseExtras; 47882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov }; 48882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 49882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** 50882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Event sent via load sound model callback. 51882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 52882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov struct ModelEvent { 53882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** Event header. Any data contained in the 'header.data' field 54882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * is ignored */ 55882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov @2.0::ISoundTriggerHwCallback.ModelEvent header; 56882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** Opaque event data, passed transparently by the framework */ 57882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov memory data; 58882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov }; 59882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 60882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** 61882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Callback method called by the HAL when the sound recognition triggers. 62882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * 63882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * @param event A RecognitionEvent structure containing detailed results 64882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * of the recognition triggered 65882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * @param cookie The cookie passed by the framework when recognition was 66882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * started (see ISoundtriggerHw.startRecognition*()) 67882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 68882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov recognitionCallback_2_1(RecognitionEvent event, CallbackCookie cookie); 69882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 70882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** 71882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Callback method called by the HAL when the sound recognition triggers 72882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * for a key phrase sound model. 73882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * 74882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * @param event A RecognitionEvent structure containing detailed results 75882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * of the recognition triggered 76882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * @param cookie The cookie passed by the framework when recognition was 77882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * started (see ISoundtriggerHw.startRecognition*()) 78882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 79882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov phraseRecognitionCallback_2_1(PhraseRecognitionEvent event, 80882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov CallbackCookie cookie); 81882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov 82882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov /** 83882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * Callback method called by the HAL when the sound model loading completes. 84882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * 85882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * @param event A ModelEvent structure containing detailed results of the 86882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * model loading operation 87882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * @param cookie The cookie passed by the framework when loading was 88882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov * initiated (see ISoundtriggerHw.loadSoundModel*()) 89882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov */ 90882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov soundModelCallback_2_1(ModelEvent event, CallbackCookie cookie); 91882d2377ecc0ec2487f2d8349bb72b32e91ba933Mikhail Naganov}; 92