Home | History | Annotate | Download | only in android
      1 /*
      2  * Copyright (C) 2010 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 /**************************************************************************************************
     18  * Equalizer functions
     19  ****************************/
     20 extern void android_eq_init(audio_session_t sessionId, IEqualizer* ieq);
     21 
     22 extern android::status_t android_eq_setParam(const android::sp<android::AudioEffect>& pFx,
     23         int32_t param, int32_t param2, void *pValue);
     24 
     25 extern android::status_t android_eq_getParam(const android::sp<android::AudioEffect>& pFx,
     26         int32_t param, int32_t param2, void *pValue);
     27 
     28 /**************************************************************************************************
     29  * BassBoost functions
     30  ****************************/
     31 extern void android_bb_init(audio_session_t sessionId, IBassBoost* ibb);
     32 
     33 extern android::status_t android_bb_setParam(const android::sp<android::AudioEffect>& pFx,
     34         int32_t param, void *pValue);
     35 
     36 extern android::status_t android_bb_getParam(const android::sp<android::AudioEffect>& pFx,
     37         int32_t param, void *pValue);
     38 
     39 /**************************************************************************************************
     40  * Virtualizer functions
     41  ****************************/
     42 extern void android_virt_init(audio_session_t sessionId, IVirtualizer* ivi);
     43 
     44 extern android::status_t android_virt_setParam(const android::sp<android::AudioEffect>& pFx,
     45         int32_t param, void *pValue);
     46 
     47 extern android::status_t android_virt_getParam(const android::sp<android::AudioEffect>& pFx,
     48         int32_t param, void *pValue);
     49 
     50 /**************************************************************************************************
     51  * PresetReverb functions
     52  ****************************/
     53 extern void android_prev_init(IPresetReverb* ipr);
     54 
     55 extern android::status_t android_prev_setPreset(const android::sp<android::AudioEffect>& pFx,
     56         uint16_t preset);
     57 
     58 extern android::status_t android_prev_getPreset(const android::sp<android::AudioEffect>& pFx,
     59         uint16_t* preset);
     60 
     61 /**************************************************************************************************
     62  * EnvironmentalReverb functions
     63  ****************************/
     64 extern void android_erev_init(IEnvironmentalReverb* ier);
     65 
     66 extern android::status_t android_erev_setParam(const android::sp<android::AudioEffect>& pFx,
     67         int32_t param, void *pValue);
     68 
     69 extern android::status_t android_erev_getParam(const android::sp<android::AudioEffect>& pFx,
     70         int32_t param, void *pValue);
     71 
     72 /**************************************************************************************************
     73  * AEC functions
     74  ****************************/
     75 extern void android_aec_init(audio_session_t sessionId, IAndroidAcousticEchoCancellation* iaec);
     76 
     77 /**************************************************************************************************
     78  * AGC functions
     79  ****************************/
     80 extern void android_agc_init(audio_session_t sessionId, IAndroidAutomaticGainControl* iagc);
     81 
     82 /**************************************************************************************************
     83  * NS functions
     84  ****************************/
     85 extern void android_ns_init(audio_session_t sessionId, IAndroidNoiseSuppression* ins);
     86 
     87 /**************************************************************************************************
     88  * Generic Effect functions
     89  ****************************/
     90 extern SLresult android_genericFx_queryNumEffects(SLuint32 *pNumSupportedAudioEffects);
     91 
     92 extern SLresult android_genericFx_queryEffect(SLuint32 index, effect_descriptor_t* pDescriptor);
     93 
     94 extern SLresult android_genericFx_createEffect(IAndroidEffect* iae, SLInterfaceID pUuid,
     95         audio_session_t sessionId);
     96 
     97 extern SLresult android_genericFx_releaseEffect(IAndroidEffect* iae, SLInterfaceID pUuid);
     98 
     99 extern SLresult android_genericFx_setEnabled(IAndroidEffect* iae, SLInterfaceID pUuid,
    100         SLboolean enabled);
    101 
    102 extern SLresult android_genericFx_isEnabled(IAndroidEffect* iae, SLInterfaceID pUuid,
    103         SLboolean *pEnabled);
    104 
    105 extern SLresult android_genericFx_sendCommand(IAndroidEffect* iae, SLInterfaceID pUuid,
    106         SLuint32 command, SLuint32 commandSize, void* pCommandData,
    107         SLuint32 *replySize, void *pReplyData);
    108 
    109 extern bool android_genericFx_hasEffect(IAndroidEffect* iae, SLInterfaceID pUuid);
    110 
    111 
    112 /**************************************************************************************************
    113  * EffectSend functions
    114  ****************************/
    115 /**
    116  * sendLevel is the total energy going to the send bus. This implies that the volume attenuation
    117  *   should be combined with the send level for the aux level to follow volume changes.
    118  */
    119 extern android::status_t android_fxSend_attach(CAudioPlayer* ap, bool attach,
    120         const android::sp<android::AudioEffect>& pFx, SLmillibel sendLevel);
    121 
    122 /**
    123  * sendLevel is the total energy going to the send bus. This implies that the volume attenuation
    124  *   should be combined with the send level for the aux level to follow volume changes.
    125  *   This one is used by Android-specific APIs, not portable Khronos APIs.
    126  */
    127 extern SLresult android_fxSend_attachToAux(CAudioPlayer* ap, SLInterfaceID pUuid,
    128         SLboolean attach, SLmillibel sendLevel);
    129 
    130 /**
    131  * sendLevel is the total energy going to the send bus. This implies that the volume attenuation
    132  *   should be combined with the send level for the aux level to follow volume changes.
    133  */
    134 extern android::status_t android_fxSend_setSendLevel(CAudioPlayer* ap, SLmillibel sendLevel);
    135 
    136 /**************************************************************************************************
    137  * Effect-agnostic functions
    138  ****************************/
    139 extern android::status_t android_fx_setParam(const android::sp<android::AudioEffect>& pFx,
    140         int32_t param, uint32_t paramSizeMax, void *pValue, uint32_t valueSize);
    141 
    142 extern android::status_t android_fx_getParam(const android::sp<android::AudioEffect>& pFx,
    143         int32_t param, uint32_t paramSizeMax, void *pValue, uint32_t valueSize);
    144 
    145 extern SLresult android_fx_statusToResult(android::status_t status);
    146 
    147 extern bool android_fx_initEffectObj(audio_session_t sessionId,
    148         android::sp<android::AudioEffect>& effect,
    149         const effect_uuid_t *type);
    150 
    151 extern bool android_fx_initEffectDescriptor(const SLInterfaceID effectId,
    152         effect_descriptor_t* fxDescrLoc);
    153