From 1a2dacae47b0d3cf97c8ab4480009a1d607ffb36 Mon Sep 17 00:00:00 2001 From: Ethan Chen Date: Sat, 23 Aug 2014 16:05:11 -0700 Subject: shinano: Add Qualcomm audio effects Change-Id: I7823bad9f64e5be6253e4db0944fa07993e64ddc --- audio/audio_effects.conf | 280 +++++++++++++++++++++++++++++++++++++++++++++++ proprietary-files.txt | 3 + shinano.mk | 11 +- 3 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 audio/audio_effects.conf diff --git a/audio/audio_effects.conf b/audio/audio_effects.conf new file mode 100644 index 0000000..1f0b5cf --- /dev/null +++ b/audio/audio_effects.conf @@ -0,0 +1,280 @@ +# List of effect libraries to load. Each library element must contain a "path" element +# giving the full path of the library .so file. +# libraries { +# { +# path +# } +# } +libraries { + bundle { + path /system/lib/soundfx/libbundlewrapper.so + } + reverb { + path /system/lib/soundfx/libreverbwrapper.so + } + qcbassboost { + path /vendor/lib/soundfx/libqcbassboost.so + } + qcvirt { + path /vendor/lib/soundfx/libqcvirt.so + } + qcreverb { + path /vendor/lib/soundfx/libqcreverb.so + } + visualizer_sw { + path /system/lib/soundfx/libvisualizer.so + } + visualizer_hw { + path /system/lib/soundfx/libqcomvisualizer.so + } + downmix { + path /system/lib/soundfx/libdownmix.so + } + loudness_enhancer { + path /system/lib/soundfx/libldnhncr.so + } + proxy { + path /system/lib/soundfx/libeffectproxy.so + } + offload_bundle { + path /system/lib/soundfx/libqcompostprocbundle.so + } + audio_pre_processing { + path /system/lib/soundfx/libqcomvoiceprocessing.so + } +} + +# Default pre-processing library. Add to audio_effect.conf "libraries" section if +# audio HAL implements support for default software audio pre-processing effects +# +# pre_processing { +# path /system/lib/soundfx/libaudiopreprocessing.so +# } + +# list of effects to load. Each effect element must contain a "library" and a "uuid" element. +# The value of the "library" element must correspond to the name of one library element in the +# "libraries" element. +# The name of the effect element is indicative, only the value of the "uuid" element +# designates the effect. +# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the +# generic effect type UUID. +# effects { +# { +# library +# uuid +# } +# ... +# } + +effects { + +# additions for the proxy implementation +# Proxy implementation + #effectname { + #library proxy + #uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + + # SW implemetation of the effect. Added as a node under the proxy to + # indicate this as a sub effect. + #libsw { + #library libSW + #uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy + #} End of SW effect + + # HW implementation of the effect. Added as a node under the proxy to + # indicate this as a sub effect. + #libhw { + #library libHW + #uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz + #}End of HW effect + #} End of effect proxy + + bassboost { + library proxy + uuid 14804144-a5ee-4d24-aa88-0002a5d5c51b + + libsw { + library qcbassboost + uuid 23aca180-44bd-11e2-bcfd-0800200c9a66 + } + + libhw { + library offload_bundle + uuid 2c4a8c24-1581-487f-94f6-0002a5d5c51b + } + } + virtualizer { + library proxy + uuid d3467faa-acc7-4d34-acaf-0002a5d5c51b + + libsw { + library qcvirt + uuid e6c98a16-22a3-11e2-b87b-f23c91aec05e + } + + libhw { + library offload_bundle + uuid 509a4498-561a-4bea-b3b1-0002a5d5c51b + } + } + equalizer { + library proxy + uuid c8e70ecd-48ca-456e-8a4f-0002a5d5c51b + + libsw { + library bundle + uuid ce772f20-847d-11df-bb17-0002a5d5c51b + } + + libhw { + library offload_bundle + uuid a0dac280-401c-11e3-9379-0002a5d5c51b + } + } + volume { + library bundle + uuid 119341a0-8469-11df-81f9-0002a5d5c51b + } + reverb_env_aux { + library proxy + uuid 48404ac9-d202-4ccc-bf84-0002a5d5c51b + + libsw { + library qcreverb + uuid a8c1e5f3-293d-43cd-95ec-d5e26c02e217 + } + + libhw { + library offload_bundle + uuid 79a18026-18fd-4185-8233-0002a5d5c51b + } + } + reverb_env_ins { + library proxy + uuid b707403a-a1c1-4291-9573-0002a5d5c51b + + libsw { + library qcreverb + uuid 791fff8b-8129-4655-83a4-59bc61034c3a + } + + libhw { + library offload_bundle + uuid eb64ea04-973b-43d2-8f5e-0002a5d5c51b + } + } + reverb_pre_aux { + library proxy + uuid 1b78f587-6d1c-422e-8b84-0002a5d5c51b + + libsw { + library qcreverb + uuid 53ef1db5-c0c0-445b-b060-e34d20ebb70a + } + + libhw { + library offload_bundle + uuid 6987be09-b142-4b41-9056-0002a5d5c51b + } + } + reverb_pre_ins { + library proxy + uuid f3e178d2-ebcb-408e-8357-0002a5d5c51b + + libsw { + library qcreverb + uuid b08a0e38-22a5-11e2-b87b-f23c91aec05e + } + + libhw { + library offload_bundle + uuid aa2bebf6-47cf-4613-9bca-0002a5d5c51b + } + } + visualizer { +# library proxy +# uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c + +# libsw { + library visualizer_sw + uuid d069d9e0-8329-11df-9168-0002a5d5c51b +# } + +# libhw { +# library visualizer_hw +# uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b +# } + } + downmix { + library downmix + uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f + } + loudness_enhancer { + library loudness_enhancer + uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c + } +# aec { +# library audio_pre_processing +# uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109 +# } +# ns { +# library audio_pre_processing +# uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306f8 +# } +} + +# Default pre-processing effects. Add to audio_effect.conf "effects" section if +# audio HAL implements support for them. +# +# agc { +# library pre_processing +# uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b +# } +# aec { +# library pre_processing +# uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b +# } +# ns { +# library pre_processing +# uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b +# } + +# Audio preprocessor configurations. +# The pre processor configuration consists in a list of elements each describing +# pre processor settings for a given input source. Valid input source names are: +# "mic", "camcorder", "voice_recognition", "voice_communication" +# Each input source element contains a list of effects elements. The name of the effect +# element must be the name of one of the effects in the "effects" list of the file. +# Each effect element may optionally contain a list of parameters and their +# default value to apply when the pre processor effect is created. +# A parameter is defined by a "param" element and a "value" element. Each of these elements +# consists in one or more elements specifying a type followed by a value. +# The types defined are: "int", "short", "float", "bool" and "string" +# When both "param" and "value" are a single int, a simple form is allowed where just +# the param and value pair is present in the parameter description +# pre_processing { +# { +# { +# { +# param { +# int|short|float|bool|string +# [ int|short|float|bool|string ] +# ... +# } +# value { +# int|short|float|bool|string +# [ int|short|float|bool|string ] +# ... +# } +# } +# { } +# ... +# } +# ... +# } +# ... +# } + +# +# TODO: add default audio pre processor configurations after debug and tuning phase +# diff --git a/proprietary-files.txt b/proprietary-files.txt index 484db79..f7d7147 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -3,6 +3,9 @@ vendor/lib/libacdbloader.so vendor/lib/libacdbrtac.so vendor/lib/libadiertac.so vendor/lib/libaudcal.so +vendor/lib/soundfx/libqcbassboost.so +vendor/lib/soundfx/libqcreverb.so +vendor/lib/soundfx/libqcvirt.so # Audio BLOBS lib/libaudioroute.so diff --git a/shinano.mk b/shinano.mk index 5061c48..15f5be1 100644 --- a/shinano.mk +++ b/shinano.mk @@ -69,10 +69,19 @@ PRODUCT_PACKAGES += \ audio.primary.msm8974 \ audio.r_submix.default \ audio.usb.default \ - audio_policy.msm8974 \ + audio_policy.msm8974 + +PRODUCT_PACKAGES += \ libaudio-resampler \ + libqcompostprocbundle \ + libqcomvisualizer \ + libqcomvoiceprocessing \ tinymix +# Audio configuration +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/audio/audio_effects.conf:system/vendor/etc/audio_effects.conf + # Display PRODUCT_PACKAGES += \ hwcomposer.msm8974 \ -- cgit v1.2.3