mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-02 13:49:45 +00:00
The audio HAL has lots of enums were each value is a specific bit pattern (usually a single bit) and are expected to be used as a combination of value (kind of like a bitfield). Nevertheless the 2.0 methods only had the enums themselves in their signatures which leads the HIDL API checkers to warn that invalid values were passed. Currently, there are no way to express a value which is a combination of enum values. The closest thing is the bitfield type. Thus transition all enums combination to bitfield. Note that AudioDevice as NOT been transition systematically as both the enums and the combination are meaningful: - the enum is one device - the combination is a list of device. Test: none Bug: 38184704 Change-Id: I155cf7bc5d88fc5cf8954903d55aa8d7ca458a4b Signed-off-by: Kevin Rocard <krocard@google.com>
78 lines
2.6 KiB
Plaintext
78 lines
2.6 KiB
Plaintext
/*
|
|
* Copyright (C) 2018 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.audio.effect@4.0;
|
|
|
|
import android.hardware.audio.common@4.0;
|
|
import IEffect;
|
|
|
|
interface IVirtualizerEffect extends IEffect {
|
|
/**
|
|
* Returns whether setting virtualization strength is supported.
|
|
*/
|
|
isStrengthSupported() generates (bool strengthSupported);
|
|
|
|
enum StrengthRange : uint16_t {
|
|
MIN = 0,
|
|
MAX = 1000
|
|
};
|
|
|
|
/**
|
|
* Sets virtualization strength.
|
|
*
|
|
* @param strength strength of the effect. The valid range for strength
|
|
* strength is [0, 1000], where 0 per mille designates the
|
|
* mildest effect and 1000 per mille designates the
|
|
* strongest.
|
|
* @return retval operation completion status.
|
|
*/
|
|
setStrength(uint16_t strength) generates (Result retval);
|
|
|
|
/**
|
|
* Gets virtualization strength.
|
|
*/
|
|
getStrength() generates (Result retval, uint16_t strength);
|
|
|
|
struct SpeakerAngle {
|
|
/** Speaker channel mask */
|
|
bitfield<AudioChannelMask> mask;
|
|
// all angles are expressed in degrees and
|
|
// are relative to the listener.
|
|
int16_t azimuth; // 0 is the direction the listener faces
|
|
// 180 is behind the listener
|
|
// -90 is to their left
|
|
int16_t elevation; // 0 is the horizontal plane
|
|
// +90 is above the listener, -90 is below
|
|
};
|
|
/**
|
|
* Retrieves virtual speaker angles for the given channel mask on the
|
|
* specified device.
|
|
*/
|
|
getVirtualSpeakerAngles(bitfield<AudioChannelMask> mask, AudioDevice device)
|
|
generates (Result retval, vec<SpeakerAngle> speakerAngles);
|
|
|
|
/**
|
|
* Forces the virtualizer effect for the given output device.
|
|
*/
|
|
forceVirtualizationMode(AudioDevice device) generates (Result retval);
|
|
|
|
/**
|
|
* Returns audio device reflecting the current virtualization mode,
|
|
* AUDIO_DEVICE_NONE when not virtualizing.
|
|
*/
|
|
getVirtualizationMode() generates (Result retval, AudioDevice device);
|
|
};
|