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 IEqualizerEffect extends IEffect { 23*4d7e907cSAndroid Build Coastguard Worker /** 24*4d7e907cSAndroid Build Coastguard Worker * Gets the number of frequency bands that the equalizer supports. 25*4d7e907cSAndroid Build Coastguard Worker */ 26*4d7e907cSAndroid Build Coastguard Worker getNumBands() generates (Result retval, uint16_t numBands); 27*4d7e907cSAndroid Build Coastguard Worker 28*4d7e907cSAndroid Build Coastguard Worker /** 29*4d7e907cSAndroid Build Coastguard Worker * Returns the minimum and maximum band levels supported. 30*4d7e907cSAndroid Build Coastguard Worker */ 31*4d7e907cSAndroid Build Coastguard Worker getLevelRange() 32*4d7e907cSAndroid Build Coastguard Worker generates (Result retval, int16_t minLevel, int16_t maxLevel); 33*4d7e907cSAndroid Build Coastguard Worker 34*4d7e907cSAndroid Build Coastguard Worker /** 35*4d7e907cSAndroid Build Coastguard Worker * Sets the gain for the given equalizer band. 36*4d7e907cSAndroid Build Coastguard Worker */ 37*4d7e907cSAndroid Build Coastguard Worker setBandLevel(uint16_t band, int16_t level) generates (Result retval); 38*4d7e907cSAndroid Build Coastguard Worker 39*4d7e907cSAndroid Build Coastguard Worker /** 40*4d7e907cSAndroid Build Coastguard Worker * Gets the gain for the given equalizer band. 41*4d7e907cSAndroid Build Coastguard Worker */ 42*4d7e907cSAndroid Build Coastguard Worker getBandLevel(uint16_t band) generates (Result retval, int16_t level); 43*4d7e907cSAndroid Build Coastguard Worker 44*4d7e907cSAndroid Build Coastguard Worker /** 45*4d7e907cSAndroid Build Coastguard Worker * Gets the center frequency of the given band, in milliHertz. 46*4d7e907cSAndroid Build Coastguard Worker */ 47*4d7e907cSAndroid Build Coastguard Worker getBandCenterFrequency(uint16_t band) 48*4d7e907cSAndroid Build Coastguard Worker generates (Result retval, uint32_t centerFreqmHz); 49*4d7e907cSAndroid Build Coastguard Worker 50*4d7e907cSAndroid Build Coastguard Worker /** 51*4d7e907cSAndroid Build Coastguard Worker * Gets the frequency range of the given frequency band, in milliHertz. 52*4d7e907cSAndroid Build Coastguard Worker */ 53*4d7e907cSAndroid Build Coastguard Worker getBandFrequencyRange(uint16_t band) 54*4d7e907cSAndroid Build Coastguard Worker generates (Result retval, uint32_t minFreqmHz, uint32_t maxFreqmHz); 55*4d7e907cSAndroid Build Coastguard Worker 56*4d7e907cSAndroid Build Coastguard Worker /** 57*4d7e907cSAndroid Build Coastguard Worker * Gets the band that has the most effect on the given frequency 58*4d7e907cSAndroid Build Coastguard Worker * in milliHertz. 59*4d7e907cSAndroid Build Coastguard Worker */ 60*4d7e907cSAndroid Build Coastguard Worker getBandForFrequency(uint32_t freqmHz) 61*4d7e907cSAndroid Build Coastguard Worker generates (Result retval, uint16_t band); 62*4d7e907cSAndroid Build Coastguard Worker 63*4d7e907cSAndroid Build Coastguard Worker /** 64*4d7e907cSAndroid Build Coastguard Worker * Gets the names of all presets the equalizer supports. 65*4d7e907cSAndroid Build Coastguard Worker */ 66*4d7e907cSAndroid Build Coastguard Worker getPresetNames() generates (Result retval, vec<string> names); 67*4d7e907cSAndroid Build Coastguard Worker 68*4d7e907cSAndroid Build Coastguard Worker /** 69*4d7e907cSAndroid Build Coastguard Worker * Sets the current preset using the index of the preset in the names 70*4d7e907cSAndroid Build Coastguard Worker * vector returned via 'getPresetNames'. 71*4d7e907cSAndroid Build Coastguard Worker */ 72*4d7e907cSAndroid Build Coastguard Worker setCurrentPreset(uint16_t preset) generates (Result retval); 73*4d7e907cSAndroid Build Coastguard Worker 74*4d7e907cSAndroid Build Coastguard Worker /** 75*4d7e907cSAndroid Build Coastguard Worker * Gets the current preset. 76*4d7e907cSAndroid Build Coastguard Worker */ 77*4d7e907cSAndroid Build Coastguard Worker getCurrentPreset() generates (Result retval, uint16_t preset); 78*4d7e907cSAndroid Build Coastguard Worker 79*4d7e907cSAndroid Build Coastguard Worker struct AllProperties { 80*4d7e907cSAndroid Build Coastguard Worker uint16_t curPreset; 81*4d7e907cSAndroid Build Coastguard Worker vec<int16_t> bandLevels; 82*4d7e907cSAndroid Build Coastguard Worker }; 83*4d7e907cSAndroid Build Coastguard Worker 84*4d7e907cSAndroid Build Coastguard Worker /** 85*4d7e907cSAndroid Build Coastguard Worker * Sets all properties at once. 86*4d7e907cSAndroid Build Coastguard Worker */ 87*4d7e907cSAndroid Build Coastguard Worker setAllProperties(AllProperties properties) generates (Result retval); 88*4d7e907cSAndroid Build Coastguard Worker 89*4d7e907cSAndroid Build Coastguard Worker /** 90*4d7e907cSAndroid Build Coastguard Worker * Gets all properties at once. 91*4d7e907cSAndroid Build Coastguard Worker */ 92*4d7e907cSAndroid Build Coastguard Worker getAllProperties() generates (Result retval, AllProperties properties); 93*4d7e907cSAndroid Build Coastguard Worker}; 94