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/IEffect.h> 20*4d7e907cSAndroid Build Coastguard Worker 21*4d7e907cSAndroid Build Coastguard Worker namespace android::hardware::audio::effect::V7_0::implementation { 22*4d7e907cSAndroid Build Coastguard Worker 23*4d7e907cSAndroid Build Coastguard Worker class Effect : public IEffect { 24*4d7e907cSAndroid Build Coastguard Worker public: Effect(const EffectDescriptor & descriptor)25*4d7e907cSAndroid Build Coastguard Worker explicit Effect(const EffectDescriptor& descriptor) : mDescriptor(descriptor) {} 26*4d7e907cSAndroid Build Coastguard Worker 27*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> init() override; 28*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setConfig( 29*4d7e907cSAndroid Build Coastguard Worker const EffectConfig& config, 30*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& inputBufferProvider, 31*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& outputBufferProvider) override; 32*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> reset() override; 33*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> enable() override; 34*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> disable() override; 35*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setDevice( 36*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::audio::common::V7_0::DeviceAddress& device) override; 37*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> setAndGetVolume( 38*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint32_t>& volumes, 39*4d7e907cSAndroid Build Coastguard Worker setAndGetVolume_cb _hidl_cb) override; 40*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> volumeChangeNotification( 41*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint32_t>& volumes) override; 42*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setAudioMode( 43*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::audio::common::V7_0::AudioMode mode) override; 44*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setConfigReverse( 45*4d7e907cSAndroid Build Coastguard Worker const EffectConfig& config, 46*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& inputBufferProvider, 47*4d7e907cSAndroid Build Coastguard Worker const ::android::sp<IEffectBufferProviderCallback>& outputBufferProvider) override; 48*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setInputDevice( 49*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::audio::common::V7_0::DeviceAddress& device) override; 50*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getConfig(getConfig_cb _hidl_cb) override; 51*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getConfigReverse(getConfigReverse_cb _hidl_cb) override; 52*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getSupportedAuxChannelsConfigs( 53*4d7e907cSAndroid Build Coastguard Worker uint32_t maxConfigs, getSupportedAuxChannelsConfigs_cb _hidl_cb) override; 54*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getAuxChannelsConfig( 55*4d7e907cSAndroid Build Coastguard Worker getAuxChannelsConfig_cb _hidl_cb) override; 56*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setAuxChannelsConfig( 57*4d7e907cSAndroid Build Coastguard Worker const EffectAuxChannelsConfig& config) override; 58*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setAudioSource( 59*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_string& source) override; 60*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> offload(const EffectOffloadParameter& param) override; 61*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getDescriptor(getDescriptor_cb _hidl_cb) override; 62*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> prepareForProcessing( 63*4d7e907cSAndroid Build Coastguard Worker prepareForProcessing_cb _hidl_cb) override; 64*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setProcessBuffers(const AudioBuffer& inBuffer, 65*4d7e907cSAndroid Build Coastguard Worker const AudioBuffer& outBuffer) override; 66*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> command(uint32_t commandId, 67*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& data, 68*4d7e907cSAndroid Build Coastguard Worker uint32_t resultMaxSize, command_cb _hidl_cb) override; 69*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setParameter( 70*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& parameter, 71*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& value) override; 72*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getParameter( 73*4d7e907cSAndroid Build Coastguard Worker const ::android::hardware::hidl_vec<uint8_t>& parameter, uint32_t valueMaxSize, 74*4d7e907cSAndroid Build Coastguard Worker getParameter_cb _hidl_cb) override; 75*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getSupportedConfigsForFeature( 76*4d7e907cSAndroid Build Coastguard Worker uint32_t featureId, uint32_t maxConfigs, uint32_t configSize, 77*4d7e907cSAndroid Build Coastguard Worker getSupportedConfigsForFeature_cb _hidl_cb) override; 78*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<void> getCurrentConfigForFeature( 79*4d7e907cSAndroid Build Coastguard Worker uint32_t featureId, uint32_t configSize, 80*4d7e907cSAndroid Build Coastguard Worker getCurrentConfigForFeature_cb _hidl_cb) override; 81*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> setCurrentConfigForFeature( 82*4d7e907cSAndroid Build Coastguard Worker uint32_t featureId, const ::android::hardware::hidl_vec<uint8_t>& configData) override; 83*4d7e907cSAndroid Build Coastguard Worker ::android::hardware::Return<Result> close() override; 84*4d7e907cSAndroid Build Coastguard Worker 85*4d7e907cSAndroid Build Coastguard Worker private: 86*4d7e907cSAndroid Build Coastguard Worker const EffectDescriptor mDescriptor; 87*4d7e907cSAndroid Build Coastguard Worker bool mEnabled = false; 88*4d7e907cSAndroid Build Coastguard Worker }; 89*4d7e907cSAndroid Build Coastguard Worker 90*4d7e907cSAndroid Build Coastguard Worker } // namespace android::hardware::audio::effect::V7_0::implementation 91