blob: 10fc34e3121fb8d45cc68ddd0848bf4ac241bbde [file] [log] [blame]
/*
* 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;
};