audiohal: Support 64-bit audioflinger with 32-bit hal
effect_config_t size depends on the architecture because it
uses pointers. Need to convert it into HIDL structure when
passing to HAL.
Test: build 64-bit af with 32-bit hal server in binderized mode
run Play Music, apply effects
Change-Id: I16ff9cd3accc00b6cb30f86418880ca5b749fdad
diff --git a/media/libaudiohal/EffectHalHidl.h b/media/libaudiohal/EffectHalHidl.h
index 1ed1153..d6a8791 100644
--- a/media/libaudiohal/EffectHalHidl.h
+++ b/media/libaudiohal/EffectHalHidl.h
@@ -23,6 +23,8 @@
#include <fmq/MessageQueue.h>
#include <system/audio_effect.h>
+using ::android::hardware::audio::effect::V2_0::EffectBufferConfig;
+using ::android::hardware::audio::effect::V2_0::EffectConfig;
using ::android::hardware::audio::effect::V2_0::EffectDescriptor;
using ::android::hardware::audio::effect::V2_0::IEffect;
using ::android::hardware::EventFlag;
@@ -75,6 +77,9 @@
EventFlag* mEfGroup;
static status_t analyzeResult(const hardware::audio::effect::V2_0::Result& result);
+ static void effectBufferConfigFromHal(
+ const buffer_config_t& halConfig, EffectBufferConfig* config);
+ static void effectConfigFromHal(const effect_config_t& halConfig, EffectConfig* config);
// Can not be constructed directly by clients.
EffectHalHidl(const sp<IEffect>& effect, uint64_t effectId);
@@ -84,6 +89,9 @@
status_t prepareForProcessing();
status_t processImpl(uint32_t mqFlag);
+ status_t setConfigImpl(
+ uint32_t cmdCode, uint32_t cmdSize, void *pCmdData,
+ uint32_t *replySize, void *pReplyData);
status_t setProcessBuffers();
};