blob: ea54bd59e15e4d29ba20f0de70ba58123ffab038 [file] [log] [blame]
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -08001ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)
2
3LOCAL_PATH := $(call my-dir)
4
5include $(CLEAR_VARS)
6
7LOCAL_ARM_MODE := arm
8
Ajay Dudanibe3335a2013-08-19 18:47:21 -07009AUDIO_PLATFORM := $(TARGET_BOARD_PLATFORM)
Ravi Kumar Alamanda48c921d2013-10-29 06:07:44 -070010
Mingming Yin89c6a7f2015-03-24 11:56:14 -070011ifneq ($(filter msm8974 msm8226 msm8610 apq8084 msm8994 msm8992 msm8996,$(TARGET_BOARD_PLATFORM)),)
Ajay Dudanibe3335a2013-08-19 18:47:21 -070012 # B-family platform uses msm8974 code base
13 AUDIO_PLATFORM = msm8974
Ravi Kumar Alamanda48c921d2013-10-29 06:07:44 -070014 MULTIPLE_HW_VARIANTS_ENABLED := true
Mingming Yin8e5a4f62013-10-07 15:23:41 -070015ifneq ($(filter msm8610,$(TARGET_BOARD_PLATFORM)),)
16 LOCAL_CFLAGS := -DPLATFORM_MSM8610
17endif
Shiv Maliyappanahalli34b585f2013-10-01 15:49:05 -070018ifneq ($(filter msm8226,$(TARGET_BOARD_PLATFORM)),)
19 LOCAL_CFLAGS := -DPLATFORM_MSM8x26
20endif
Vidyakumar Athotad9d9ff32013-11-13 11:46:52 -080021ifneq ($(filter apq8084,$(TARGET_BOARD_PLATFORM)),)
22 LOCAL_CFLAGS := -DPLATFORM_APQ8084
23endif
Mingming Yin0e1b2902014-05-19 18:20:59 -070024ifneq ($(filter msm8994,$(TARGET_BOARD_PLATFORM)),)
25 LOCAL_CFLAGS := -DPLATFORM_MSM8994
26endif
Fred Oh68ad1d32014-12-09 13:08:07 -080027ifneq ($(filter msm8992,$(TARGET_BOARD_PLATFORM)),)
28 LOCAL_CFLAGS := -DPLATFORM_MSM8994
29endif
Mingming Yin89c6a7f2015-03-24 11:56:14 -070030ifneq ($(filter msm8996,$(TARGET_BOARD_PLATFORM)),)
31 LOCAL_CFLAGS := -DPLATFORM_MSM8996
Banajit Goswami22582e72014-10-15 18:29:34 -070032endif
Ajay Dudanibe3335a2013-08-19 18:47:21 -070033endif
34
Naresh Tanniru90427602015-12-30 14:52:29 +053035ifneq ($(filter msm8916 msm8909 msm8952 msm8937 thorium titanium msmgold,$(TARGET_BOARD_PLATFORM)),)
Naresh Tannirudb72d1e2014-03-05 17:33:47 +053036 AUDIO_PLATFORM = msm8916
37 MULTIPLE_HW_VARIANTS_ENABLED := true
38 LOCAL_CFLAGS := -DPLATFORM_MSM8916
padarshr04e74812014-09-17 13:34:31 +053039ifneq ($(filter msm8909,$(TARGET_BOARD_PLATFORM)),)
Dhananjay Kumar2bb2fc12014-07-11 19:14:23 +053040 LOCAL_CFLAGS := -DPLATFORM_MSM8909
41endif
Naresh Tannirudb72d1e2014-03-05 17:33:47 +053042endif
Naresh Tanniru8b919ac2014-01-30 19:12:53 +053043
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -080044LOCAL_SRC_FILES := \
45 audio_hw.c \
Shiv Maliyappanahalli34b585f2013-10-01 15:49:05 -070046 voice.c \
Ben Romberger61764e32014-01-10 13:49:02 -080047 platform_info.c \
Ajay Dudanibe3335a2013-08-19 18:47:21 -070048 $(AUDIO_PLATFORM)/platform.c
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -080049
Subhash Chandra Bose Naripeddy19dc03b2014-03-10 14:43:05 -070050LOCAL_SRC_FILES += audio_extn/audio_extn.c \
51 audio_extn/utils.c
Vidyakumar Athota21b3bb92014-04-25 11:08:08 -070052LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
53LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
Apoorv Raghuvanshi9eaf94e2013-10-04 16:13:44 -070054
Mingming Yine5bf8372015-02-26 15:03:10 -080055ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HDMI_EDID)),true)
Mingming Yin497419f2015-07-01 16:57:32 -070056 LOCAL_CFLAGS += -DHDMI_EDID
Pradnya Chaphekar4403bd72014-09-09 09:50:01 -070057 LOCAL_SRC_FILES += edid.c
58endif
59
Mingming Yin08c7e312015-03-16 18:10:58 -070060ifeq ($(strip $(AUDIO_USE_LL_AS_PRIMARY_OUTPUT)),true)
61 LOCAL_CFLAGS += -DUSE_LL_AS_PRIMARY_OUTPUT
62endif
63
Mingming Yina6dad602014-05-16 12:10:55 -070064ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD)),true)
Mingming Yin67e34512014-04-03 17:47:22 -070065 LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED
66endif
67
Mingming Yina6dad602014-05-16 12:10:55 -070068ifeq ($(strip $(AUDIO_FEATURE_ENABLED_ANC_HEADSET)),true)
Apoorv Raghuvanshi9eaf94e2013-10-04 16:13:44 -070069 LOCAL_CFLAGS += -DANC_HEADSET_ENABLED
70endif
71
Venkata Narendra Kumar Gutta4bd09d02016-01-29 15:31:04 +053072ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HIFI_AUDIO)),true)
73 LOCAL_CFLAGS += -DHIFI_AUDIO_ENABLED
74endif
75
Banajit Goswami20cdd212015-09-11 01:11:30 -070076ifeq ($(strip $(AUDIO_FEATURE_ENABLED_VBAT_MONITOR)),true)
77 LOCAL_CFLAGS += -DVBAT_MONITOR_ENABLED
78endif
79
Mingming Yina6dad602014-05-16 12:10:55 -070080ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FLUENCE)),true)
Venkata Narendra Kumar Gutta88fd0bc2014-03-27 19:47:56 +053081 LOCAL_CFLAGS += -DFLUENCE_ENABLED
82endif
83
Mingming Yina6dad602014-05-16 12:10:55 -070084ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PROXY_DEVICE)),true)
Apoorv Raghuvanshi9eaf94e2013-10-04 16:13:44 -070085 LOCAL_CFLAGS += -DAFE_PROXY_ENABLED
86endif
87
Sudheer Papothi390bcf32014-12-04 01:25:17 +053088ifeq ($(strip $(AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE)),true)
89 LOCAL_CFLAGS += -DKPI_OPTIMIZE_ENABLED
90endif
91
Mingming Yin12125e82015-10-26 20:40:36 -070092ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FM_POWER_OPT)),true)
93 LOCAL_CFLAGS += -DFM_POWER_OPT
Apoorv Raghuvanshi6e262842013-10-06 14:39:35 -070094 LOCAL_SRC_FILES += audio_extn/fm.c
95endif
96
Mingming Yina6dad602014-05-16 12:10:55 -070097ifeq ($(strip $(AUDIO_FEATURE_ENABLED_USBAUDIO)),true)
Apoorv Raghuvanshi5792d4b2013-10-07 18:40:05 -070098 LOCAL_CFLAGS += -DUSB_HEADSET_ENABLED
99 LOCAL_SRC_FILES += audio_extn/usb.c
100endif
Mingming Yina6dad602014-05-16 12:10:55 -0700101
102ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HFP)),true)
Vimal Puthanveed5b4d3f12013-11-05 15:57:39 -0800103 LOCAL_CFLAGS += -DHFP_ENABLED
104 LOCAL_SRC_FILES += audio_extn/hfp.c
105endif
Apoorv Raghuvanshi5792d4b2013-10-07 18:40:05 -0700106
Mingming Yina6dad602014-05-16 12:10:55 -0700107ifeq ($(strip $(AUDIO_FEATURE_ENABLED_CUSTOMSTEREO)),true)
Jitendra Singh Naruka9a6a8d42014-02-10 20:07:12 -0800108 LOCAL_CFLAGS += -DCUSTOM_STEREO_ENABLED
109endif
110
Mingming Yina6dad602014-05-16 12:10:55 -0700111ifeq ($(strip $(AUDIO_FEATURE_ENABLED_SSR)),true)
Apoorv Raghuvanshi6178a3f2013-10-19 12:38:54 -0700112 LOCAL_CFLAGS += -DSSR_ENABLED
113 LOCAL_SRC_FILES += audio_extn/ssr.c
Shiv Maliyappanahalli5a10aea2015-07-02 10:36:23 -0700114 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio/surround_sound_3mic/
Nagender Telkarca2b4942014-03-24 12:25:42 -0600115 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/common/inc/
Apoorv Raghuvanshi6178a3f2013-10-19 12:38:54 -0700116endif
117
Mingming Yina6dad602014-05-16 12:10:55 -0700118ifeq ($(strip $(AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS)),true)
Shiv Maliyappanahalli303f51d2013-10-25 16:24:27 -0700119 LOCAL_CFLAGS += -DMULTI_VOICE_SESSION_ENABLED
120 LOCAL_SRC_FILES += voice_extn/voice_extn.c
Vidyakumar Athota21b3bb92014-04-25 11:08:08 -0700121
Mingming Yina6dad602014-05-16 12:10:55 -0700122ifeq ($(strip $(AUDIO_FEATURE_ENABLED_INCALL_MUSIC)),true)
Shiv Maliyappanahalli303f51d2013-10-25 16:24:27 -0700123 LOCAL_CFLAGS += -DINCALL_MUSIC_ENABLED
124endif
Mingming Yina6dad602014-05-16 12:10:55 -0700125ifeq ($(strip $(AUDIO_FEATURE_ENABLED_COMPRESS_VOIP)),true)
Narsinga Rao Chella05573b72013-11-15 15:21:40 -0800126 LOCAL_CFLAGS += -DCOMPRESS_VOIP_ENABLED
127 LOCAL_SRC_FILES += voice_extn/compress_voip.c
128endif
Subhash Chandra Bose Naripeddy19dc03b2014-03-10 14:43:05 -0700129
130endif
131
Mingming Yina6dad602014-05-16 12:10:55 -0700132ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXTN_FORMATS)),true)
Satya Krishna Pindiproli5d82d012015-08-12 18:21:25 +0530133LOCAL_CFLAGS += -DAUDIO_EXTN_FORMATS_ENABLED
Gopikrishnaiah Anandanf538cef2013-10-28 14:06:03 -0700134endif
Shiv Maliyappanahalli303f51d2013-10-25 16:24:27 -0700135
Anish Kumard80a1392014-07-16 16:18:51 -0700136ifeq ($(strip $(AUDIO_FEATURE_ENABLED_SPKR_PROTECTION)),true)
Gopikrishnaiah Anandanf538cef2013-10-28 14:06:03 -0700137 LOCAL_CFLAGS += -DSPKR_PROT_ENABLED
138 LOCAL_SRC_FILES += audio_extn/spkr_protection.c
Gopikrishnaiah Anandanf538cef2013-10-28 14:06:03 -0700139endif
Shiv Maliyappanahalli303f51d2013-10-25 16:24:27 -0700140
Ravi Kumar Alamanda48c921d2013-10-29 06:07:44 -0700141ifdef MULTIPLE_HW_VARIANTS_ENABLED
142 LOCAL_CFLAGS += -DHW_VARIANTS_ENABLED
143 LOCAL_SRC_FILES += $(AUDIO_PLATFORM)/hw_info.c
144endif
145
Mingming Yina6dad602014-05-16 12:10:55 -0700146ifeq ($(strip $(AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE)),true)
Mingming Yine62d7842013-10-25 16:26:03 -0700147 LOCAL_CFLAGS += -DCOMPRESS_CAPTURE_ENABLED
148 LOCAL_SRC_FILES += audio_extn/compress_capture.c
149endif
150
Jitendra Naruka1b6513f2014-11-22 19:34:13 -0800151ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DTS_EAGLE)),true)
152 LOCAL_CFLAGS += -DDTS_EAGLE
153 LOCAL_SRC_FILES += audio_extn/dts_eagle.c
154endif
155
Mingming Yina6dad602014-05-16 12:10:55 -0700156ifeq ($(strip $(DOLBY_DDP)),true)
Mingming Yin90310102013-11-13 16:57:00 -0800157 LOCAL_CFLAGS += -DDS1_DOLBY_DDP_ENABLED
Subhash Chandra Bose Naripeddy7690c562013-12-14 00:34:53 -0800158 LOCAL_SRC_FILES += audio_extn/dolby.c
Mingming Yin90310102013-11-13 16:57:00 -0800159endif
160
Pradnya Chaphekar73e2e8b2015-05-01 02:18:17 -0700161ifeq ($(strip $(DS1_DOLBY_DAP)),true)
Subhash Chandra Bose Naripeddy7690c562013-12-14 00:34:53 -0800162 LOCAL_CFLAGS += -DDS1_DOLBY_DAP_ENABLED
Mingming Yina6dad602014-05-16 12:10:55 -0700163ifneq ($(strip $(DOLBY_DDP)),true)
Subhash Chandra Bose Naripeddy7690c562013-12-14 00:34:53 -0800164 LOCAL_SRC_FILES += audio_extn/dolby.c
165endif
166endif
167
Mingming Yin3ee55c62014-08-04 14:23:35 -0700168ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER)),true)
Satya Krishna Pindiproli70471602015-04-24 19:12:43 +0530169 LOCAL_CFLAGS += -DFLAC_OFFLOAD_ENABLED
170 LOCAL_CFLAGS += -DCOMPRESS_METADATA_NEEDED
171endif
172
173ifeq ($(strip $(AUDIO_FEATURE_ENABLED_VORBIS_OFFLOAD)),true)
174 LOCAL_CFLAGS += -DVORBIS_OFFLOAD_ENABLED
175 LOCAL_CFLAGS += -DCOMPRESS_METADATA_NEEDED
176
177endif
178
179ifeq ($(strip $(AUDIO_FEATURE_ENABLED_WMA_OFFLOAD)),true)
180 LOCAL_CFLAGS += -DWMA_OFFLOAD_ENABLED
181 LOCAL_CFLAGS += -DCOMPRESS_METADATA_NEEDED
182endif
183
184ifeq ($(strip $(AUDIO_FEATURE_ENABLED_ALAC_OFFLOAD)),true)
185 LOCAL_CFLAGS += -DALAC_OFFLOAD_ENABLED
186 LOCAL_CFLAGS += -DCOMPRESS_METADATA_NEEDED
187endif
188
189ifeq ($(strip $(AUDIO_FEATURE_ENABLED_APE_OFFLOAD)),true)
190 LOCAL_CFLAGS += -DAPE_OFFLOAD_ENABLED
191 LOCAL_CFLAGS += -DCOMPRESS_METADATA_NEEDED
Mingming Yin3ee55c62014-08-04 14:23:35 -0700192endif
193
Vidyakumar Athotac1d39c92015-02-25 15:14:26 -0800194ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24)),true)
195 LOCAL_CFLAGS += -DPCM_OFFLOAD_ENABLED_24
196endif
197
Manish Dewangana6fc5442015-08-24 20:30:31 +0530198ifeq ($(strip $(AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD)),true)
199 LOCAL_CFLAGS += -DAAC_ADTS_OFFLOAD_ENABLED
200endif
201
Lior Barenboim0b61bc72014-05-13 13:01:37 +0300202ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DEV_ARBI)),true)
203 LOCAL_CFLAGS += -DDEV_ARBI_ENABLED
204 LOCAL_SRC_FILES += audio_extn/dev_arbi.c
205endif
206
Naresh Tanniruc0517bc2014-10-26 15:30:55 +0530207ifeq ($(strip $(AUDIO_FEATURE_ENABLED_RECORD_PLAY_CONCURRENCY)),true)
208 LOCAL_CFLAGS += -DRECORD_PLAY_CONCURRENCY
209endif
210
Ashish Jain8ec50472014-10-16 13:56:28 +0530211ifeq ($(strip $(AUDIO_FEATURE_ENABLED_ACDB_LICENSE)), true)
212 LOCAL_CFLAGS += -DDOLBY_ACDB_LICENSE
213endif
214
Pradnya Chaphekar8a9dcd82014-09-09 09:49:10 -0700215ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP)),true)
216 LOCAL_CFLAGS += -DDS2_DOLBY_DAP_ENABLED
Pradnya Chaphekar73e2e8b2015-05-01 02:18:17 -0700217 LOCAL_CFLAGS += -DDS1_DOLBY_DDP_ENABLED
Pradnya Chaphekar8a9dcd82014-09-09 09:49:10 -0700218ifneq ($(strip $(DOLBY_DDP)),true)
Pradnya Chaphekar73e2e8b2015-05-01 02:18:17 -0700219 ifneq ($(strip $(DS1_DOLBY_DAP)),true)
Pradnya Chaphekar8a9dcd82014-09-09 09:49:10 -0700220 LOCAL_SRC_FILES += audio_extn/dolby.c
221 endif
222endif
223endif
224
Pradnya Chaphekar80a8cfb2014-10-20 16:17:01 -0700225ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH)),true)
226 LOCAL_CFLAGS += -DHDMI_PASSTHROUGH_ENABLED
227endif
228
Narsinga Rao Chellaf928a982015-03-06 14:57:35 -0800229ifeq ($(strip $(AUDIO_FEATURE_ENABLED_SOURCE_TRACKING)),true)
230 LOCAL_CFLAGS += -DSOURCE_TRACKING_ENABLED
231 LOCAL_SRC_FILES += audio_extn/source_track.c
232endif
233
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -0800234LOCAL_SHARED_LIBRARIES := \
235 liblog \
236 libcutils \
237 libtinyalsa \
Ravi Kumar Alamanda4e02e552013-07-17 15:22:04 -0700238 libtinycompress \
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -0800239 libaudioroute \
Ben Romberger61764e32014-01-10 13:49:02 -0800240 libdl \
Vidyakumar Athota77327dd2014-08-07 16:44:25 -0700241 libexpat
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -0800242
243LOCAL_C_INCLUDES += \
244 external/tinyalsa/include \
Ravi Kumar Alamanda4e02e552013-07-17 15:22:04 -0700245 external/tinycompress/include \
Ben Romberger61764e32014-01-10 13:49:02 -0800246 external/expat/lib \
Ravi Kumar Alamandaf70ffb42013-04-16 15:55:53 -0700247 $(call include-path-for, audio-route) \
Eric Laurentb23d5282013-05-14 15:27:20 -0700248 $(call include-path-for, audio-effects) \
Apoorv Raghuvanshi9eaf94e2013-10-04 16:13:44 -0700249 $(LOCAL_PATH)/$(AUDIO_PLATFORM) \
Narsinga Rao Chella05573b72013-11-15 15:21:40 -0800250 $(LOCAL_PATH)/audio_extn \
Vidyakumar Athota77327dd2014-08-07 16:44:25 -0700251 $(LOCAL_PATH)/voice_extn
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -0800252
Kiran Kandi910e1862013-10-29 13:29:42 -0700253ifeq ($(strip $(AUDIO_FEATURE_ENABLED_LISTEN)),true)
254 LOCAL_CFLAGS += -DAUDIO_LISTEN_ENABLED
255 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio/audio-listen
256 LOCAL_SRC_FILES += audio_extn/listen.c
257endif
258
Ashish Jain81eb2a82015-05-13 10:52:34 +0530259ifeq ($(strip $(AUDIO_FEATURE_ENABLED_EXT_HDMI)),true)
260 LOCAL_CFLAGS += -DAUDIO_EXTERNAL_HDMI_ENABLED
261ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH)),true)
262 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio/audio-parsers
263 LOCAL_SHARED_LIBRARIES += libaudioparsers
264endif
265endif
266
Ravi Kumar Alamanda8fa6b192014-09-09 16:06:42 -0700267ifeq ($(strip $(BOARD_SUPPORTS_SOUND_TRIGGER)),true)
268 LOCAL_CFLAGS += -DSOUND_TRIGGER_ENABLED
269 LOCAL_CFLAGS += -DSOUND_TRIGGER_PLATFORM_NAME=$(TARGET_BOARD_PLATFORM)
270 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio/sound_trigger
271 LOCAL_SRC_FILES += audio_extn/soundtrigger.c
272endif
273
Damir Didjustof1d46c72013-11-06 17:59:04 -0800274ifeq ($(strip $(AUDIO_FEATURE_ENABLED_AUXPCM_BT)),true)
275 LOCAL_CFLAGS += -DAUXPCM_BT_ENABLED
276endif
277
Preetam Singh Ranawat2d0e4632015-02-02 12:40:59 +0530278ifeq ($(strip $(AUDIO_FEATURE_ENABLED_PM_SUPPORT)),true)
279 LOCAL_CFLAGS += -DPM_SUPPORT_ENABLED
280 LOCAL_SRC_FILES += audio_extn/pm.c
281 LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/libperipheralclient/inc
282 LOCAL_SHARED_LIBRARIES += libperipheral_client
283endif
284
Mingming Yin5b7c0b32014-08-04 15:49:24 -0700285LOCAL_COPY_HEADERS_TO := mm-audio
286LOCAL_COPY_HEADERS := audio_extn/audio_defs.h
287
Mingming Yin8e5a4f62013-10-07 15:23:41 -0700288LOCAL_MODULE := audio.primary.$(TARGET_BOARD_PLATFORM)
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -0800289
Apoorv Raghuvanshi1b555f72014-05-29 12:48:15 -0700290LOCAL_MODULE_RELATIVE_PATH := hw
Ravi Kumar Alamanda2dfba2b2013-01-17 16:50:22 -0800291
292LOCAL_MODULE_TAGS := optional
293
294include $(BUILD_SHARED_LIBRARY)
295
296endif