<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
    <!-- List of effect libraries to load.
         Each library element must contain a "name" attribute and a "path" attribute giving the
         name of a library .so file in /vendor/lib/soundfx on the target

         If offloadable effects are present, the AOSP library libeffectproxy.so must be listed as
         well as one library for the SW implementation and one library for the DSP implementation:
         <library name="proxy" path="libeffectproxy.so"/>
         <library name="some_fx_sw" path="lib_some_fx_sw.so"/>
         <library name="some_fx_hw" path="lib_some_fx_hw.so"/>

         If the audio HAL implements support for AOSP software audio pre-processing effects,
         the following library must be added:
         <library name="pre_processing" path="libaudiopreprocessing.so"/>
    -->
    <libraries>
        <library name="bundle" path="libbundlewrapper.so"/>
        <library name="reverb" path="libreverbwrapper.so"/>
        <library name="visualizer" path="libvisualizer.so"/>
        <library name="downmix" path="libdownmix.so"/>
        <library name="loudness_enhancer" path="libldnhncr.so"/>
        <library name="dynamics_processing" path="libdynproc.so"/>
        <library name="pre_processing" path="libaudiopreprocessing.so" />
        <library name="dap" path="libswdap.so"/>
    </libraries>

    <!-- list of effects to load.
         Each "effect" element must contain a "name", "library" and a "uuid" attribute.
         The value of the "library" element must correspond to the name of one library element in
         the "libraries" element.
         The "name" attribute is indicative, only the value of the "uuid" attribute designates
         the effect.
         The uuid is the implementation specific UUID as specified by the effect vendor. This is not
         the generic effect type UUID.

         Offloadable effects are described by an "effectProxy" element which contains one "libsw"
         element containing the "uuid" and "library" for the SW implementation and one "libhw"
         element containing the "uuid" and "library" for the DSP implementation.
         The "uuid" value for the "effectProxy" element must be unique and will override the default
         uuid in the AOSP proxy effect implementation.

         If the audio HAL implements support for AOSP software audio pre-processing effects,
         the following effects can be added:
         <effect name="agc" library="pre_processing" uuid="aa8130e0-66fc-11e0-bad0-0002a5d5c51b"/>
         <effect name="aec" library="pre_processing" uuid="bb392ec0-8d4d-11e0-a896-0002a5d5c51b"/>
         <effect name="ns" library="pre_processing" uuid="c06c8400-8e06-11e0-9cb6-0002a5d5c51b"/>
    -->

    <effects>
        <effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
        <effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
        <effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
        <effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
        <effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
        <effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
        <effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
        <effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
        <effect name="visualizer" library="visualizer" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
        <effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
        <effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
        <effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
        <effect name="agc" library="pre_processing" uuid="aa8130e0-66fc-11e0-bad0-0002a5d5c51b"/>
        <effect name="aec" library="pre_processing" uuid="bb392ec0-8d4d-11e0-a896-0002a5d5c51b"/>
        <effect name="ns" library="pre_processing" uuid="c06c8400-8e06-11e0-9cb6-0002a5d5c51b"/>
        <effect name="dap" library="dap" uuid="6ab06da4-c516-4611-8166-452799218539"/>
    </effects>

    <!-- Audio pre processor configurations.
         The pre processor configuration is described in a "preprocess" element and consists in a
         list of elements each describing pre processor settings for a given use case or "stream".
         Each stream element has a "type" attribute corresponding to the input source used.
         Valid types are:
              "mic", "camcorder", "voice_recognition", "voice_communication"
         Each "stream" element contains a list of "apply" elements indicating one effect to apply.
         The effect to apply is designated by its name in the "effects" elements.

        <preprocess>
            <stream type="voice_communication">
                <apply effect="aec"/>
                <apply effect="ns"/>
            </stream>
        </preprocess>
    -->

    <preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
    </preprocess>

    <!-- Audio post processor configurations.
         The post processor configuration is described in a "postprocess" element and consists in a
         list of elements each describing post processor settings for a given use case or "stream".
         Each stream element has a "type" attribute corresponding to the stream type used.
         Valid types are:
              "music", "ring", "alarm", "notification", "voice_call"
         Each "stream" element contains a list of "apply" elements indicating one effect to apply.
         The effect to apply is designated by its name in the "effects" elements.

        <postprocess>
            <stream type="music">
                <apply effect="music_post_proc"/>
            </stream>
            <stream type="voice_call">
                <apply effect="voice_post_proc"/>
            </stream>
            <stream type="notification">
                <apply effect="notification_post_proc"/>
            </stream>
        </postprocess>
    -->

     <!-- Device pre/post processor configurations.
          The device pre/post processor configuration is described in a deviceEffects element and
          consists in a list of elements each describing pre/post proecessor settings for a given
          device or "devicePort".
          Each devicePort element has a "type" attribute corresponding to the device type (e.g.
          speaker, bus), an "address" attribute corresponding to the device address and contains a
          list of "apply" elements indicating one effect to apply.
          If the device is a source, only pre processing effects are expected, if the
          device is a sink, only post processing effects are expected.
          The effect to apply is designated by its name in the "effects" elements.
          The effect will be enabled by default and the audio framework will automatically add
          and activate the effect if the given port is involved in an audio patch.
          If the patch is "HW", the effect must be HW accelerated.

        <deviceEffects>
            <devicePort type="AUDIO_DEVICE_OUT_BUS" address="BUS00_USAGE_MAIN">
                <apply effect="equalizer"/>
            </devicePort>
            <devicePort type="AUDIO_DEVICE_OUT_BUS" address="BUS04_USAGE_VOICE">
                <apply effect="volume"/>
            </devicePort>
            <devicePort type="AUDIO_DEVICE_IN_BUILTIN_MIC" address="bottom">
                <apply effect="agc"/>
            </devicePort>
        </deviceEffects>
    -->

</audio_effects_conf>
