hal: Add new parameter in SA+ effects and resolve compilation issue
Add new parameter in SA+ effects to get latency introduced
by each effect. Use #ifdef instead of #if in environmentalreverb header
file since _cplusplus macro not being defined is raising errors.
Change-Id: I0d5e410414502ac2bef77f1cbd7b041e4f26844d
diff --git a/post_proc/reverb.c b/post_proc/reverb.c
index e97b651..a0a0441 100644
--- a/post_proc/reverb.c
+++ b/post_proc/reverb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013 - 2014, 2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013 - 2014, 2017-2018, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -30,6 +30,8 @@
#include "effect_api.h"
#include "reverb.h"
+#define REVERB_MAX_LATENCY 100
+
/* Offload auxiliary environmental reverb UUID: 79a18026-18fd-4185-8233-0002a5d5c51b */
const effect_descriptor_t aux_env_reverb_descriptor = {
{ 0xc2e5d5f0, 0x94bd, 0x4763, 0x9cac, { 0x4e, 0x23, 0x4d, 0x06, 0x83, 0x9e } },
@@ -522,6 +524,11 @@
p->status = -EINVAL;
p->vsize = sizeof(reverb_settings_t);
break;
+ case REVERB_PARAM_LATENCY:
+ if (p->vsize < sizeof(uint32_t))
+ return -EINVAL;
+ p->vsize = sizeof(uint32_t);
+ break;
default:
p->status = -EINVAL;
}
@@ -575,6 +582,9 @@
reverb_settings->diffusion = reverb_get_diffusion(reverb_ctxt);
reverb_settings->density = reverb_get_density(reverb_ctxt);
break;
+ case REVERB_PARAM_LATENCY:
+ *(uint16_t *)value = REVERB_MAX_LATENCY;
+ break;
default:
p->status = -EINVAL;
break;