audio: enable compilation of qahw_api on Android builds
-Fix compilation errors from qahw_api tests and enable
compilation of qahw_api on Android builds.
Change-Id: Ifc05ea22f0fd9ac0e6f6e9b22a6c593841acc761
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index df9cb66..fcdcb04 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -53,6 +53,7 @@
MM_AUDIO_ENABLED_FTM := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
+BOARD_SUPPORTS_QAHW := true
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 2149a7b..16f248c 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -53,6 +53,7 @@
MM_AUDIO_ENABLED_FTM := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
+BOARD_SUPPORTS_QAHW := true
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
diff --git a/configs/msm8996/msm8996.mk b/configs/msm8996/msm8996.mk
index 26e0bb1..d1a108a 100644
--- a/configs/msm8996/msm8996.mk
+++ b/configs/msm8996/msm8996.mk
@@ -52,6 +52,7 @@
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
+BOARD_SUPPORTS_QAHW := true
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
diff --git a/configs/msm8998/msm8998.mk b/configs/msm8998/msm8998.mk
index 94079aa..6a03696 100644
--- a/configs/msm8998/msm8998.mk
+++ b/configs/msm8998/msm8998.mk
@@ -55,6 +55,7 @@
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
+BOARD_SUPPORTS_QAHW := true
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
diff --git a/hal/audio_extn/audio_defs.h b/hal/audio_extn/audio_defs.h
index 1baa3a7..94b43ba 100644
--- a/hal/audio_extn/audio_defs.h
+++ b/hal/audio_extn/audio_defs.h
@@ -115,27 +115,27 @@
/* MAX SECTORS for sourcetracking feature */
#define MAX_SECTORS 8
-struct qahw_source_tracking_param {
+struct source_tracking_param {
uint8_t vad[MAX_SECTORS];
uint16_t doa_speech;
uint16_t doa_noise[3];
uint8_t polar_activity[360];
};
-struct qahw_sound_focus_param {
+struct sound_focus_param {
uint16_t start_angle[MAX_SECTORS];
uint8_t enable[MAX_SECTORS];
uint16_t gain_step;
};
typedef union {
- struct qahw_source_tracking_param st_params;
- struct qahw_sound_focus_param sf_params;
-} qahw_param_payload;
+ struct source_tracking_param st_params;
+ struct sound_focus_param sf_params;
+} audio_extn_param_payload;
typedef enum {
- QAHW_PARAM_SOURCE_TRACK,
- QAHW_PARAM_SOUND_FOCUS
-} qahw_param_id;
+ AUDIO_EXTN_PARAM_SOURCE_TRACK,
+ AUDIO_EXTN_PARAM_SOUND_FOCUS
+} audio_extn_param_id;
#endif /* AUDIO_DEFS_H */
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index b9402d5..77e03ca 100644
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -742,4 +742,32 @@
#define audio_extn_cin_configure_input_stream(in) (0)
#endif
+#ifndef SOURCE_TRACKING_ENABLED
+static int __unused audio_extn_get_soundfocus_data(
+ const struct audio_device *adev __unused,
+ struct sound_focus_param *payload __unused)
+{
+ return -ENOSYS;
+}
+static int __unused audio_extn_get_sourcetrack_data(
+ const struct audio_device *adev __unused,
+ struct source_tracking_param *payload __unused)
+{
+ return -ENOSYS;
+}
+static int __unused audio_extn_set_soundfocus_data(
+ struct audio_device *adev __unused,
+ struct sound_focus_param *payload __unused)
+{
+ return -ENOSYS;
+}
+#else
+int audio_extn_get_soundfocus_data(const struct audio_device *adev,
+ struct sound_focus_param *payload);
+int audio_extn_get_sourcetrack_data(const struct audio_device *adev,
+ struct source_tracking_param *payload);
+int audio_extn_set_soundfocus_data(struct audio_device *adev,
+ struct sound_focus_param *payload);
+#endif
+
#endif /* AUDIO_EXTN_H */
diff --git a/hal/audio_extn/source_track.c b/hal/audio_extn/source_track.c
index a36de80..5bced66 100644
--- a/hal/audio_extn/source_track.c
+++ b/hal/audio_extn/source_track.c
@@ -88,25 +88,11 @@
BITMASK_AUDIO_PARAMETER_KEY_SOURCE_TRACK_DOA_NOISE |\
BITMASK_AUDIO_PARAMETER_KEY_SOURCE_TRACK_POLAR_ACTIVITY)
-#define MAX_SECTORS 8
#define MAX_STR_SIZE 2048
extern struct audio_device_to_audio_interface audio_device_to_interface_table[];
extern int audio_device_to_interface_table_len;
-struct sound_focus_param {
- uint16_t start_angle[MAX_SECTORS];
- uint8_t enable[MAX_SECTORS];
- uint16_t gain_step;
-};
-
-struct source_tracking_param {
- uint8_t vad[MAX_SECTORS];
- uint16_t doa_speech;
- uint16_t doa_noise[3];
- uint8_t polar_activity[360];
-};
-
static int add_audio_intf_name_to_mixer_ctl(audio_devices_t device, char *mixer_ctl_name,
struct audio_device_to_audio_interface *table, int len)
{
diff --git a/hal/audio_hw_extn_api.c b/hal/audio_hw_extn_api.c
index d98a4dc..39d81fb 100644
--- a/hal/audio_hw_extn_api.c
+++ b/hal/audio_hw_extn_api.c
@@ -49,7 +49,8 @@
#endif
int qahwi_get_param_data(const struct audio_hw_device *adev,
- qahw_param_id param_id, qahw_param_payload *payload)
+ audio_extn_param_id param_id,
+ audio_extn_param_payload *payload)
{
int ret = 0;
const struct audio_device *dev = (const struct audio_device *)adev;
@@ -65,13 +66,13 @@
}
switch (param_id) {
- case QAHW_PARAM_SOUND_FOCUS:
+ case AUDIO_EXTN_PARAM_SOUND_FOCUS:
ret = audio_extn_get_soundfocus_data(dev,
- (struct qahw_sound_focus_param *)payload);
+ (struct sound_focus_param *)payload);
break;
- case QAHW_PARAM_SOURCE_TRACK:
+ case AUDIO_EXTN_PARAM_SOURCE_TRACK:
ret = audio_extn_get_sourcetrack_data(dev,
- (struct qahw_source_tracking_param*)payload);
+ (struct source_tracking_param*)payload);
break;
default:
ALOGE("%s::INVALID PARAM ID:%d\n",__func__,param_id);
@@ -82,7 +83,8 @@
}
int qahwi_set_param_data(struct audio_hw_device *adev,
- qahw_param_id param_id, qahw_param_payload *payload)
+ audio_extn_param_id param_id,
+ audio_extn_param_payload *payload)
{
int ret = 0;
struct audio_device *dev = (struct audio_device *)adev;
@@ -98,9 +100,9 @@
}
switch (param_id) {
- case QAHW_PARAM_SOUND_FOCUS:
+ case AUDIO_EXTN_PARAM_SOUND_FOCUS:
ret = audio_extn_set_soundfocus_data(dev,
- (struct qahw_sound_focus_param *)payload);
+ (struct sound_focus_param *)payload);
break;
default:
ALOGE("%s::INVALID PARAM ID:%d\n",__func__,param_id);
diff --git a/qahw_api/Android.mk b/qahw_api/Android.mk
index 1886262..e9d86a0 100644
--- a/qahw_api/Android.mk
+++ b/qahw_api/Android.mk
@@ -21,6 +21,8 @@
libhardware \
libdl
+LOCAL_CFLAGS += -Wall -Werror
+
LOCAL_COPY_HEADERS_TO := mm-audio/qahw_api/inc
LOCAL_COPY_HEADERS := inc/qahw_api.h
LOCAL_COPY_HEADERS += inc/qahw_defs.h
diff --git a/qahw_api/Makefile.am b/qahw_api/Makefile.am
index a2139d9..a573552 100644
--- a/qahw_api/Makefile.am
+++ b/qahw_api/Makefile.am
@@ -18,5 +18,6 @@
src/qahw_effect.c
libqahw_la_CFLAGS = $(AM_CFLAGS) -include stddef.h
libqahw_la_CFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
+libqahw_la_CFLAGS += -Wno-sign-compare -Werror
libqahw_la_LIBADD = -llog -lcutils -lhardware
libqahw_la_LDFLAGS = -module -shared -avoid-version
diff --git a/qahw_api/src/qahw.c b/qahw_api/src/qahw.c
index 1cb89ee..393dba9 100644
--- a/qahw_api/src/qahw.c
+++ b/qahw_api/src/qahw.c
@@ -48,7 +48,7 @@
#define QAHW_MODULE_API_VERSION_CURRENT QAHW_MODULE_API_VERSION_0_0
typedef uint64_t (*qahwi_in_read_v2_t)(audio_stream_in_t *in, void* buffer,
- size_t bytes, uint64_t *timestamp);
+ size_t bytes, int64_t *timestamp);
typedef int (*qahwi_get_param_data_t) (const audio_hw_device_t *,
qahw_param_id, qahw_param_payload *);
@@ -1142,8 +1142,7 @@
pthread_mutex_lock(&qahw_module->lock);
audio_device = qahw_module->audio_device;
if (qahw_module->audio_device->get_mic_mute) {
- rc = audio_device->get_mic_mute(qahw_module->audio_device,
- &state);
+ rc = audio_device->get_mic_mute(qahw_module->audio_device, state);
} else {
rc = -ENOSYS;
ALOGW("%s not supported", __func__);
@@ -1675,7 +1674,6 @@
error_exit:
pthread_mutex_unlock(&qahw_module_init_lock);
-exit:
return rc;
}
diff --git a/qahw_api/test/Android.mk b/qahw_api/test/Android.mk
index 1688069..6ee6f4b 100644
--- a/qahw_api/test/Android.mk
+++ b/qahw_api/test/Android.mk
@@ -3,7 +3,8 @@
# audio_hal_playback_test
# ==============================================================================
include $(CLEAR_VARS)
-LOCAL_SRC_FILES := qahw_playback_test.c
+LOCAL_SRC_FILES := qahw_playback_test.c \
+ qahw_effect_test.c
LOCAL_MODULE := hal_play_test
hal-play-inc = $(TARGET_OUT_HEADERS)/mm-audio/qahw_api/inc
diff --git a/qahw_api/test/Makefile.am b/qahw_api/test/Makefile.am
index 5378e0b..abccdce 100644
--- a/qahw_api/test/Makefile.am
+++ b/qahw_api/test/Makefile.am
@@ -1,12 +1,12 @@
bin_PROGRAMS = hal_play_test
PLAY_CPPFLAGS = -Wno-sign-compare -Werror
+PLAY_CPPFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
PLAY_INCLUDES = -I $(top_srcdir)/qahw_api/inc
hal_play_test_SOURCES = qahw_playback_test.c \
qahw_effect_test.c
hal_play_test_CPPFLAGS = $(PLAY_CPPFLAGS) $(PLAY_INCLUDES)
-hal_play_test_CPPFLAGS += -D__unused=__attribute__\(\(__unused__\)\)
hal_play_test_LDADD = -lutils ../libqahw.la
diff --git a/qahw_api/test/qahw_effect_test.c b/qahw_api/test/qahw_effect_test.c
index d9ce81e..2a24870 100644
--- a/qahw_api/test/qahw_effect_test.c
+++ b/qahw_api/test/qahw_effect_test.c
@@ -31,6 +31,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <unistd.h>
#include <string.h>
#include <errno.h>
@@ -62,10 +63,12 @@
"reverb",
};
-void *bassboost_thread_func(void* data) {
+void *bassboost_thread_func(void* data __unused) {
+ return NULL;
}
-void *virtualizer_thread_func(void* data) {
+void *virtualizer_thread_func(void* data __unused) {
+ return NULL;
}
void *equalizer_thread_func(void* data) {
@@ -151,10 +154,12 @@
return NULL;
}
-void *visualizer_thread_func(void* data) {
+void *visualizer_thread_func(void* data __unused) {
+ return NULL;
}
-void *reverb_thread_func(void* data) {
+void *reverb_thread_func(void* data __unused) {
+ return NULL;
}
thread_data_t *create_effect_thread(thread_func_t func_ptr) {
@@ -195,11 +200,9 @@
pthread_mutex_lock(ðread_data->mutex);
ethread_data->cmd = cmd;
- if (cmd_code >= 0) {
- ethread_data->cmd_code = cmd_code;
- ethread_data->cmd_size = cmd_size;
- ethread_data->cmd_data = cmd_data;
- }
+ ethread_data->cmd_code = cmd_code;
+ ethread_data->cmd_size = cmd_size;
+ ethread_data->cmd_data = cmd_data;
pthread_mutex_unlock(ðread_data->mutex);
pthread_cond_signal(ðread_data->loop_cond);
diff --git a/qahw_api/test/qahw_multi_record_test.c b/qahw_api/test/qahw_multi_record_test.c
index b0b914b..1a61a08 100644
--- a/qahw_api/test/qahw_multi_record_test.c
+++ b/qahw_api/test/qahw_multi_record_test.c
@@ -89,7 +89,7 @@
static pthread_mutex_t sourcetrack_lock;
struct qahw_sound_focus_param sound_focus_data;
-void stop_signal_handler(int signal)
+void stop_signal_handler(int signal __unused)
{
stop_record = true;
}
@@ -97,7 +97,6 @@
void read_soundfocus_param(void)
{
- int i = 0;
uint16_t start_angle[4] = {0};
uint8_t enable_sector[4] = {0};
uint16_t gain_step;
@@ -117,7 +116,7 @@
memcpy(&sound_focus_data.gain_step, &gain_step, sizeof(gain_step));
}
-void sourcetrack_signal_handler(int signal)
+void sourcetrack_signal_handler(int signal __unused)
{
/* Function to read keyboard interupt to enable user to set parameters
for sourcetracking usecase Dynamically */
diff --git a/qahw_api/test/qahw_playback_test.c b/qahw_api/test/qahw_playback_test.c
index 8da62fb..7aa2b4c 100644
--- a/qahw_api/test/qahw_playback_test.c
+++ b/qahw_api/test/qahw_playback_test.c
@@ -22,6 +22,7 @@
#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>
+#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <time.h>
@@ -156,15 +157,14 @@
"music_offload_wma_encode_option2=%d;" \
"music_offload_wma_format_tag=%d;"
-void stop_signal_handler(int signal)
+void stop_signal_handler(int signal __unused)
{
stop_playback = true;
}
void read_kvpair(char *kvpair, char* kvpair_values, int filetype)
{
- char *kvpair_type;
- char param[100];
+ char *kvpair_type = NULL;
char *token = NULL;
int value = 0;
int len = 0;
@@ -291,6 +291,7 @@
}
fprintf(log_file, "pcm data saved to file %s", params->acp.file_name);
}
+ return 0;
}
int write_to_hal(qahw_stream_handle_t* out_handle, char *data,
@@ -636,7 +637,7 @@
FILE *file_stream = NULL;
char header[44] = {0};
char* filename = nullptr;
- qahw_module_handle_t *qahw_mod_handle;
+ qahw_module_handle_t *qahw_mod_handle = NULL;
const char *mod_name = "audio.primary";
qahw_stream_handle_t* out_handle = nullptr;
int rc = 0;