| AUDIO_PARAM_OUT_DIR := $(TARGET_OUT_VENDOR_ETC)/audio_param | 
 | EXTRACT_FILE_LIST := *_AudioParam.xml *_ParamUnitDesc.xml *_ParamTreeView.xml | 
 |  | 
 | LOCAL_AUDIO_PARAM_FILE_PATTERN := $(subst *,%,$(EXTRACT_FILE_LIST)) | 
 | LOCAL_AUDIO_PARAM_INSTALLED := | 
 |  | 
 | ifneq (,$(strip $(INSTALL_AUDIO_PARAM_FILE_LIST))$(strip $(INSTALL_AUDIO_PARAM_DIR_LIST))) | 
 |   $(warning $(newline)\ | 
 | *********************************************************************$(newline)\ | 
 | INSTALL_AUDIO_PARAM_FILE_LIST and INSTALL_AUDIO_PARAM_DIR_LIST are no$(newline)\ | 
 | longer supported, but observed the following usages:$(newline)$(newline)\ | 
 | $(if $(strip $(INSTALL_AUDIO_PARAM_FILE_LIST)),$(space)$(space)INSTALL_AUDIO_PARAM_FILE_LIST: $(INSTALL_AUDIO_PARAM_FILE_LIST)$(newline))\ | 
 | $(if $(strip $(INSTALL_AUDIO_PARAM_DIR_LIST)),$(space)$(space)INSTALL_AUDIO_PARAM_DIR_LIST: $(INSTALL_AUDIO_PARAM_DIR_LIST)$(newline))\ | 
 | $(newline)\ | 
 | To add custom AudioParam files, please use:$(newline)\ | 
 | $(space)$(space)CUSTOM_AUDIO_PARAM_FILE_LIST += $$(YOUR_FILES)$(newline)\ | 
 | Likewise, for custom AudioParam directories:$(newline)\ | 
 | $(space)$(space)CUSTOM_AUDIO_PARAM_DIR_LIST += $$(YOUR_DIRS)$(newline)\ | 
 | *********************************************************************) | 
 |   $(error Please use CUSTOM_AUDIO_PARAM_FILE_LIST and CUSTOM_AUDIO_PARAM_DIR_LIST instead of INSTALL_AUDIO_PARAM_FILE_LIST and INSTALL_AUDIO_PARAM_DIR_LIST) | 
 | endif | 
 |  | 
 | # Add chip & project's default.audio_param by default | 
 | CHIP := $(MTK_PLATFORM_DIR) | 
 | CUSTOM_AUDIO_PARAM_FILE_LIST += $(MTK_TARGET_PROJECT_FOLDER)/default.audio_param device/mediatek/$(CHIP)/default.audio_param | 
 |  | 
 | # Deploy these files in MTK_AUDIO_PARAM_FILE_LIST to LOCAL_DEFAULT_AUDIO_PARAM_FILE | 
 | # Check if the audio_param exist, uncompress & delete it | 
 | LOCAL_DEFAULT_AUDIO_PARAM_FILE := $(firstword $(wildcard $(CUSTOM_AUDIO_PARAM_FILE_LIST) $(MTK_AUDIO_PARAM_FILE_LIST))) | 
 |  | 
 | ifneq (,$(filter custom_images,$(MAKECMDGOALS))) | 
 | AUDIO_PARAM_CUSTOM_IMAGE_ZIP_FILE := $(LOCAL_DEFAULT_AUDIO_PARAM_FILE) | 
 | AUDIO_PARAM_CUSTOM_IMAGE_XML_FILES := | 
 | AUDIO_PARAM_CUSTOM_IMAGE_ZIPPED_FILES := | 
 | endif | 
 |  | 
 | ifneq ($(LOCAL_DEFAULT_AUDIO_PARAM_FILE),) | 
 | LOCAL_AUDIO_PARAM_UNZIP_FILE_LIST := $(filter $(LOCAL_AUDIO_PARAM_FILE_PATTERN),$(shell unzip -Z -1 $(LOCAL_DEFAULT_AUDIO_PARAM_FILE))) | 
 |  | 
 | # $(1): input.zip | 
 | # $(2): output.file | 
 | define unzip-audio-param-file | 
 | $(2): $(1) | 
 | 	mkdir -p $$(dir $(2)) | 
 | 	unzip -qo $(1) $$(notdir $(2)) -d $$(dir $(2)) | 
 | endef | 
 | $(foreach f,$(LOCAL_AUDIO_PARAM_UNZIP_FILE_LIST),\ | 
 | 	$(eval src := $(LOCAL_DEFAULT_AUDIO_PARAM_FILE))\ | 
 | 	$(eval dst := $(AUDIO_PARAM_OUT_DIR)/$(notdir $(f)))\ | 
 | 	$(if $(filter custom_images,$(MAKECMDGOALS)), \ | 
 | 		$(eval AUDIO_PARAM_CUSTOM_IMAGE_ZIPPED_FILES += $(src)))\ | 
 | 	$(eval LOCAL_AUDIO_PARAM_INSTALLED += $(dst))\ | 
 | 	$(eval $(call unzip-audio-param-file,$(src),$(dst)))\ | 
 | ) | 
 | endif | 
 |  | 
 | LOCAL_AUDIO_PARAM_COPY_FILE_LIST := $(filter $(LOCAL_AUDIO_PARAM_FILE_PATTERN),$(foreach d,$(CUSTOM_AUDIO_PARAM_DIR_LIST) $(MTK_AUDIO_PARAM_DIR_LIST),$(wildcard $(d)/*.xml))) | 
 | LOCAL_AUDIO_PARAM_COPY_FILE_STEM := $(sort $(filter-out $(notdir $(LOCAL_AUDIO_PARAM_UNZIP_FILE_LIST)),$(notdir $(LOCAL_AUDIO_PARAM_COPY_FILE_LIST)))) | 
 | $(foreach f,$(LOCAL_AUDIO_PARAM_COPY_FILE_STEM),\ | 
 | 	$(eval chk := $(filter %/$(f),$(LOCAL_AUDIO_PARAM_COPY_FILE_LIST)))\ | 
 | 	$(eval src := $(firstword $(chk)))\ | 
 | 	$(if $(filter custom_images,$(MAKECMDGOALS)),\ | 
 | 		$(eval AUDIO_PARAM_CUSTOM_IMAGE_XML_FILES += $(src)))\ | 
 | 	$(eval exc := $(filter-out $(src),$(chk)))\ | 
 | 	$(if $(strip $(exc)),$(info AudioParam: $(src) overrides $(exc)))\ | 
 | 	$(eval dst := $(AUDIO_PARAM_OUT_DIR)/$(f))\ | 
 | 	$(eval LOCAL_AUDIO_PARAM_INSTALLED += $(dst))\ | 
 | 	$(eval $(call copy-one-file,$(src),$(dst)))\ | 
 | ) | 
 |  | 
 | ifneq (,$(filter custom_images,$(MAKECMDGOALS))) | 
 | AUDIO_PARAM_CUSTOM_IMAGE_ZIP_FILE := \ | 
 | 	$(strip $(AUDIO_PARAM_CUSTOM_IMAGE_ZIP_FILE)) | 
 | AUDIO_PARAM_CUSTOM_IMAGE_ZIPPED_FILES := \ | 
 | 	$(strip $(AUDIO_PARAM_CUSTOM_IMAGE_ZIPPED_FILES)) | 
 | AUDIO_PARAM_CUSTOM_IMAGE_XML_FILES := \ | 
 | 	$(strip $(AUDIO_PARAM_CUSTOM_IMAGE_XML_FILES)) | 
 | endif | 
 |  | 
 | ALL_DEFAULT_INSTALLED_MODULES += $(LOCAL_AUDIO_PARAM_INSTALLED) | 
 | .PHONY: MODULES-IN-vendor-mediatek-proprietary-external-AudioParamParser | 
 | MODULES-IN-vendor-mediatek-proprietary-external-AudioParamParser: $(LOCAL_AUDIO_PARAM_INSTALLED) |