aboutsummaryrefslogtreecommitdiff
path: root/configs/audio
diff options
context:
space:
mode:
authorMister Oyster <oysterized@gmail.com>2017-01-02 12:44:35 +0100
committerMister Oyster <oysterized@gmail.com>2017-01-02 12:44:35 +0100
commita184d985bf43d3fe6eeba971bc6b32f79ea38b37 (patch)
tree6f6e56e090777cc149bc1ab39e5987cc2b03e867 /configs/audio
initial releasecm-13.0
Diffstat (limited to 'configs/audio')
-rwxr-xr-xconfigs/audio/audio_device.xml258
-rw-r--r--configs/audio/audio_effects.conf186
-rw-r--r--configs/audio/audio_policy.conf167
3 files changed, 611 insertions, 0 deletions
diff --git a/configs/audio/audio_device.xml b/configs/audio/audio_device.xml
new file mode 100755
index 0000000..921af1d
--- /dev/null
+++ b/configs/audio/audio_device.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<mixercontrol>
+ <versioncontrol value="1.01">
+ </versioncontrol>
+ <!-- These are the initial mixer settings -->
+ <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" />
+ <kctl name="Audio_Amp_R_Switch" value="Off" />
+ <kctl name="Audio_Amp_L_Switch" value="Off" />
+ <kctl name="Voice_Amp_Switch" value="Off" />
+ <kctl name="Speaker_Amp_Switch" value="Off" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Ext_Speaker_Amp_Switch" value="Off" />
+ <kctl name="Audio_Sidetone_Switch" value="Off" />
+ <kctl name="Headset_Speaker_Amp_Switch" value="Off" />
+ <!--headphone output-->
+ <path name="headphone_output" value="turnon">
+ <kctl name="Audio_Amp_R_Switch" value="On" />
+ <kctl name="Audio_Amp_L_Switch" value="On" />
+ </path>
+ <path name="headphone_output" value="turnoff">
+ <kctl name="Audio_Amp_R_Switch" value="Off" />
+ <kctl name="Audio_Amp_L_Switch" value="Off" />
+ </path>
+ <!--receiver output-->
+ <path name="receiver_output" value="turnon">
+ <kctl name="Voice_Amp_Switch" value="On" />
+ </path>
+ <path name="receiver_output" value="turnoff">
+ <kctl name="Voice_Amp_Switch" value="Off" />
+ </path>
+ <!-- 2-in-1 speaker output-->
+ <path name="two_in_one_speaker_output" value="turnon">
+ <kctl name="Speaker_Amp_Switch" value="On" />
+ <kctl name="Audio_Speaker_class_Switch" value="CLASSAB" />
+ </path>
+ <path name="two_in_one_speaker_output" value="turnoff">
+ <kctl name="Audio_Speaker_class_Switch" value="RECEIVER" />
+ <kctl name="Speaker_Amp_Switch" value="Off" />
+ </path>
+ <!--speaker output-->
+ <path name="speaker_output" value="turnon">
+ <kctl name="Speaker_Amp_Switch" value="On" />
+ </path>
+ <path name="speaker_output" value="turnoff">
+ <kctl name="Speaker_Amp_Switch" value="Off" />
+ </path>
+ <!--headhpone_speaker output-->
+ <path name="headphoneSpeaker_output" value="turnon">
+ <kctl name="Headset_Speaker_Amp_Switch" value="On" />
+ </path>
+ <path name="headphoneSpeaker_output" value="turnoff">
+ <kctl name="Headset_Speaker_Amp_Switch" value="Off" />
+ </path>
+ <!--external_speaker output-->
+ <path name="ext_speaker_output" value="turnon">
+ <kctl name="Ext_Speaker_Amp_Switch" value="On" />
+ </path>
+ <path name="ext_speaker_output" value="turnoff">
+ <kctl name="Ext_Speaker_Amp_Switch" value="Off" />
+ </path>
+ <!--mic setting-->
+ <path name="builtin_Mic_Mic1" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />
+ </path>
+ <path name="builtin_Mic_Mic1" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_Mic1_Inverse" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />
+ </path>
+ <path name="builtin_Mic_Mic1_Inverse" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_Mic2" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />
+ </path>
+ <path name="builtin_Mic_Mic2" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_Mic2_Inverse" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />
+ </path>
+ <path name="builtin_Mic_Mic2_Inverse" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_SingleMic" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />
+ </path>
+ <path name="builtin_Mic_SingleMic" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_DualMic" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />
+ </path>
+ <path name="builtin_Mic_DualMic" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_BackMic" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />
+ </path>
+ <path name="builtin_Mic_BackMic" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="builtin_Mic_BackMic_Inverse" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC1" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />
+ </path>
+ <path name="builtin_Mic_BackMic_Inverse" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="headset_mic_input" value="turnon">
+ <kctl name="Audio_MicSource1_Setting" value="ADC2" />
+ <kctl name="Audio_ADC_1_Switch" value="On" />
+ <kctl name="Audio_ADC_2_Switch" value="On" />
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC2" />
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC2" />
+ </path>
+ <path name="headset_mic_input" value="turnoff">
+ <kctl name="Audio_Preamp1_Switch" value="OPEN" />
+ <kctl name="Audio_Preamp2_Switch" value="OPEN" />
+ <kctl name="Audio_ADC_1_Switch" value="Off" />
+ <kctl name="Audio_ADC_2_Switch" value="Off" />
+ </path>
+ <path name="sidetone_switch" value="turnon">
+ <kctl name="Audio_Sidetone_Switch" value="On" />
+ </path>
+ <path name="sidetone_switch" value="turnoff">
+ <kctl name="Audio_Sidetone_Switch" value="Off" />
+ </path>
+ <!--mic1 type setting-->
+ <path name="Mic1TypeACCMode" value="setting">
+ <kctl name="Audio_MIC1_Mode_Select" value="ACCMODE" />>
+ </path>
+ <path name="Mic1TypeDCCMode" value="setting">
+ <kctl name="Audio_MIC1_Mode_Select" value="DCCMODE" />>
+ </path>
+ <path name="Mic1TypeDMICMode" value="setting">
+ <kctl name="Audio_MIC1_Mode_Select" value="DMIC" />>
+ </path>
+ <path name="Mic1TypeDCCECMDIFFMode" value="setting">
+ <kctl name="Audio_MIC1_Mode_Select" value="DCCECMDIFFMODE" />>
+ </path>
+ <path name="Mic1TypeDCCECMSINGLEMode" value="setting">
+ <kctl name="Audio_MIC1_Mode_Select" value="DCCECMSINGLEMODE" />>
+ </path>
+ <!--mic2 type setting-->
+ <path name="Mic2TypeACCMode" value="setting">
+ <kctl name="Audio_MIC2_Mode_Select" value="ACCMODE" />>
+ </path>
+ <path name="Mic2TypeDCCMode" value="setting">
+ <kctl name="Audio_MIC2_Mode_Select" value="DCCMODE" />>
+ </path>
+ <path name="Mic2TypeDMICMode" value="setting">
+ <kctl name="Audio_MIC2_Mode_Select" value="DMIC" />>
+ </path>
+ <path name="Mic2TypeDCCECMDIFFMode" value="setting">
+ <kctl name="Audio_MIC2_Mode_Select" value="DCCECMDIFFMODE" />>
+ </path>
+ <path name="Mic2TypeDCCECMSINGLEMode" value="setting">
+ <kctl name="Audio_MIC2_Mode_Select" value="DCCECMSINGLEMODE" />>
+ </path>
+ <!--mic3 type setting-->
+ <path name="Mic3TypeACCMode" value="setting">
+ <kctl name="Audio_MIC3_Mode_Select" value="ACCMODE" />>
+ </path>
+ <path name="Mic3TypeDCCMode" value="setting">
+ <kctl name="Audio_MIC3_Mode_Select" value="DCCMODE" />>
+ </path>
+ <path name="Mic3TypeDMICMode" value="setting">
+ <kctl name="Audio_MIC3_Mode_Select" value="DMIC" />>
+ </path>
+ <path name="Mic3TypeDCCECMDIFFMode" value="setting">
+ <kctl name="Audio_MIC3_Mode_Select" value="DCCECMDIFFMODE" />>
+ </path>
+ <path name="Mic3TypeDCCECMSINGLEMode" value="setting">
+ <kctl name="Audio_MIC3_Mode_Select" value="DCCECMSINGLEMODE" />>
+ </path>
+ <!--mic4 type setting-->
+ <path name="Mic4TypeACCMode" value="setting">
+ <kctl name="Audio_MIC4_Mode_Select" value="ACCMODE" />>
+ </path>
+ <path name="Mic4TypeDCCMode" value="setting">
+ <kctl name="Audio_MIC4_Mode_Select" value="DCCMODE" />>
+ </path>
+ <path name="Mic4TypeDMICMode" value="setting">
+ <kctl name="Audio_MIC4_Mode_Select" value="DMIC" />>
+ </path>
+ <path name="Mic4TypeDCCECMDIFFMode" value="setting">
+ <kctl name="Audio_MIC4_Mode_Select" value="DCCECMDIFFMODE" />>
+ </path>
+ <path name="Mic4TypeDCCECMSINGLEMode" value="setting">
+ <kctl name="Audio_MIC4_Mode_Select" value="DCCECMSINGLEMODE" />>
+ </path>
+ <path name="Mic_Setting_Inverse" value="setting">
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC3" />>
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC1" />>
+ </path>
+ <path name="Mic_Setting_NoInverse" value="setting">
+ <kctl name="Audio_Preamp1_Switch" value="IN_ADC1" />>
+ <kctl name="Audio_Preamp2_Switch" value="IN_ADC3" />>
+ </path>
+</mixercontrol>
diff --git a/configs/audio/audio_effects.conf b/configs/audio/audio_effects.conf
new file mode 100644
index 0000000..bd5e4c0
--- /dev/null
+++ b/configs/audio/audio_effects.conf
@@ -0,0 +1,186 @@
+# 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 {
+# This is a proxy library that will be an abstraction for
+# the HW and SW effects
+
+ #proxy {
+ #path /system/lib/soundfx/libeffectproxy.so
+ #}
+
+# This is the SW implementation library of the effect
+ #libSW {
+ #path /system/lib/soundfx/libswwrapper.so
+ #}
+
+# This is the HW implementation library for the effect
+ #libHW {
+ #path /system/lib/soundfx/libhwwrapper.so
+ #}
+
+ bundle {
+ path /system/lib/soundfx/libbundlewrapper.so
+ }
+ reverb {
+ path /system/lib/soundfx/libreverbwrapper.so
+ }
+ visualizer {
+ path /system/lib/soundfx/libvisualizer.so
+ }
+ downmix {
+ path /system/lib/soundfx/libdownmix.so
+ }
+ loudness_enhancer {
+ path /system/lib/soundfx/libldnhncr.so
+ }
+ pre_processing {
+ path /system/lib/soundfx/libaudiopreprocessing.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 bundle
+ uuid 8631f300-72e2-11df-b57e-0002a5d5c51b
+ }
+ virtualizer {
+ library bundle
+ uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b
+ }
+ equalizer {
+ library bundle
+ uuid ce772f20-847d-11df-bb17-0002a5d5c51b
+ }
+ volume {
+ library bundle
+ uuid 119341a0-8469-11df-81f9-0002a5d5c51b
+ }
+ reverb_env_aux {
+ library reverb
+ uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
+ }
+ reverb_env_ins {
+ library reverb
+ uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
+ }
+ reverb_pre_aux {
+ library reverb
+ uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
+ }
+ reverb_pre_ins {
+ library reverb
+ uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
+ }
+ visualizer {
+ library visualizer
+ uuid d069d9e0-8329-11df-9168-0002a5d5c51b
+ }
+ downmix {
+ library downmix
+ uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
+ }
+ loudness_enhancer {
+ library loudness_enhancer
+ uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
+ }
+ 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
+#
diff --git a/configs/audio/audio_policy.conf b/configs/audio/audio_policy.conf
new file mode 100644
index 0000000..a304c2b
--- /dev/null
+++ b/configs/audio/audio_policy.conf
@@ -0,0 +1,167 @@
+#
+# Audio policy configuration for generic device builds (goldfish audio HAL - emulator)
+#
+
+# Global configuration section: lists input and output devices always present on the device
+# as well as the output device selected by default.
+# Devices are designated by a string that corresponds to the enum in audio.h
+
+#global_configuration {
+# attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE
+# default_output_device AUDIO_DEVICE_OUT_SPEAKER
+# attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_FM
+#}
+
+# audio hardware module section: contains descriptors for all audio hw modules present on the
+# device. Each hw module node is named after the corresponding hw module library base name.
+# For instance, "primary" corresponds to audio.primary.<device>.so.
+# The "primary" module is mandatory and must include at least one output with
+# AUDIO_OUTPUT_FLAG_PRIMARY flag.
+# Each module descriptor contains one or more output profile descriptors and zero or more
+# input profile descriptors. Each profile lists all the parameters supported by a given output
+# or input stream category.
+# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
+# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
+
+audio_hw_modules {
+ primary {
+ global_configuration {
+ attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE
+ default_output_device AUDIO_DEVICE_OUT_SPEAKER
+ attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_VOICE_CALL
+ audio_hal_version 3.0
+ }
+ devices {
+ headset {
+ type AUDIO_DEVICE_OUT_WIRED_HEADSET
+ gains {
+ gain_1 {
+ mode AUDIO_GAIN_MODE_JOINT
+ channel_mask AUDIO_CHANNEL_OUT_STEREO
+ min_value_mB -6400
+ max_value_mB 0
+ default_value_mB 0
+ step_value_mB 100
+ min_ramp_ms 0
+ max_ramp_ms 0
+ }
+ }
+ }
+ headphone {
+ type AUDIO_DEVICE_OUT_WIRED_HEADPHONE
+ gains {
+ gain_1 {
+ mode AUDIO_GAIN_MODE_JOINT
+ channel_mask AUDIO_CHANNEL_OUT_STEREO
+ min_value_mB -6400
+ max_value_mB 0
+ default_value_mB 0
+ step_value_mB 100
+ min_ramp_ms 0
+ max_ramp_ms 0
+ }
+ }
+ }
+ }
+ outputs {
+ primary {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_FM_TX|AUDIO_DEVICE_OUT_DEFAULT
+ flags AUDIO_OUTPUT_FLAG_PRIMARY
+ gains {
+ gain_1 {
+ mode AUDIO_GAIN_MODE_JOINT
+ channel_mask AUDIO_CHANNEL_OUT_STEREO
+ min_value_mB -6400
+ max_value_mB 0
+ default_value_mB 0
+ step_value_mB 100
+ min_ramp_ms 0
+ max_ramp_ms 0
+ }
+ }
+ }
+ }
+ inputs {
+ primary {
+ # MTK ;-)
+ sampling_rates 48000
+ channel_masks AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_COMMUNICATION|AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_AMBIENT|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_AUX_DIGITAL|AUDIO_DEVICE_IN_MATV|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_ALL_SCO|AUDIO_DEVICE_IN_FM|AUDIO_DEVICE_IN_DEFAULT
+ }
+ }
+ }
+ a2dp {
+ global_configuration {
+ audio_hal_version 2.0
+ }
+ outputs {
+ a2dp {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_ALL_A2DP
+ }
+ }
+ inputs {
+ a2dp {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP
+ }
+ }
+ }
+ usb {
+ global_configuration {
+ audio_hal_version 2.0
+ }
+ outputs {
+ usb_accessory {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_USB_ACCESSORY
+ }
+ usb_device {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_USB_DEVICE
+ }
+ }
+ inputs {
+ usb_device {
+ sampling_rates 44100
+ channel_masks AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_USB_DEVICE
+ }
+ }
+ }
+ r_submix {
+ global_configuration {
+ attached_input_devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
+ audio_hal_version 2.0
+ }
+ outputs {
+ r_submix {
+ sampling_rates 48000
+ channel_masks AUDIO_CHANNEL_OUT_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
+ }
+ }
+ inputs {
+ r_submix {
+ sampling_rates 48000
+ channel_masks AUDIO_CHANNEL_IN_STEREO
+ formats AUDIO_FORMAT_PCM_16_BIT
+ devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
+ }
+ }
+ }
+}