| /* |
| * 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> 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> 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; |
| }; |