17cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov/*
27cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * Copyright (C) 2016 The Android Open Source Project
37cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov *
47cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * Licensed under the Apache License, Version 2.0 (the "License");
57cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * you may not use this file except in compliance with the License.
67cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * You may obtain a copy of the License at
77cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov *
87cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov *      http://www.apache.org/licenses/LICENSE-2.0
97cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov *
107cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * Unless required by applicable law or agreed to in writing, software
117cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * distributed under the License is distributed on an "AS IS" BASIS,
127cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * See the License for the specific language governing permissions and
147cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov * limitations under the License.
157cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov */
167cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1762588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocard#include <common/all-versions/IncludeGuard.h>
187cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1962588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocard#include <android/log.h>
207cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
21af7f78daa6517f49f9c54de05dedb1f691ca883fKevin Rocard#include "VersionUtils.h"
22af7f78daa6517f49f9c54de05dedb1f691ca883fKevin Rocard
237cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovnamespace android {
247cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovnamespace hardware {
257cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovnamespace audio {
267cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovnamespace effect {
2762588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocardnamespace AUDIO_HAL_VERSION {
287cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovnamespace implementation {
297cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
307cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovEnvironmentalReverbEffect::EnvironmentalReverbEffect(effect_handle_t handle)
3122505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    : mEffect(new Effect(handle)) {}
327cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
337cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovEnvironmentalReverbEffect::~EnvironmentalReverbEffect() {}
347cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
357cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovvoid EnvironmentalReverbEffect::propertiesFromHal(
3622505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const t_reverb_settings& halProperties, IEnvironmentalReverbEffect::AllProperties* properties) {
377cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->roomLevel = halProperties.roomLevel;
387cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->roomHfLevel = halProperties.roomHFLevel;
397cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->decayTime = halProperties.decayTime;
407cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->decayHfRatio = halProperties.decayHFRatio;
417cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->reflectionsLevel = halProperties.reflectionsLevel;
427cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->reflectionsDelay = halProperties.reflectionsDelay;
437cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->reverbLevel = halProperties.reverbLevel;
447cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->reverbDelay = halProperties.reverbDelay;
457cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->diffusion = halProperties.diffusion;
467cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    properties->density = halProperties.density;
477cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
487cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
497cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganovvoid EnvironmentalReverbEffect::propertiesToHal(
5022505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const IEnvironmentalReverbEffect::AllProperties& properties, t_reverb_settings* halProperties) {
517cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->roomLevel = properties.roomLevel;
527cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->roomHFLevel = properties.roomHfLevel;
537cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->decayTime = properties.decayTime;
547cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->decayHFRatio = properties.decayHfRatio;
557cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->reflectionsLevel = properties.reflectionsLevel;
567cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->reflectionsDelay = properties.reflectionsDelay;
577cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->reverbLevel = properties.reverbLevel;
587cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->reverbDelay = properties.reverbDelay;
597cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->diffusion = properties.diffusion;
607cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    halProperties->density = properties.density;
617cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
627cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
6362588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocard// Methods from ::android::hardware::audio::effect::AUDIO_HAL_VERSION::IEffect follow.
647cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::init() {
657cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->init();
667cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
677cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
687cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setConfig(
6922505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const EffectConfig& config, const sp<IEffectBufferProviderCallback>& inputBufferProvider,
7022505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const sp<IEffectBufferProviderCallback>& outputBufferProvider) {
717cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setConfig(config, inputBufferProvider, outputBufferProvider);
727cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
737cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
747cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::reset() {
757cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->reset();
767cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
777cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
787cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::enable() {
797cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->enable();
807cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
817cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
827cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::disable() {
837cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->disable();
847cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
857cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
86af7f78daa6517f49f9c54de05dedb1f691ca883fKevin RocardReturn<Result> EnvironmentalReverbEffect::setDevice(AudioDeviceBitfield device) {
877cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setDevice(device);
887cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
897cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
9022505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::setAndGetVolume(const hidl_vec<uint32_t>& volumes,
9122505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard                                                        setAndGetVolume_cb _hidl_cb) {
927cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setAndGetVolume(volumes, _hidl_cb);
937cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
947cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
95f4f2ff39746a36b3d657e34ec1724589051b1ec8Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::volumeChangeNotification(
9622505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const hidl_vec<uint32_t>& volumes) {
97f4f2ff39746a36b3d657e34ec1724589051b1ec8Mikhail Naganov    return mEffect->volumeChangeNotification(volumes);
98f4f2ff39746a36b3d657e34ec1724589051b1ec8Mikhail Naganov}
99f4f2ff39746a36b3d657e34ec1724589051b1ec8Mikhail Naganov
1007cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setAudioMode(AudioMode mode) {
1017cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setAudioMode(mode);
1027cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1037cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1047cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setConfigReverse(
10522505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const EffectConfig& config, const sp<IEffectBufferProviderCallback>& inputBufferProvider,
10622505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const sp<IEffectBufferProviderCallback>& outputBufferProvider) {
1077cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setConfigReverse(config, inputBufferProvider, outputBufferProvider);
1087cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1097cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
110af7f78daa6517f49f9c54de05dedb1f691ca883fKevin RocardReturn<Result> EnvironmentalReverbEffect::setInputDevice(AudioDeviceBitfield device) {
1117cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setInputDevice(device);
1127cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1137cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1147cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getConfig(getConfig_cb _hidl_cb) {
1157cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getConfig(_hidl_cb);
1167cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1177cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1187cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getConfigReverse(getConfigReverse_cb _hidl_cb) {
1197cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getConfigReverse(_hidl_cb);
1207cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1217cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1227cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getSupportedAuxChannelsConfigs(
12322505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    uint32_t maxConfigs, getSupportedAuxChannelsConfigs_cb _hidl_cb) {
1247cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getSupportedAuxChannelsConfigs(maxConfigs, _hidl_cb);
1257cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1267cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1277cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getAuxChannelsConfig(getAuxChannelsConfig_cb _hidl_cb) {
1287cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getAuxChannelsConfig(_hidl_cb);
1297cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1307cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1317cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setAuxChannelsConfig(
13222505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const EffectAuxChannelsConfig& config) {
1337cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setAuxChannelsConfig(config);
1347cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1357cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1367cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setAudioSource(AudioSource source) {
1377cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setAudioSource(source);
1387cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1397cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1407cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::offload(const EffectOffloadParameter& param) {
1417cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->offload(param);
1427cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1437cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1447cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getDescriptor(getDescriptor_cb _hidl_cb) {
1457cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getDescriptor(_hidl_cb);
1467cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1477cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
14822505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::prepareForProcessing(prepareForProcessing_cb _hidl_cb) {
149a331de14219b34b08f4cbb462a45f1fd82a92d48Mikhail Naganov    return mEffect->prepareForProcessing(_hidl_cb);
1507cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1517cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
15222505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setProcessBuffers(const AudioBuffer& inBuffer,
15322505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard                                                            const AudioBuffer& outBuffer) {
154a331de14219b34b08f4cbb462a45f1fd82a92d48Mikhail Naganov    return mEffect->setProcessBuffers(inBuffer, outBuffer);
1557cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1567cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
15722505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::command(uint32_t commandId, const hidl_vec<uint8_t>& data,
15822505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard                                                uint32_t resultMaxSize, command_cb _hidl_cb) {
1597cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->command(commandId, data, resultMaxSize, _hidl_cb);
1607cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1617cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
16222505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setParameter(const hidl_vec<uint8_t>& parameter,
16322505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard                                                       const hidl_vec<uint8_t>& value) {
1647cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParameter(parameter, value);
1657cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1667cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
16722505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getParameter(const hidl_vec<uint8_t>& parameter,
16822505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard                                                     uint32_t valueMaxSize,
16922505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard                                                     getParameter_cb _hidl_cb) {
1707cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getParameter(parameter, valueMaxSize, _hidl_cb);
1717cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1727cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1737cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getSupportedConfigsForFeature(
17422505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    uint32_t featureId, uint32_t maxConfigs, uint32_t configSize,
17522505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    getSupportedConfigsForFeature_cb _hidl_cb) {
1767cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getSupportedConfigsForFeature(featureId, maxConfigs, configSize, _hidl_cb);
1777cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1787cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1797cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getCurrentConfigForFeature(
18022505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    uint32_t featureId, uint32_t configSize, getCurrentConfigForFeature_cb _hidl_cb) {
1817cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getCurrentConfigForFeature(featureId, configSize, _hidl_cb);
1827cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1837cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
1847cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setCurrentConfigForFeature(
18522505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    uint32_t featureId, const hidl_vec<uint8_t>& configData) {
1867cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setCurrentConfigForFeature(featureId, configData);
1877cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1887cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
189a331de14219b34b08f4cbb462a45f1fd82a92d48Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::close() {
190a331de14219b34b08f4cbb462a45f1fd82a92d48Mikhail Naganov    return mEffect->close();
191a331de14219b34b08f4cbb462a45f1fd82a92d48Mikhail Naganov}
1927cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
19362588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocard// Methods from ::android::hardware::audio::effect::AUDIO_HAL_VERSION::IEnvironmentalReverbEffect
19462588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocard// follow.
19522505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setBypass(bool bypass) {
1967cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_BYPASS, bypass);
1977cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
1987cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
19922505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getBypass(getBypass_cb _hidl_cb) {
2007cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_BYPASS, _hidl_cb);
2017cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2027cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
20322505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setRoomLevel(int16_t roomLevel) {
2047cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_ROOM_LEVEL, roomLevel);
2057cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2067cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
20722505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getRoomLevel(getRoomLevel_cb _hidl_cb) {
2087cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_ROOM_LEVEL, _hidl_cb);
2097cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2107cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
21122505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setRoomHfLevel(int16_t roomHfLevel) {
2127cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_ROOM_HF_LEVEL, roomHfLevel);
2137cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2147cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
21522505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getRoomHfLevel(getRoomHfLevel_cb _hidl_cb) {
2167cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_ROOM_HF_LEVEL, _hidl_cb);
2177cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2187cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
21922505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setDecayTime(uint32_t decayTime) {
2207cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_DECAY_TIME, decayTime);
2217cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2227cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
22322505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getDecayTime(getDecayTime_cb _hidl_cb) {
2247cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_DECAY_TIME, _hidl_cb);
2257cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2267cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
22722505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setDecayHfRatio(int16_t decayHfRatio) {
2287cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_DECAY_HF_RATIO, decayHfRatio);
2297cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2307cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
23122505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getDecayHfRatio(getDecayHfRatio_cb _hidl_cb) {
2327cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_DECAY_HF_RATIO, _hidl_cb);
2337cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2347cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
23522505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setReflectionsLevel(int16_t reflectionsLevel) {
2367cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_REFLECTIONS_LEVEL, reflectionsLevel);
2377cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2387cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
23922505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getReflectionsLevel(getReflectionsLevel_cb _hidl_cb) {
2407cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_REFLECTIONS_LEVEL, _hidl_cb);
2417cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2427cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
24322505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setReflectionsDelay(uint32_t reflectionsDelay) {
2447cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_REFLECTIONS_DELAY, reflectionsDelay);
2457cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2467cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
24722505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getReflectionsDelay(getReflectionsDelay_cb _hidl_cb) {
2487cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_REFLECTIONS_DELAY, _hidl_cb);
2497cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2507cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
25122505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setReverbLevel(int16_t reverbLevel) {
2527cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_REVERB_LEVEL, reverbLevel);
2537cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2547cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
25522505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getReverbLevel(getReverbLevel_cb _hidl_cb) {
2567cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_REVERB_LEVEL, _hidl_cb);
2577cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2587cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
2597cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setReverbDelay(uint32_t reverbDelay) {
2607cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_REVERB_DELAY, reverbDelay);
2617cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2627cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
2637cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<void> EnvironmentalReverbEffect::getReverbDelay(getReverbDelay_cb _hidl_cb) {
2647cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_REVERB_DELAY, _hidl_cb);
2657cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2667cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
26722505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setDiffusion(int16_t diffusion) {
2687cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_DIFFUSION, diffusion);
2697cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2707cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
27122505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getDiffusion(getDiffusion_cb _hidl_cb) {
2727cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_DIFFUSION, _hidl_cb);
2737cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2747cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
27522505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<Result> EnvironmentalReverbEffect::setDensity(int16_t density) {
2767cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_DENSITY, density);
2777cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2787cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
27922505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getDensity(getDensity_cb _hidl_cb) {
2807cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->getIntegerParam(REVERB_PARAM_DENSITY, _hidl_cb);
2817cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2827cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
2837cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail NaganovReturn<Result> EnvironmentalReverbEffect::setAllProperties(
28422505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard    const IEnvironmentalReverbEffect::AllProperties& properties) {
2857cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    t_reverb_settings halProperties;
2867cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    propertiesToHal(properties, &halProperties);
2877cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return mEffect->setParam(REVERB_PARAM_PROPERTIES, halProperties);
2887cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2897cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
29022505e6bf1959d2b2217a399f75e0721631718d5Kevin RocardReturn<void> EnvironmentalReverbEffect::getAllProperties(getAllProperties_cb _hidl_cb) {
2917cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    t_reverb_settings halProperties;
2927cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    Result retval = mEffect->getParam(REVERB_PARAM_PROPERTIES, halProperties);
2937cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    AllProperties properties;
2947cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    propertiesFromHal(halProperties, &properties);
2957cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    _hidl_cb(retval, properties);
2967cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov    return Void();
2977cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}
2987cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov
29922505e6bf1959d2b2217a399f75e0721631718d5Kevin Rocard}  // namespace implementation
30062588b69f6289e2ccb7a363a4b0727d51b76bfb5Kevin Rocard}  // namespace AUDIO_HAL_VERSION
3017cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}  // namespace effect
3027cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}  // namespace audio
3037cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}  // namespace hardware
3047cbf2f1fb15a2a7d9b8b61ca81ad93fa9ddcaea3Mikhail Naganov}  // namespace android
305