1e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# List of effect libraries to load. Each library element must contain a "path" element
2e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# giving the full path of the library .so file.
37c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#    libraries {
47c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        <lib name> {
57c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#          path <lib path>
67c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        }
77c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#    }
8e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurentlibraries {
92eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana# This is a proxy library that will be an abstraction for
102eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana# the HW and SW effects
112eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
122eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #proxy {
13faca05e96744dfaa2f352e3dbb29eead4e55cfa0jpadmana    #path /system/lib/soundfx/libeffectproxy.so
142eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #}
152eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
162eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana# This is the SW implementation library of the effect
172eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #libSW {
182eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    #path /system/lib/soundfx/libswwrapper.so
192eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #}
202eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
212eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana# This is the HW implementation library for the effect
222eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #libHW {
232eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    #path /system/lib/soundfx/libhwwrapper.so
242eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #}
252eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
26e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  bundle {
27e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    path /system/lib/soundfx/libbundlewrapper.so
28e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
29e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  reverb {
30e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    path /system/lib/soundfx/libreverbwrapper.so
31e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
32e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  visualizer {
33e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    path /system/lib/soundfx/libvisualizer.so
34e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
357d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi  downmix {
367d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi    path /system/lib/soundfx/libdownmix.so
377d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi  }
386cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi  loudness_enhancer {
396cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi    path /system/lib/soundfx/libldnhncr.so
406cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi  }
41e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent}
42e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent
43199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent# Default pre-processing library. Add to audio_effect.conf "libraries" section if
44199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent# audio HAL implements support for default software audio pre-processing effects
45199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#
46199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  pre_processing {
47199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    path /system/lib/soundfx/libaudiopreprocessing.so
48199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  }
49199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent
50e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
51e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# The value of the "library" element must correspond to the name of one library element in the
52e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# "libraries" element.
53e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# The name of the effect element is indicative, only the value of the "uuid" element
54e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent# designates the effect.
557c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
567c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# generic effect type UUID.
577c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#    effects {
587c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        <fx name> {
597c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#            library <lib name>
607c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#            uuid <effect uuid>
617c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        }
627c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        ...
637c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#    }
647c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent
65e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurenteffects {
662eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
672eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana# additions for the proxy implementation
682eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana# Proxy implementation
692eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #effectname {
702eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    #library proxy
712eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    #uuid  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
722eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
732eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    # SW implemetation of the effect. Added as a node under the proxy to
742eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    # indicate this as a sub effect.
752eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana      #libsw {
762eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana         #library libSW
772eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana         #uuid  yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
782eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana      #} End of SW effect
792eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
802eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    # HW implementation of the effect. Added as a node under the proxy to
812eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana    # indicate this as a sub effect.
822eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana      #libhw {
832eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana         #library libHW
842eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana         #uuid  zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
852eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana      #}End of HW effect
862eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana  #} End of effect proxy
872eab94f7dfd41a65e13aca379a1aed97447f8884jpadmana
88e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  bassboost {
89e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library bundle
90e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid 8631f300-72e2-11df-b57e-0002a5d5c51b
91e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
92e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  virtualizer {
93e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library bundle
94e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b
95e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
96e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  equalizer {
97e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library bundle
98e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid ce772f20-847d-11df-bb17-0002a5d5c51b
99e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
100e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  volume {
101e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library bundle
102e7c795f3300814aa3f26ceb845f29695383c7edcJean-Michel Trivi    uuid 119341a0-8469-11df-81f9-0002a5d5c51b
103e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
104e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  reverb_env_aux {
105e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library reverb
106e7c795f3300814aa3f26ceb845f29695383c7edcJean-Michel Trivi    uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
107e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
108e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  reverb_env_ins {
109e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library reverb
110e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
111e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
112e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  reverb_pre_aux {
113e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library reverb
114e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
115e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
116e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  reverb_pre_ins {
117e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library reverb
118e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
119e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
120e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  visualizer {
121e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    library visualizer
122e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent    uuid d069d9e0-8329-11df-9168-0002a5d5c51b
123e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent  }
1247d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi  downmix {
1257d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi    library downmix
1267d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi    uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
1277d5b26230a179cd7bcc01f6578cd80d8c15a92a5Jean-Michel Trivi  }
1286cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi  loudness_enhancer {
1296cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi    library loudness_enhancer
1306cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi    uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
1316cc3a9948b51193dfdcb0c3527d7f3d1ca38aa3cJean-Michel Trivi  }
132e1315cf0b63b4c14a77046519e6b01f6f60d74b0Eric Laurent}
133199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent
134199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent# Default pre-processing effects. Add to audio_effect.conf "effects" section if
135199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent# audio HAL implements support for them.
136199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#
137199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  agc {
138199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    library pre_processing
139199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
140199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  }
141199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  aec {
142199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    library pre_processing
143199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
144199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  }
145199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  ns {
146199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    library pre_processing
147199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#    uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
148199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent#  }
149199862ef95e4d768fbf2cc5518fe43e9ed5aa5a2Eric Laurent
1507c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# Audio preprocessor configurations.
1517c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# The pre processor configuration consists in a list of elements each describing
1527c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# pre processor settings for a given input source. Valid input source names are:
1537c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# "mic", "camcorder", "voice_recognition", "voice_communication"
1547c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# Each input source element contains a list of effects elements. The name of the effect
1557c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# element must be the name of one of the effects in the "effects" list of the file.
1567c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# Each effect element may optionally contain a list of parameters and their
1577c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# default value to apply when the pre processor effect is created.
1587c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# A parameter is defined by a "param" element and a "value" element. Each of these elements
1597c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# consists in one or more elements specifying a type followed by a value.
1607c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# The types defined are: "int", "short", "float", "bool" and "string"
1617c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# When both "param" and "value" are a single int, a simple form is allowed where just
1627c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# the param and value pair is present in the parameter description
1637c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#    pre_processing {
1647c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        <input source name> {
1657c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#            <fx name> {
1667c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                <param 1 name> {
1677c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                    param {
1687c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                        int|short|float|bool|string <value>
1697c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                        [ int|short|float|bool|string <value> ]
1707c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                        ...
1717c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                    }
1727c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                    value {
1737c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                        int|short|float|bool|string <value>
1747c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                        [ int|short|float|bool|string <value> ]
1757c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                        ...
1767c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                    }
1777c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                }
1787c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                <param 2 name > {<param> <value>}
1797c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#                ...
1807c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#            }
1817c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#            ...
1827c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        }
1837c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#        ...
1847c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#    }
1857c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent
1867c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#
1877c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent# TODO: add default audio pre processor configurations after debug and tuning phase
1887c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745Eric Laurent#
189