1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2016 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport [email protected]; 20*4d7e907cSAndroid Build Coastguard Workerimport IEffect; 21*4d7e907cSAndroid Build Coastguard Worker 22*4d7e907cSAndroid Build Coastguard Workerinterface IEnvironmentalReverbEffect extends IEffect { 23*4d7e907cSAndroid Build Coastguard Worker /** 24*4d7e907cSAndroid Build Coastguard Worker * Sets whether the effect should be bypassed. 25*4d7e907cSAndroid Build Coastguard Worker */ 26*4d7e907cSAndroid Build Coastguard Worker setBypass(bool bypass) generates (Result retval); 27*4d7e907cSAndroid Build Coastguard Worker 28*4d7e907cSAndroid Build Coastguard Worker /** 29*4d7e907cSAndroid Build Coastguard Worker * Gets whether the effect should be bypassed. 30*4d7e907cSAndroid Build Coastguard Worker */ 31*4d7e907cSAndroid Build Coastguard Worker getBypass() generates (Result retval, bool bypass); 32*4d7e907cSAndroid Build Coastguard Worker 33*4d7e907cSAndroid Build Coastguard Worker enum ParamRange : int16_t { 34*4d7e907cSAndroid Build Coastguard Worker ROOM_LEVEL_MIN = -6000, 35*4d7e907cSAndroid Build Coastguard Worker ROOM_LEVEL_MAX = 0, 36*4d7e907cSAndroid Build Coastguard Worker ROOM_HF_LEVEL_MIN = -4000, 37*4d7e907cSAndroid Build Coastguard Worker ROOM_HF_LEVEL_MAX = 0, 38*4d7e907cSAndroid Build Coastguard Worker DECAY_TIME_MIN = 100, 39*4d7e907cSAndroid Build Coastguard Worker DECAY_TIME_MAX = 20000, 40*4d7e907cSAndroid Build Coastguard Worker DECAY_HF_RATIO_MIN = 100, 41*4d7e907cSAndroid Build Coastguard Worker DECAY_HF_RATIO_MAX = 1000, 42*4d7e907cSAndroid Build Coastguard Worker REFLECTIONS_LEVEL_MIN = -6000, 43*4d7e907cSAndroid Build Coastguard Worker REFLECTIONS_LEVEL_MAX = 0, 44*4d7e907cSAndroid Build Coastguard Worker REFLECTIONS_DELAY_MIN = 0, 45*4d7e907cSAndroid Build Coastguard Worker REFLECTIONS_DELAY_MAX = 65, 46*4d7e907cSAndroid Build Coastguard Worker REVERB_LEVEL_MIN = -6000, 47*4d7e907cSAndroid Build Coastguard Worker REVERB_LEVEL_MAX = 0, 48*4d7e907cSAndroid Build Coastguard Worker REVERB_DELAY_MIN = 0, 49*4d7e907cSAndroid Build Coastguard Worker REVERB_DELAY_MAX = 65, 50*4d7e907cSAndroid Build Coastguard Worker DIFFUSION_MIN = 0, 51*4d7e907cSAndroid Build Coastguard Worker DIFFUSION_MAX = 1000, 52*4d7e907cSAndroid Build Coastguard Worker DENSITY_MIN = 0, 53*4d7e907cSAndroid Build Coastguard Worker DENSITY_MAX = 1000 54*4d7e907cSAndroid Build Coastguard Worker }; 55*4d7e907cSAndroid Build Coastguard Worker 56*4d7e907cSAndroid Build Coastguard Worker /** 57*4d7e907cSAndroid Build Coastguard Worker * Sets the room level. 58*4d7e907cSAndroid Build Coastguard Worker */ 59*4d7e907cSAndroid Build Coastguard Worker setRoomLevel(int16_t roomLevel) generates (Result retval); 60*4d7e907cSAndroid Build Coastguard Worker 61*4d7e907cSAndroid Build Coastguard Worker /** 62*4d7e907cSAndroid Build Coastguard Worker * Gets the room level. 63*4d7e907cSAndroid Build Coastguard Worker */ 64*4d7e907cSAndroid Build Coastguard Worker getRoomLevel() generates (Result retval, int16_t roomLevel); 65*4d7e907cSAndroid Build Coastguard Worker 66*4d7e907cSAndroid Build Coastguard Worker /** 67*4d7e907cSAndroid Build Coastguard Worker * Sets the room high frequencies level. 68*4d7e907cSAndroid Build Coastguard Worker */ 69*4d7e907cSAndroid Build Coastguard Worker setRoomHfLevel(int16_t roomHfLevel) generates (Result retval); 70*4d7e907cSAndroid Build Coastguard Worker 71*4d7e907cSAndroid Build Coastguard Worker /** 72*4d7e907cSAndroid Build Coastguard Worker * Gets the room high frequencies level. 73*4d7e907cSAndroid Build Coastguard Worker */ 74*4d7e907cSAndroid Build Coastguard Worker getRoomHfLevel() generates (Result retval, int16_t roomHfLevel); 75*4d7e907cSAndroid Build Coastguard Worker 76*4d7e907cSAndroid Build Coastguard Worker /** 77*4d7e907cSAndroid Build Coastguard Worker * Sets the room decay time. 78*4d7e907cSAndroid Build Coastguard Worker */ 79*4d7e907cSAndroid Build Coastguard Worker setDecayTime(uint32_t decayTime) generates (Result retval); 80*4d7e907cSAndroid Build Coastguard Worker 81*4d7e907cSAndroid Build Coastguard Worker /** 82*4d7e907cSAndroid Build Coastguard Worker * Gets the room decay time. 83*4d7e907cSAndroid Build Coastguard Worker */ 84*4d7e907cSAndroid Build Coastguard Worker getDecayTime() generates (Result retval, uint32_t decayTime); 85*4d7e907cSAndroid Build Coastguard Worker 86*4d7e907cSAndroid Build Coastguard Worker /** 87*4d7e907cSAndroid Build Coastguard Worker * Sets the ratio of high frequencies decay. 88*4d7e907cSAndroid Build Coastguard Worker */ 89*4d7e907cSAndroid Build Coastguard Worker setDecayHfRatio(int16_t decayHfRatio) generates (Result retval); 90*4d7e907cSAndroid Build Coastguard Worker 91*4d7e907cSAndroid Build Coastguard Worker /** 92*4d7e907cSAndroid Build Coastguard Worker * Gets the ratio of high frequencies decay. 93*4d7e907cSAndroid Build Coastguard Worker */ 94*4d7e907cSAndroid Build Coastguard Worker getDecayHfRatio() generates (Result retval, int16_t decayHfRatio); 95*4d7e907cSAndroid Build Coastguard Worker 96*4d7e907cSAndroid Build Coastguard Worker /** 97*4d7e907cSAndroid Build Coastguard Worker * Sets the level of reflections in the room. 98*4d7e907cSAndroid Build Coastguard Worker */ 99*4d7e907cSAndroid Build Coastguard Worker setReflectionsLevel(int16_t reflectionsLevel) generates (Result retval); 100*4d7e907cSAndroid Build Coastguard Worker 101*4d7e907cSAndroid Build Coastguard Worker /** 102*4d7e907cSAndroid Build Coastguard Worker * Gets the level of reflections in the room. 103*4d7e907cSAndroid Build Coastguard Worker */ 104*4d7e907cSAndroid Build Coastguard Worker getReflectionsLevel() generates (Result retval, int16_t reflectionsLevel); 105*4d7e907cSAndroid Build Coastguard Worker 106*4d7e907cSAndroid Build Coastguard Worker /** 107*4d7e907cSAndroid Build Coastguard Worker * Sets the reflections delay in the room. 108*4d7e907cSAndroid Build Coastguard Worker */ 109*4d7e907cSAndroid Build Coastguard Worker setReflectionsDelay(uint32_t reflectionsDelay) generates (Result retval); 110*4d7e907cSAndroid Build Coastguard Worker 111*4d7e907cSAndroid Build Coastguard Worker /** 112*4d7e907cSAndroid Build Coastguard Worker * Gets the reflections delay in the room. 113*4d7e907cSAndroid Build Coastguard Worker */ 114*4d7e907cSAndroid Build Coastguard Worker getReflectionsDelay() generates (Result retval, uint32_t reflectionsDelay); 115*4d7e907cSAndroid Build Coastguard Worker 116*4d7e907cSAndroid Build Coastguard Worker /** 117*4d7e907cSAndroid Build Coastguard Worker * Sets the reverb level of the room. 118*4d7e907cSAndroid Build Coastguard Worker */ 119*4d7e907cSAndroid Build Coastguard Worker setReverbLevel(int16_t reverbLevel) generates (Result retval); 120*4d7e907cSAndroid Build Coastguard Worker 121*4d7e907cSAndroid Build Coastguard Worker /** 122*4d7e907cSAndroid Build Coastguard Worker * Gets the reverb level of the room. 123*4d7e907cSAndroid Build Coastguard Worker */ 124*4d7e907cSAndroid Build Coastguard Worker getReverbLevel() generates (Result retval, int16_t reverbLevel); 125*4d7e907cSAndroid Build Coastguard Worker 126*4d7e907cSAndroid Build Coastguard Worker /** 127*4d7e907cSAndroid Build Coastguard Worker * Sets the reverb delay of the room. 128*4d7e907cSAndroid Build Coastguard Worker */ 129*4d7e907cSAndroid Build Coastguard Worker setReverbDelay(uint32_t reverDelay) generates (Result retval); 130*4d7e907cSAndroid Build Coastguard Worker 131*4d7e907cSAndroid Build Coastguard Worker /** 132*4d7e907cSAndroid Build Coastguard Worker * Gets the reverb delay of the room. 133*4d7e907cSAndroid Build Coastguard Worker */ 134*4d7e907cSAndroid Build Coastguard Worker getReverbDelay() generates (Result retval, uint32_t reverbDelay); 135*4d7e907cSAndroid Build Coastguard Worker 136*4d7e907cSAndroid Build Coastguard Worker /** 137*4d7e907cSAndroid Build Coastguard Worker * Sets room diffusion. 138*4d7e907cSAndroid Build Coastguard Worker */ 139*4d7e907cSAndroid Build Coastguard Worker setDiffusion(int16_t diffusion) generates (Result retval); 140*4d7e907cSAndroid Build Coastguard Worker 141*4d7e907cSAndroid Build Coastguard Worker /** 142*4d7e907cSAndroid Build Coastguard Worker * Gets room diffusion. 143*4d7e907cSAndroid Build Coastguard Worker */ 144*4d7e907cSAndroid Build Coastguard Worker getDiffusion() generates (Result retval, int16_t diffusion); 145*4d7e907cSAndroid Build Coastguard Worker 146*4d7e907cSAndroid Build Coastguard Worker /** 147*4d7e907cSAndroid Build Coastguard Worker * Sets room wall density. 148*4d7e907cSAndroid Build Coastguard Worker */ 149*4d7e907cSAndroid Build Coastguard Worker setDensity(int16_t density) generates (Result retval); 150*4d7e907cSAndroid Build Coastguard Worker 151*4d7e907cSAndroid Build Coastguard Worker /** 152*4d7e907cSAndroid Build Coastguard Worker * Gets room wall density. 153*4d7e907cSAndroid Build Coastguard Worker */ 154*4d7e907cSAndroid Build Coastguard Worker getDensity() generates (Result retval, int16_t density); 155*4d7e907cSAndroid Build Coastguard Worker 156*4d7e907cSAndroid Build Coastguard Worker struct AllProperties { 157*4d7e907cSAndroid Build Coastguard Worker int16_t roomLevel; // in millibels, range -6000 to 0 158*4d7e907cSAndroid Build Coastguard Worker int16_t roomHfLevel; // in millibels, range -4000 to 0 159*4d7e907cSAndroid Build Coastguard Worker uint32_t decayTime; // in milliseconds, range 100 to 20000 160*4d7e907cSAndroid Build Coastguard Worker int16_t decayHfRatio; // in permilles, range 100 to 1000 161*4d7e907cSAndroid Build Coastguard Worker int16_t reflectionsLevel; // in millibels, range -6000 to 0 162*4d7e907cSAndroid Build Coastguard Worker uint32_t reflectionsDelay; // in milliseconds, range 0 to 65 163*4d7e907cSAndroid Build Coastguard Worker int16_t reverbLevel; // in millibels, range -6000 to 0 164*4d7e907cSAndroid Build Coastguard Worker uint32_t reverbDelay; // in milliseconds, range 0 to 65 165*4d7e907cSAndroid Build Coastguard Worker int16_t diffusion; // in permilles, range 0 to 1000 166*4d7e907cSAndroid Build Coastguard Worker int16_t density; // in permilles, range 0 to 1000 167*4d7e907cSAndroid Build Coastguard Worker }; 168*4d7e907cSAndroid Build Coastguard Worker 169*4d7e907cSAndroid Build Coastguard Worker /** 170*4d7e907cSAndroid Build Coastguard Worker * Sets all properties at once. 171*4d7e907cSAndroid Build Coastguard Worker */ 172*4d7e907cSAndroid Build Coastguard Worker setAllProperties(AllProperties properties) generates (Result retval); 173*4d7e907cSAndroid Build Coastguard Worker 174*4d7e907cSAndroid Build Coastguard Worker /** 175*4d7e907cSAndroid Build Coastguard Worker * Gets all properties at once. 176*4d7e907cSAndroid Build Coastguard Worker */ 177*4d7e907cSAndroid Build Coastguard Worker getAllProperties() generates (Result retval, AllProperties properties); 178*4d7e907cSAndroid Build Coastguard Worker}; 179