/* * Copyright 2019 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.3; import android.hidl.safe_union@1.0::Monostate; import @2.0::ISoundTriggerHw.Properties; import @2.1::ISoundTriggerHw.RecognitionConfig; /** * AudioCapabilities supported by the implemented HAL * driver. */ enum AudioCapabilities : uint32_t { /** * If set the underlying module supports AEC. */ ECHO_CANCELLATION = 1 << 0, /** * If set, the underlying module supports noise suppression. */ NOISE_SUPPRESSION = 1 << 1, }; /** * Extended implementation properties providing verbose implementation * details. */ struct Properties { @2.0::ISoundTriggerHw.Properties base; /** * String naming the architecture used for running the supported models. * (eg. DSP architecture) */ string supportedModelArch; /** * Bit field encoding of the AudioCapabilities * supported by the firmware. */ bitfield audioCapabilities; }; /** * Configuration for sound trigger capture session passed to * startRecognition_2_1() method. */ struct RecognitionConfig { @2.1::ISoundTriggerHw.RecognitionConfig base; /** * Bit field encoding of the AudioCapabilities * supported by the firmware. */ bitfield audioCapabilities; }; /** * Model specific parameters to be used with parameter set and get APIs */ enum ModelParameter : int32_t { /** * Placeholder for invalid model parameter used for returning error or * passing an invalid value. */ INVALID = -1, /** * Controls the sensitivity threshold adjustment factor for a given model. * Negative value corresponds to less sensitive model (high threshold) and * a positive value corresponds to a more sensitive model (low threshold). * Default value is 0. */ THRESHOLD_FACTOR = 0 }; /** * Safe union wrapping ModelParameterRange. * Monostate is used to indicate there is no valid range */ safe_union OptionalModelParameterRange { Monostate noinit; ModelParameterRange range; }; /** * Model specific range support for a given parameter */ struct ModelParameterRange { /** * start of supported value range inclusive */ int32_t start; /** * end of supported value range inclusive */ int32_t end; };