audiohal: Always load A2DP module locally
This makes legitimate unix socket interaction between A2DP
module and the Bluetooth stack.
Implemented by allowing both "local" and "hidl" interface
wrappers to co-exist for devices and streams. A "hybrid" device
factory is introduced to create an appropriate implementation
of a device depending on the requested module name.
Bug: 37640821
Test: Play Music over BT headset
Change-Id: I5592961dd5b56840418fb122680979d11a261b6c
diff --git a/media/libaudiohal/Android.mk b/media/libaudiohal/Android.mk
index 68a1f7b..e592169 100644
--- a/media/libaudiohal/Android.mk
+++ b/media/libaudiohal/Android.mk
@@ -5,30 +5,37 @@
LOCAL_SHARED_LIBRARIES := \
libcutils \
liblog \
- libutils
+ libutils \
+ libhardware
+
+LOCAL_SRC_FILES := \
+ DeviceHalLocal.cpp \
+ DevicesFactoryHalHybrid.cpp \
+ DevicesFactoryHalLocal.cpp \
+ StreamHalLocal.cpp
+
+LOCAL_CFLAGS := -Wall -Werror
ifeq ($(USE_LEGACY_LOCAL_AUDIO_HAL), true)
# Use audiohal directly w/o hwbinder middleware.
# This is for performance comparison and debugging only.
-LOCAL_SRC_FILES := \
- DeviceHalLocal.cpp \
- DevicesFactoryHalLocal.cpp \
+LOCAL_SRC_FILES += \
EffectBufferHalLocal.cpp \
- EffectHalLocal.cpp \
EffectsFactoryHalLocal.cpp \
- StreamHalLocal.cpp
+ EffectHalLocal.cpp
LOCAL_SHARED_LIBRARIES += \
- libeffects \
- libhardware
+ libeffects
+
+LOCAL_CFLAGS += -DUSE_LEGACY_LOCAL_AUDIO_HAL
else # if !USE_LEGACY_LOCAL_AUDIO_HAL
-LOCAL_SRC_FILES := \
+LOCAL_SRC_FILES += \
ConversionHelperHidl.cpp \
- HalDeathHandlerHidl.cpp \
+ HalDeathHandlerHidl.cpp \
DeviceHalHidl.cpp \
DevicesFactoryHalHidl.cpp \
EffectBufferHalHidl.cpp \
@@ -60,6 +67,4 @@
LOCAL_MODULE := libaudiohal
-LOCAL_CFLAGS := -Wall -Werror
-
include $(BUILD_SHARED_LIBRARY)