1*4d7e907cSAndroid Build Coastguard Worker /* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2020 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 Worker #pragma once 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Worker #include <android/hardware/audio/effect/7.0/ILoudnessEnhancerEffect.h> 20*4d7e907cSAndroid Build Coastguard Worker 21*4d7e907cSAndroid Build Coastguard Worker #include "Effect.h" 22*4d7e907cSAndroid Build Coastguard Worker 23*4d7e907cSAndroid Build Coastguard Worker namespace android::hardware::audio::effect::V7_0::implementation { 24*4d7e907cSAndroid Build Coastguard Worker 25*4d7e907cSAndroid Build Coastguard Worker class LoudnessEnhancerEffect : public ILoudnessEnhancerEffect { 26*4d7e907cSAndroid Build Coastguard Worker public: 27*4d7e907cSAndroid Build Coastguard Worker static const EffectDescriptor& getDescriptor(); 28*4d7e907cSAndroid Build Coastguard Worker 29*4d7e907cSAndroid Build Coastguard Worker LoudnessEnhancerEffect(); 30*4d7e907cSAndroid Build Coastguard Worker 31*4d7e907cSAndroid Build Coastguard Worker // Methods from IEffect interface. init()32*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> init() override { return mEffect->init(); } setConfig(const EffectConfig & config,const::android::sp<IEffectBufferProviderCallback> & inputBufferProvider,const::android::sp<IEffectBufferProviderCallback> & outputBufferProvider)33*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setConfig( 34*4d7e907cSAndroid Build Coastguard Worker const EffectConfig& config, 35*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& inputBufferProvider, 36*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& outputBufferProvider) override { 37*4d7e907cSAndroid Build Coastguard Worker return mEffect->setConfig(config, inputBufferProvider, outputBufferProvider); 38*4d7e907cSAndroid Build Coastguard Worker } reset()39*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> reset() override { return mEffect->reset(); } enable()40*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> enable() override { return mEffect->enable(); } disable()41*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> disable() override { return mEffect->disable(); } setDevice(const::android::hardware::audio::common::V7_0::DeviceAddress & device)42*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setDevice( 43*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::audio::common::V7_0::DeviceAddress& device) override { 44*4d7e907cSAndroid Build Coastguard Worker return mEffect->setDevice(device); 45*4d7e907cSAndroid Build Coastguard Worker } setAndGetVolume(const::android::hardware::hidl_vec<uint32_t> & volumes,setAndGetVolume_cb _hidl_cb)46*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> setAndGetVolume( 47*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint32_t>& volumes, 48*4d7e907cSAndroid Build Coastguard Worker setAndGetVolume_cb _hidl_cb) override { 49*4d7e907cSAndroid Build Coastguard Worker return mEffect->setAndGetVolume(volumes, _hidl_cb); 50*4d7e907cSAndroid Build Coastguard Worker } volumeChangeNotification(const::android::hardware::hidl_vec<uint32_t> & volumes)51*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> volumeChangeNotification( 52*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint32_t>& volumes) override { 53*4d7e907cSAndroid Build Coastguard Worker return mEffect->volumeChangeNotification(volumes); 54*4d7e907cSAndroid Build Coastguard Worker } setAudioMode(::android::hardware::audio::common::V7_0::AudioMode mode)55*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setAudioMode( 56*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::audio::common::V7_0::AudioMode mode) override { 57*4d7e907cSAndroid Build Coastguard Worker return mEffect->setAudioMode(mode); 58*4d7e907cSAndroid Build Coastguard Worker } setConfigReverse(const EffectConfig & config,const::android::sp<IEffectBufferProviderCallback> & inputBufferProvider,const::android::sp<IEffectBufferProviderCallback> & outputBufferProvider)59*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setConfigReverse( 60*4d7e907cSAndroid Build Coastguard Worker const EffectConfig& config, 61*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& inputBufferProvider, 62*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& outputBufferProvider) override { 63*4d7e907cSAndroid Build Coastguard Worker return mEffect->setConfigReverse(config, inputBufferProvider, outputBufferProvider); 64*4d7e907cSAndroid Build Coastguard Worker } setInputDevice(const::android::hardware::audio::common::V7_0::DeviceAddress & device)65*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setInputDevice( 66*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::audio::common::V7_0::DeviceAddress& device) override { 67*4d7e907cSAndroid Build Coastguard Worker return mEffect->setInputDevice(device); 68*4d7e907cSAndroid Build Coastguard Worker } getConfig(getConfig_cb _hidl_cb)69*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getConfig(getConfig_cb _hidl_cb) override { 70*4d7e907cSAndroid Build Coastguard Worker return mEffect->getConfig(_hidl_cb); 71*4d7e907cSAndroid Build Coastguard Worker } getConfigReverse(getConfigReverse_cb _hidl_cb)72*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getConfigReverse(getConfigReverse_cb _hidl_cb) override { 73*4d7e907cSAndroid Build Coastguard Worker return mEffect->getConfigReverse(_hidl_cb); 74*4d7e907cSAndroid Build Coastguard Worker } getSupportedAuxChannelsConfigs(uint32_t maxConfigs,getSupportedAuxChannelsConfigs_cb _hidl_cb)75*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getSupportedAuxChannelsConfigs( 76*4d7e907cSAndroid Build Coastguard Worker uint32_t maxConfigs, getSupportedAuxChannelsConfigs_cb _hidl_cb) override { 77*4d7e907cSAndroid Build Coastguard Worker return mEffect->getSupportedAuxChannelsConfigs(maxConfigs, _hidl_cb); 78*4d7e907cSAndroid Build Coastguard Worker } getAuxChannelsConfig(getAuxChannelsConfig_cb _hidl_cb)79*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getAuxChannelsConfig( 80*4d7e907cSAndroid Build Coastguard Worker getAuxChannelsConfig_cb _hidl_cb) override { 81*4d7e907cSAndroid Build Coastguard Worker return mEffect->getAuxChannelsConfig(_hidl_cb); 82*4d7e907cSAndroid Build Coastguard Worker } setAuxChannelsConfig(const EffectAuxChannelsConfig & config)83*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setAuxChannelsConfig( 84*4d7e907cSAndroid Build Coastguard Worker const EffectAuxChannelsConfig& config) override { 85*4d7e907cSAndroid Build Coastguard Worker return mEffect->setAuxChannelsConfig(config); 86*4d7e907cSAndroid Build Coastguard Worker } setAudioSource(const::android::hardware::hidl_string & source)87*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setAudioSource( 88*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_string& source) override { 89*4d7e907cSAndroid Build Coastguard Worker return mEffect->setAudioSource(source); 90*4d7e907cSAndroid Build Coastguard Worker } offload(const EffectOffloadParameter & param)91*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> offload(const EffectOffloadParameter& param) override { 92*4d7e907cSAndroid Build Coastguard Worker return mEffect->offload(param); 93*4d7e907cSAndroid Build Coastguard Worker } getDescriptor(getDescriptor_cb _hidl_cb)94*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getDescriptor(getDescriptor_cb _hidl_cb) override { 95*4d7e907cSAndroid Build Coastguard Worker return mEffect->getDescriptor(_hidl_cb); 96*4d7e907cSAndroid Build Coastguard Worker } prepareForProcessing(prepareForProcessing_cb _hidl_cb)97*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> prepareForProcessing( 98*4d7e907cSAndroid Build Coastguard Worker prepareForProcessing_cb _hidl_cb) override { 99*4d7e907cSAndroid Build Coastguard Worker return mEffect->prepareForProcessing(_hidl_cb); 100*4d7e907cSAndroid Build Coastguard Worker } setProcessBuffers(const AudioBuffer & inBuffer,const AudioBuffer & outBuffer)101*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setProcessBuffers(const AudioBuffer& inBuffer, 102*4d7e907cSAndroid Build Coastguard Worker const AudioBuffer& outBuffer) override { 103*4d7e907cSAndroid Build Coastguard Worker return mEffect->setProcessBuffers(inBuffer, outBuffer); 104*4d7e907cSAndroid Build Coastguard Worker } command(uint32_t commandId,const::android::hardware::hidl_vec<uint8_t> & data,uint32_t resultMaxSize,command_cb _hidl_cb)105*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> command(uint32_t commandId, 106*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& data, 107*4d7e907cSAndroid Build Coastguard Worker uint32_t resultMaxSize, 108*4d7e907cSAndroid Build Coastguard Worker command_cb _hidl_cb) override { 109*4d7e907cSAndroid Build Coastguard Worker return mEffect->command(commandId, data, resultMaxSize, _hidl_cb); 110*4d7e907cSAndroid Build Coastguard Worker } setParameter(const::android::hardware::hidl_vec<uint8_t> & parameter,const::android::hardware::hidl_vec<uint8_t> & value)111*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setParameter( 112*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& parameter, 113*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& value) override { 114*4d7e907cSAndroid Build Coastguard Worker return mEffect->setParameter(parameter, value); 115*4d7e907cSAndroid Build Coastguard Worker } getParameter(const::android::hardware::hidl_vec<uint8_t> & parameter,uint32_t valueMaxSize,getParameter_cb _hidl_cb)116*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getParameter( 117*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& parameter, uint32_t valueMaxSize, 118*4d7e907cSAndroid Build Coastguard Worker getParameter_cb _hidl_cb) override { 119*4d7e907cSAndroid Build Coastguard Worker return mEffect->getParameter(parameter, valueMaxSize, _hidl_cb); 120*4d7e907cSAndroid Build Coastguard Worker } getSupportedConfigsForFeature(uint32_t featureId,uint32_t maxConfigs,uint32_t configSize,getSupportedConfigsForFeature_cb _hidl_cb)121*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getSupportedConfigsForFeature( 122*4d7e907cSAndroid Build Coastguard Worker uint32_t featureId, uint32_t maxConfigs, uint32_t configSize, 123*4d7e907cSAndroid Build Coastguard Worker getSupportedConfigsForFeature_cb _hidl_cb) override { 124*4d7e907cSAndroid Build Coastguard Worker return mEffect->getSupportedConfigsForFeature(featureId, maxConfigs, configSize, _hidl_cb); 125*4d7e907cSAndroid Build Coastguard Worker } getCurrentConfigForFeature(uint32_t featureId,uint32_t configSize,getCurrentConfigForFeature_cb _hidl_cb)126*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getCurrentConfigForFeature( 127*4d7e907cSAndroid Build Coastguard Worker uint32_t featureId, uint32_t configSize, 128*4d7e907cSAndroid Build Coastguard Worker getCurrentConfigForFeature_cb _hidl_cb) override { 129*4d7e907cSAndroid Build Coastguard Worker return mEffect->getCurrentConfigForFeature(featureId, configSize, _hidl_cb); 130*4d7e907cSAndroid Build Coastguard Worker } setCurrentConfigForFeature(uint32_t featureId,const::android::hardware::hidl_vec<uint8_t> & configData)131*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setCurrentConfigForFeature( 132*4d7e907cSAndroid Build Coastguard Worker uint32_t featureId, const ::android::hardware::hidl_vec<uint8_t>& configData) override { 133*4d7e907cSAndroid Build Coastguard Worker return mEffect->setCurrentConfigForFeature(featureId, configData); 134*4d7e907cSAndroid Build Coastguard Worker } close()135*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> close() override { return mEffect->close(); } 136*4d7e907cSAndroid Build Coastguard Worker 137*4d7e907cSAndroid Build Coastguard Worker // Methods from ILoudnessEnhancerEffect interface. 138*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setTargetGain(int32_t targetGainMb) override; 139*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getTargetGain(getTargetGain_cb _hidl_cb) override; 140*4d7e907cSAndroid Build Coastguard Worker 141*4d7e907cSAndroid Build Coastguard Worker private: 142*4d7e907cSAndroid Build Coastguard Worker sp<Effect> mEffect; 143*4d7e907cSAndroid Build Coastguard Worker int32_t mTargetGainMb = 0; 144*4d7e907cSAndroid Build Coastguard Worker }; 145*4d7e907cSAndroid Build Coastguard Worker 146*4d7e907cSAndroid Build Coastguard Worker } // namespace android::hardware::audio::effect::V7_0::implementation 147