You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
5.1 KiB

/*
* Copyright (C) 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.audio.effect@6.0;
import android.hardware.audio.common@6.0;
import IEffect;
interface IEnvironmentalReverbEffect extends IEffect {
/**
* Sets whether the effect should be bypassed.
*/
setBypass(bool bypass) generates (Result retval);
/**
* Gets whether the effect should be bypassed.
*/
getBypass() generates (Result retval, bool bypass);
enum ParamRange : int16_t {
ROOM_LEVEL_MIN = -6000,
ROOM_LEVEL_MAX = 0,
ROOM_HF_LEVEL_MIN = -4000,
ROOM_HF_LEVEL_MAX = 0,
DECAY_TIME_MIN = 100,
DECAY_TIME_MAX = 20000,
DECAY_HF_RATIO_MIN = 100,
DECAY_HF_RATIO_MAX = 1000,
REFLECTIONS_LEVEL_MIN = -6000,
REFLECTIONS_LEVEL_MAX = 0,
REFLECTIONS_DELAY_MIN = 0,
REFLECTIONS_DELAY_MAX = 65,
REVERB_LEVEL_MIN = -6000,
REVERB_LEVEL_MAX = 0,
REVERB_DELAY_MIN = 0,
REVERB_DELAY_MAX = 65,
DIFFUSION_MIN = 0,
DIFFUSION_MAX = 1000,
DENSITY_MIN = 0,
DENSITY_MAX = 1000
};
/**
* Sets the room level.
*/
setRoomLevel(int16_t roomLevel) generates (Result retval);
/**
* Gets the room level.
*/
getRoomLevel() generates (Result retval, int16_t roomLevel);
/**
* Sets the room high frequencies level.
*/
setRoomHfLevel(int16_t roomHfLevel) generates (Result retval);
/**
* Gets the room high frequencies level.
*/
getRoomHfLevel() generates (Result retval, int16_t roomHfLevel);
/**
* Sets the room decay time.
*/
setDecayTime(uint32_t decayTime) generates (Result retval);
/**
* Gets the room decay time.
*/
getDecayTime() generates (Result retval, uint32_t decayTime);
/**
* Sets the ratio of high frequencies decay.
*/
setDecayHfRatio(int16_t decayHfRatio) generates (Result retval);
/**
* Gets the ratio of high frequencies decay.
*/
getDecayHfRatio() generates (Result retval, int16_t decayHfRatio);
/**
* Sets the level of reflections in the room.
*/
setReflectionsLevel(int16_t reflectionsLevel) generates (Result retval);
/**
* Gets the level of reflections in the room.
*/
getReflectionsLevel() generates (Result retval, int16_t reflectionsLevel);
/**
* Sets the reflections delay in the room.
*/
setReflectionsDelay(uint32_t reflectionsDelay) generates (Result retval);
/**
* Gets the reflections delay in the room.
*/
getReflectionsDelay() generates (Result retval, uint32_t reflectionsDelay);
/**
* Sets the reverb level of the room.
*/
setReverbLevel(int16_t reverbLevel) generates (Result retval);
/**
* Gets the reverb level of the room.
*/
getReverbLevel() generates (Result retval, int16_t reverbLevel);
/**
* Sets the reverb delay of the room.
*/
setReverbDelay(uint32_t reverDelay) generates (Result retval);
/**
* Gets the reverb delay of the room.
*/
getReverbDelay() generates (Result retval, uint32_t reverbDelay);
/**
* Sets room diffusion.
*/
setDiffusion(int16_t diffusion) generates (Result retval);
/**
* Gets room diffusion.
*/
getDiffusion() generates (Result retval, int16_t diffusion);
/**
* Sets room wall density.
*/
setDensity(int16_t density) generates (Result retval);
/**
* Gets room wall density.
*/
getDensity() generates (Result retval, int16_t density);
struct AllProperties {
int16_t roomLevel; // in millibels, range -6000 to 0
int16_t roomHfLevel; // in millibels, range -4000 to 0
uint32_t decayTime; // in milliseconds, range 100 to 20000
int16_t decayHfRatio; // in permilles, range 100 to 1000
int16_t reflectionsLevel; // in millibels, range -6000 to 0
uint32_t reflectionsDelay; // in milliseconds, range 0 to 65
int16_t reverbLevel; // in millibels, range -6000 to 0
uint32_t reverbDelay; // in milliseconds, range 0 to 65
int16_t diffusion; // in permilles, range 0 to 1000
int16_t density; // in permilles, range 0 to 1000
};
/**
* Sets all properties at once.
*/
setAllProperties(AllProperties properties) generates (Result retval);
/**
* Gets all properties at once.
*/
getAllProperties() generates (Result retval, AllProperties properties);
};