# List of effect libraries to load. Each library element must contain a "path" element
# giving the full path of the library .so file.
#    libraries {
#        <lib name> {
#          path <lib 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
  }
  loudness_enhancer {
    path /system/lib/soundfx/libldnhncr.so
  }
  volume_listener {
    path /system/lib/soundfx/libvolumelistener.so
  }
  audiosphere {
    path /system/lib/soundfx/libasphere.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 {
#        <fx name> {
#            library <lib name>
#            uuid <effect 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
  }
  hw_acc {
    library offload_bundle
    uuid 7d1580bd-297f-4683-9239-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
  }
  music_helper {
    library volume_listener
    uuid 08b8b058-0590-11e5-ac71-0025b32654a0
  }
  ring_helper {
    library volume_listener
    uuid 0956df94-0590-11e5-bdbe-0025b32654a0
  }
  alarm_helper {
    library volume_listener
    uuid 09f303e2-0590-11e5-8fdb-0025b32654a0
  }
  # voice_helper is called when stream type is voice_call in VoIP usecase
  voice_helper {
    library volume_listener
    uuid 0ace5c08-0590-11e5-ae9e-0025b32654a0
  }
  notification_helper {
    library volume_listener
    uuid 0b776dde-0590-11e5-81ba-0025b32654a0
  }
  audiosphere {
    library audiosphere
    uuid 184e62ab-2d19-4364-9d1b-c0a40733866c
  }
}

# additional effect from vendor
# UUID generated using version 1

output_session_processing {
    music {
        music_helper {
        }
    }
    ring {
        ring_helper {
        }
    }
    alarm {
        alarm_helper {
        }
    }
    # stream type voice_call is used for VoIP call
    voice_call {
        voice_helper {
        }
    }
    notification {
        notification_helper {
        }
    }
}

# Added aec, ns effects for voice_communication, which are supported by the board

pre_processing {
  voice_communication {
    aec {
    }
    ns  {
    }
  }
}

# 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 {
#        <input source name> {
#            <fx name> {
#                <param 1 name> {
#                    param {
#                        int|short|float|bool|string <value>
#                        [ int|short|float|bool|string <value> ]
#                        ...
#                    }
#                    value {
#                        int|short|float|bool|string <value>
#                        [ int|short|float|bool|string <value> ]
#                        ...
#                    }
#                }
#                <param 2 name > {<param> <value>}
#                ...
#            }
#            ...
#        }
#        ...
#    }

#
# TODO: add default audio pre processor configurations after debug and tuning phase
#
