Home | History | Annotate | Download | only in default
      1 /*
      2  * Copyright (C) 2016 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 #include <common/all-versions/IncludeGuard.h>
     18 
     19 #include <android/log.h>
     20 #include <system/audio_effects/effect_aec.h>
     21 
     22 #include "VersionUtils.h"
     23 
     24 namespace android {
     25 namespace hardware {
     26 namespace audio {
     27 namespace effect {
     28 namespace AUDIO_HAL_VERSION {
     29 namespace implementation {
     30 
     31 AcousticEchoCancelerEffect::AcousticEchoCancelerEffect(effect_handle_t handle)
     32     : mEffect(new Effect(handle)) {}
     33 
     34 AcousticEchoCancelerEffect::~AcousticEchoCancelerEffect() {}
     35 
     36 // Methods from ::android::hardware::audio::effect::AUDIO_HAL_VERSION::IEffect follow.
     37 Return<Result> AcousticEchoCancelerEffect::init() {
     38     return mEffect->init();
     39 }
     40 
     41 Return<Result> AcousticEchoCancelerEffect::setConfig(
     42     const EffectConfig& config, const sp<IEffectBufferProviderCallback>& inputBufferProvider,
     43     const sp<IEffectBufferProviderCallback>& outputBufferProvider) {
     44     return mEffect->setConfig(config, inputBufferProvider, outputBufferProvider);
     45 }
     46 
     47 Return<Result> AcousticEchoCancelerEffect::reset() {
     48     return mEffect->reset();
     49 }
     50 
     51 Return<Result> AcousticEchoCancelerEffect::enable() {
     52     return mEffect->enable();
     53 }
     54 
     55 Return<Result> AcousticEchoCancelerEffect::disable() {
     56     return mEffect->disable();
     57 }
     58 
     59 Return<Result> AcousticEchoCancelerEffect::setDevice(AudioDeviceBitfield device) {
     60     return mEffect->setDevice(device);
     61 }
     62 
     63 Return<void> AcousticEchoCancelerEffect::setAndGetVolume(const hidl_vec<uint32_t>& volumes,
     64                                                          setAndGetVolume_cb _hidl_cb) {
     65     return mEffect->setAndGetVolume(volumes, _hidl_cb);
     66 }
     67 
     68 Return<Result> AcousticEchoCancelerEffect::volumeChangeNotification(
     69     const hidl_vec<uint32_t>& volumes) {
     70     return mEffect->volumeChangeNotification(volumes);
     71 }
     72 
     73 Return<Result> AcousticEchoCancelerEffect::setAudioMode(AudioMode mode) {
     74     return mEffect->setAudioMode(mode);
     75 }
     76 
     77 Return<Result> AcousticEchoCancelerEffect::setConfigReverse(
     78     const EffectConfig& config, const sp<IEffectBufferProviderCallback>& inputBufferProvider,
     79     const sp<IEffectBufferProviderCallback>& outputBufferProvider) {
     80     return mEffect->setConfigReverse(config, inputBufferProvider, outputBufferProvider);
     81 }
     82 
     83 Return<Result> AcousticEchoCancelerEffect::setInputDevice(AudioDeviceBitfield device) {
     84     return mEffect->setInputDevice(device);
     85 }
     86 
     87 Return<void> AcousticEchoCancelerEffect::getConfig(getConfig_cb _hidl_cb) {
     88     return mEffect->getConfig(_hidl_cb);
     89 }
     90 
     91 Return<void> AcousticEchoCancelerEffect::getConfigReverse(getConfigReverse_cb _hidl_cb) {
     92     return mEffect->getConfigReverse(_hidl_cb);
     93 }
     94 
     95 Return<void> AcousticEchoCancelerEffect::getSupportedAuxChannelsConfigs(
     96     uint32_t maxConfigs, getSupportedAuxChannelsConfigs_cb _hidl_cb) {
     97     return mEffect->getSupportedAuxChannelsConfigs(maxConfigs, _hidl_cb);
     98 }
     99 
    100 Return<void> AcousticEchoCancelerEffect::getAuxChannelsConfig(getAuxChannelsConfig_cb _hidl_cb) {
    101     return mEffect->getAuxChannelsConfig(_hidl_cb);
    102 }
    103 
    104 Return<Result> AcousticEchoCancelerEffect::setAuxChannelsConfig(
    105     const EffectAuxChannelsConfig& config) {
    106     return mEffect->setAuxChannelsConfig(config);
    107 }
    108 
    109 Return<Result> AcousticEchoCancelerEffect::setAudioSource(AudioSource source) {
    110     return mEffect->setAudioSource(source);
    111 }
    112 
    113 Return<Result> AcousticEchoCancelerEffect::offload(const EffectOffloadParameter& param) {
    114     return mEffect->offload(param);
    115 }
    116 
    117 Return<void> AcousticEchoCancelerEffect::getDescriptor(getDescriptor_cb _hidl_cb) {
    118     return mEffect->getDescriptor(_hidl_cb);
    119 }
    120 
    121 Return<void> AcousticEchoCancelerEffect::prepareForProcessing(prepareForProcessing_cb _hidl_cb) {
    122     return mEffect->prepareForProcessing(_hidl_cb);
    123 }
    124 
    125 Return<Result> AcousticEchoCancelerEffect::setProcessBuffers(const AudioBuffer& inBuffer,
    126                                                              const AudioBuffer& outBuffer) {
    127     return mEffect->setProcessBuffers(inBuffer, outBuffer);
    128 }
    129 
    130 Return<void> AcousticEchoCancelerEffect::command(uint32_t commandId, const hidl_vec<uint8_t>& data,
    131                                                  uint32_t resultMaxSize, command_cb _hidl_cb) {
    132     return mEffect->command(commandId, data, resultMaxSize, _hidl_cb);
    133 }
    134 
    135 Return<Result> AcousticEchoCancelerEffect::setParameter(const hidl_vec<uint8_t>& parameter,
    136                                                         const hidl_vec<uint8_t>& value) {
    137     return mEffect->setParameter(parameter, value);
    138 }
    139 
    140 Return<void> AcousticEchoCancelerEffect::getParameter(const hidl_vec<uint8_t>& parameter,
    141                                                       uint32_t valueMaxSize,
    142                                                       getParameter_cb _hidl_cb) {
    143     return mEffect->getParameter(parameter, valueMaxSize, _hidl_cb);
    144 }
    145 
    146 Return<void> AcousticEchoCancelerEffect::getSupportedConfigsForFeature(
    147     uint32_t featureId, uint32_t maxConfigs, uint32_t configSize,
    148     getSupportedConfigsForFeature_cb _hidl_cb) {
    149     return mEffect->getSupportedConfigsForFeature(featureId, maxConfigs, configSize, _hidl_cb);
    150 }
    151 
    152 Return<void> AcousticEchoCancelerEffect::getCurrentConfigForFeature(
    153     uint32_t featureId, uint32_t configSize, getCurrentConfigForFeature_cb _hidl_cb) {
    154     return mEffect->getCurrentConfigForFeature(featureId, configSize, _hidl_cb);
    155 }
    156 
    157 Return<Result> AcousticEchoCancelerEffect::setCurrentConfigForFeature(
    158     uint32_t featureId, const hidl_vec<uint8_t>& configData) {
    159     return mEffect->setCurrentConfigForFeature(featureId, configData);
    160 }
    161 
    162 Return<Result> AcousticEchoCancelerEffect::close() {
    163     return mEffect->close();
    164 }
    165 
    166 // Methods from ::android::hardware::audio::effect::AUDIO_HAL_VERSION::IAcousticEchoCancelerEffect
    167 // follow.
    168 Return<Result> AcousticEchoCancelerEffect::setEchoDelay(uint32_t echoDelayMs) {
    169     return mEffect->setParam(AEC_PARAM_ECHO_DELAY, echoDelayMs);
    170 }
    171 
    172 Return<void> AcousticEchoCancelerEffect::getEchoDelay(getEchoDelay_cb _hidl_cb) {
    173     return mEffect->getIntegerParam(AEC_PARAM_ECHO_DELAY, _hidl_cb);
    174 }
    175 
    176 }  // namespace implementation
    177 }  // namespace AUDIO_HAL_VERSION
    178 }  // namespace effect
    179 }  // namespace audio
    180 }  // namespace hardware
    181 }  // namespace android
    182