/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include namespace android::hardware::audio::effect::V7_0::implementation { class Effect : public IEffect { public: explicit Effect(const EffectDescriptor& descriptor) : mDescriptor(descriptor) {} ::android::hardware::Return init() override; ::android::hardware::Return setConfig( const EffectConfig& config, const ::android::sp& inputBufferProvider, const ::android::sp& outputBufferProvider) override; ::android::hardware::Return reset() override; ::android::hardware::Return enable() override; ::android::hardware::Return disable() override; ::android::hardware::Return setDevice( const ::android::hardware::audio::common::V7_0::DeviceAddress& device) override; ::android::hardware::Return setAndGetVolume( const ::android::hardware::hidl_vec& volumes, setAndGetVolume_cb _hidl_cb) override; ::android::hardware::Return volumeChangeNotification( const ::android::hardware::hidl_vec& volumes) override; ::android::hardware::Return setAudioMode( ::android::hardware::audio::common::V7_0::AudioMode mode) override; ::android::hardware::Return setConfigReverse( const EffectConfig& config, const ::android::sp& inputBufferProvider, const ::android::sp& outputBufferProvider) override; ::android::hardware::Return setInputDevice( const ::android::hardware::audio::common::V7_0::DeviceAddress& device) override; ::android::hardware::Return getConfig(getConfig_cb _hidl_cb) override; ::android::hardware::Return getConfigReverse(getConfigReverse_cb _hidl_cb) override; ::android::hardware::Return getSupportedAuxChannelsConfigs( uint32_t maxConfigs, getSupportedAuxChannelsConfigs_cb _hidl_cb) override; ::android::hardware::Return getAuxChannelsConfig( getAuxChannelsConfig_cb _hidl_cb) override; ::android::hardware::Return setAuxChannelsConfig( const EffectAuxChannelsConfig& config) override; ::android::hardware::Return setAudioSource( const ::android::hardware::hidl_string& source) override; ::android::hardware::Return offload(const EffectOffloadParameter& param) override; ::android::hardware::Return getDescriptor(getDescriptor_cb _hidl_cb) override; ::android::hardware::Return prepareForProcessing( prepareForProcessing_cb _hidl_cb) override; ::android::hardware::Return setProcessBuffers(const AudioBuffer& inBuffer, const AudioBuffer& outBuffer) override; ::android::hardware::Return command(uint32_t commandId, const ::android::hardware::hidl_vec& data, uint32_t resultMaxSize, command_cb _hidl_cb) override; ::android::hardware::Return setParameter( const ::android::hardware::hidl_vec& parameter, const ::android::hardware::hidl_vec& value) override; ::android::hardware::Return getParameter( const ::android::hardware::hidl_vec& parameter, uint32_t valueMaxSize, getParameter_cb _hidl_cb) override; ::android::hardware::Return getSupportedConfigsForFeature( uint32_t featureId, uint32_t maxConfigs, uint32_t configSize, getSupportedConfigsForFeature_cb _hidl_cb) override; ::android::hardware::Return getCurrentConfigForFeature( uint32_t featureId, uint32_t configSize, getCurrentConfigForFeature_cb _hidl_cb) override; ::android::hardware::Return setCurrentConfigForFeature( uint32_t featureId, const ::android::hardware::hidl_vec& configData) override; ::android::hardware::Return close() override; private: const EffectDescriptor mDescriptor; bool mEnabled = false; }; } // namespace android::hardware::audio::effect::V7_0::implementation