hal: post_proc: add volume based audio calibration support

- add new effect module to listen to volume and device change
- based on volume levels of all streams active over speaker
  compute gain based calibration level and communicate
  with audio HAL to send the same to ACDB loader
- make audio HAL singleton

Bug: 22100304.

Change-Id: If74bf66d32def85022d79ccb9f84c3b85c8a2dc9
diff --git a/post_proc/Android.mk b/post_proc/Android.mk
index 4927044..b8aa9fc 100644
--- a/post_proc/Android.mk
+++ b/post_proc/Android.mk
@@ -29,5 +29,32 @@
 	$(call include-path-for, audio-effects)
 
 include $(BUILD_SHARED_LIBRARY)
+endif
+
+################################################################################
+
+ifneq ($(filter msm8992 msm8994,$(TARGET_BOARD_PLATFORM)),)
+
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := -DLIB_AUDIO_HAL="/system/lib/hw/audio.primary."$(TARGET_BOARD_PLATFORM)".so"
+
+LOCAL_SRC_FILES:= \
+	volume_listener.c
+
+LOCAL_CFLAGS+= -O2 -fvisibility=hidden
+
+LOCAL_SHARED_LIBRARIES := \
+	libcutils \
+	liblog \
+	libdl
+
+LOCAL_MODULE_RELATIVE_PATH := soundfx
+LOCAL_MODULE:= libvolumelistener
+
+LOCAL_C_INCLUDES := \
+	$(call include-path-for, audio-effects)
+
+include $(BUILD_SHARED_LIBRARY)
 
 endif