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