summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings
diff options
context:
space:
mode:
Diffstat (limited to 'services/audiopolicy/engineconfigurable/parameter-framework/example/Settings')
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw515
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw302
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw637
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw358
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw331
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw485
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw297
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw485
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw545
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw40
-rwxr-xr-xservices/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw20
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw39
-rw-r--r--services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw545
13 files changed, 4599 insertions, 0 deletions
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw
new file mode 100644
index 0000000..d4bc370
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_input_source.pfw
@@ -0,0 +1,515 @@
+supDomain: DeviceForInputSource
+ domain: Calibration
+ conf: Calibration
+ #
+ # Note that ALL input devices must have the sign bit set to 1.
+ # As the devices is a mask, use the "in" bit as a direction indicator.
+ #
+ component: /Policy/policy/input_sources/default/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ hdmi = 0
+ telephony_rx = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/mic/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ hdmi = 0
+ telephony_rx = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/voice_downlink/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ hdmi = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/voice_call/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ hdmi = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/voice_uplink/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ hdmi = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ hdmi = 0
+ telephony_rx = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/voice_recognition/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ hdmi = 0
+ telephony_rx = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ hdmi = 0
+ telephony_rx = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/remote_submix/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ hdmi = 0
+ telephony_rx = 0
+ back_mic = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/hotword/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ hdmi = 0
+ telephony_rx = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+ component: /Policy/policy/input_sources/fm_tuner/applicable_input_device/mask
+ in = 1
+ communication = 0
+ ambient = 0
+ bluetooth_sco_headset = 0
+ hdmi = 0
+ telephony_rx = 0
+ builtin_mic = 0
+ wired_headset = 0
+ back_mic = 0
+ remote_submix = 0
+ anlg_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ fm_tuner = 0
+ tv_tuner = 0
+ line = 0
+ spdif = 0
+ bluetooth_a2dp = 0
+ loopback = 0
+
+ domain: DefaultAndMic
+ conf: A2dp
+ AvailableInputDevices Includes BluetoothA2dp
+
+ component: /Policy/policy/input_sources
+ component: default/applicable_input_device/mask/
+ bluetooth_a2dp = 1
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ component: mic/applicable_input_device/mask/
+ bluetooth_a2dp = 1
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+
+ conf: Sco
+ AvailableInputDevices Includes BluetoothScoHeadset
+ ForceUseForRecord Is ForceBtSco
+
+ component: /Policy/policy/input_sources
+ component: default/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 1
+ component: mic/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 1
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 1
+
+ conf: WiredHeadset
+ AvailableInputDevices Includes WiredHeadset
+
+ component: /Policy/policy/input_sources
+ component: default/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 1
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ component: mic/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 1
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+
+ conf: UsbDevice
+ AvailableInputDevices Includes UsbDevice
+
+ component: /Policy/policy/input_sources
+ component: default/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 1
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ component: mic/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 1
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+
+ conf: BuiltinMic
+ AvailableInputDevices Includes BuiltinMic
+
+ component: /Policy/policy/input_sources
+ component: default/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 1
+ bluetooth_sco_headset = 0
+ component: mic/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 1
+ bluetooth_sco_headset = 0
+
+ conf: Default
+ component: /Policy/policy/input_sources
+ component: default/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+ component: mic/applicable_input_device/mask/
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ bluetooth_sco_headset = 0
+
+ domain: VoiceUplinkAndVoiceDownlinkAndVoiceCall
+ conf: VoiceCall
+ AvailableInputDevices Includes TelephonyRx
+
+ component: /Policy/policy/input_sources
+ voice_downlink/applicable_input_device/mask/telephony_rx = 1
+ voice_call/applicable_input_device/mask/telephony_rx = 1
+ voice_uplink/applicable_input_device/mask/telephony_rx = 1
+
+ conf: Default
+ component: /Policy/policy/input_sources
+ voice_downlink/applicable_input_device/mask/telephony_rx = 0
+ voice_call/applicable_input_device/mask/telephony_rx = 0
+ voice_uplink/applicable_input_device/mask/telephony_rx = 0
+
+ domain: Camcorder
+ conf: BackMic
+ AvailableInputDevices Includes BackMic
+
+ component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask
+ back_mic = 1
+ builtin_mic = 0
+
+ conf: BuiltinMic
+ AvailableInputDevices Includes BuiltinMic
+
+ component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask
+ back_mic = 0
+ builtin_mic = 1
+
+ conf: Default
+ component: /Policy/policy/input_sources/camcorder/applicable_input_device/mask
+ back_mic = 0
+ builtin_mic = 0
+
+ domain: VoiceRecognitionAndHotword
+ conf: ScoHeadset
+ ForceUseForRecord Is ForceBtSco
+ AvailableInputDevices Includes BluetoothScoHeadset
+
+ component: /Policy/policy/input_sources
+ component: voice_recognition/applicable_input_device/mask
+ bluetooth_sco_headset = 1
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ component: hotword/applicable_input_device/mask
+ bluetooth_sco_headset = 1
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+
+ conf: WiredHeadset
+ AvailableInputDevices Includes WiredHeadset
+
+ component: /Policy/policy/input_sources
+ component: voice_recognition/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 1
+ usb_device = 0
+ builtin_mic = 0
+ component: hotword/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 1
+ usb_device = 0
+ builtin_mic = 0
+
+ conf: UsbDevice
+ AvailableInputDevices Includes UsbDevice
+
+ component: /Policy/policy/input_sources
+ component: voice_recognition/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 1
+ builtin_mic = 0
+ component: hotword/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 1
+ builtin_mic = 0
+
+ conf: BuiltinMic
+ AvailableInputDevices Includes BuiltinMic
+
+ component: /Policy/policy/input_sources
+ component: voice_recognition/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 1
+ component: hotword/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 1
+
+ conf: Default
+ component: /Policy/policy/input_sources
+ component: voice_recognition/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ component: hotword/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+
+ domain: VoiceCommunication
+ conf: ScoHeadset
+ #
+ # SCO device may be requested but no SCO device is available
+ #
+ ForceUseForCommunication Is ForceBtSco
+ AvailableInputDevices Includes BluetoothScoHeadset
+
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ bluetooth_sco_headset = 1
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ back_mic = 0
+
+ conf: WiredHeadset
+ ForceUseForCommunication Is ForceNone
+ AvailableInputDevices Includes WiredHeadset
+
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 1
+ usb_device = 0
+ builtin_mic = 0
+ back_mic = 0
+
+ conf: UsbDevice
+ ForceUseForCommunication Is ForceNone
+ AvailableInputDevices Includes UsbDevice
+
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 1
+ builtin_mic = 0
+ back_mic = 0
+
+ conf: BuiltinMic
+ AvailableInputDevices Includes BuiltinMic
+ ANY
+ ForceUseForCommunication Is ForceNone
+ ALL
+ ForceUseForCommunication Is ForceSpeaker
+ AvailableInputDevices Excludes BackMic
+
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 1
+ back_mic = 0
+
+ conf: BackMic
+ ForceUseForCommunication Is ForceSpeaker
+ AvailableInputDevices Includes BackMic
+
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ back_mic = 1
+
+ conf: Default
+ component: /Policy/policy/input_sources/voice_communication/applicable_input_device/mask
+ bluetooth_sco_headset = 0
+ wired_headset = 0
+ usb_device = 0
+ builtin_mic = 0
+ back_mic = 0
+
+ domain: RemoteSubmix
+ conf: RemoteSubmix
+ AvailableInputDevices Includes RemoteSubmix
+
+ component: /Policy/policy/input_sources/remote_submix/applicable_input_device/mask
+ remote_submix = 1
+
+ conf: Default
+ component: /Policy/policy/input_sources/remote_submix/applicable_input_device/mask
+ remote_submix = 0
+
+ domain: FmTuner
+ conf: FmTuner
+ AvailableInputDevices Includes FmTuner
+
+ component: /Policy/policy/input_sources/fm_tuner/applicable_input_device/mask
+ fm_tuner = 1
+
+ conf: Default
+ component: /Policy/policy/input_sources/fm_tuner/applicable_input_device/mask
+ fm_tuner = 0
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw
new file mode 100644
index 0000000..e8ab33b
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_accessibility.pfw
@@ -0,0 +1,302 @@
+supDomain: DeviceForStrategy
+
+ supDomain: Accessibility
+ #
+ # @FIXME: STRATEGY_ACCESSIBILITY follows STRATEGY_MEDIA for now
+ #
+ # @FIXME: How to disable HDMI if !audio_is_linear_pcm other than programmatically???
+ #
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ hdmi_arc = 0
+ spdif = 0
+ aux_line = 0
+ fm = 0
+ speaker_safe = 0
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ telephony_tx = 0
+
+ domain: Device2
+ conf: RemoteSubmix
+ AvailableOutputDevices Includes RemoteSubmix
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 1
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dp
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dp
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dpHeadphone
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dpSpeaker
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 1
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: ForceSpeaker
+ ForceUseForMedia Is ForceSpeaker
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 1
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: WiredHeadphone
+ AvailableOutputDevices Includes WiredHeadphone
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 1
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Line
+ AvailableOutputDevices Includes Line
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: WiredHeadset
+ AvailableOutputDevices Includes WiredHeadset
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 1
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: UsbAccessory
+ AvailableOutputDevices Includes UsbAccessory
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 1
+ usb_device = 0
+ hdmi = 0
+
+ conf: UsbDevice
+ AvailableOutputDevices Includes UsbDevice
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ hdmi = 0
+
+ conf: DgtlDockHeadset
+ AvailableOutputDevices Includes DgtlDockHeadset
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: AuxDigital
+ #
+ # Do not route accessibility prompts to a digital output currently configured with a
+ # compressed format as they would likely not be mixed and dropped.
+ #
+ # @TODO How to translate the following condition(???)
+ # desc->isActive() && !audio_is_linear_pcm(desc->mFormat) && devices != AUDIO_DEVICE_NONE
+ #
+ AvailableOutputDevices Includes Hdmi
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 1
+
+ conf: AnlgDockHeadset
+ AvailableOutputDevices Includes AnlgDockHeadset
+ ForceUseForDock Is ForceAnalogDock
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Speaker
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 1
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Default
+ component: /Policy/policy/strategies/accessibility/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw
new file mode 100644
index 0000000..85273b2
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_dtmf.pfw
@@ -0,0 +1,637 @@
+supDomain: DeviceForStrategy
+
+ supDomain: Dtmf
+
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ fm = 0
+ speaker_safe = 0
+ bluetooth_sco_carkit = 0
+
+ domain: Device2
+ conf: RemoteSubmix
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes RemoteSubmix
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 1
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothA2dp
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dp
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothA2dpHeadphones
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothA2dpSpeaker
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 1
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: ForceSpeakerWhenNotInCall
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia Is ForceSpeaker
+ ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 1
+
+ conf: BluetoothScoHeadset
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ AvailableOutputDevices Includes BluetoothScoHeadset
+ ForceUseForCommunication Is ForceBtSco
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 1
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothSco
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ AvailableOutputDevices Includes BluetoothSco
+ ForceUseForCommunication Is ForceBtSco
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 1
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: WiredHeadphone
+ ANY
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ALL
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes WiredHeadphone
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 1
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: LineWhenFollowingMedia
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes Line
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 1
+ speaker = 0
+
+ conf: WiredHeadset
+ ANY
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ALL
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes WiredHeadset
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 1
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: UsbDevice
+ ANY
+ #
+ # DTMF falls through Phone strategy if in call (widely speaking)
+ #
+ ALL
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ #
+ # DTMF follows Media strategy if not in call
+ # Media strategy inverts the priority of USB device vs accessory
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Excludes UsbAccessory
+ ForceUseForCommunication Is ForceSpeaker
+ AvailableOutputDevices Includes UsbDevice
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: UsbAccessory
+ #
+ # DTMF falls through Phone strategy if in call (widely speaking)
+ # but USB accessory not reachable in call
+ #
+ # DTMF follows Media strategy if not in call
+ # Media strategy inverts the priority of USB device vs accessory
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes UsbAccessory
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 1
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: DgtlDockHeadset
+ #
+ # DTMF falls through Phone strategy if in call (widely speaking)
+ # but DgtlDockHeadset not reachable in call
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes DgtlDockHeadset
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: Hdmi
+ #
+ # DTMF falls through Phone strategy if in call (widely speaking)
+ # but Hdmi not reachable in call
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes Hdmi
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: AnlgDockHeadset
+ #
+ # DTMF falls through Phone strategy if in call (widely speaking)
+ # but AnlgDockHeadset not reachable in call
+ #
+ # DTMF follows Media strategy if not in call
+ # Media strategy inverts the priority of USB device vs accessory
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForDock Is ForceAnalogDock
+ AvailableOutputDevices Includes AnlgDockHeadset
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: Earpiece
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ AvailableOutputDevices Includes Earpiece
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 1
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: LineWhenFallThroughPhone
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ AvailableOutputDevices Includes Line
+ ForceUseForCommunication Is ForceSpeaker
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 1
+ speaker = 0
+
+ conf: Speaker
+ ANY
+ #
+ # DTMF falls through Phone strategy if in call
+ #
+ ALL
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceSpeaker
+ #
+ # DTMF follows Media strategy if not in call
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 1
+
+ conf: Default
+ component: /Policy/policy/strategies/dtmf/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ domain: Arc
+ #
+ # DTMF strategy follows media strategy if not in call
+ # these following domains consists in device(s) that can co-exist with others
+ # e.g. ARC, SPDIF, AUX_LINE
+ #
+ conf: Selected
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes HdmiArc
+
+ /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 1
+
+ conf: NotSelected
+ /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 0
+
+ domain: Spdif
+ #
+ # DTMF strategy follows media strategy if not in call
+ # these following domains consists in device(s) that can co-exist with others
+ # e.g. ARC, SPDIF, AUX_LINE
+ #
+ conf: Selected
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes Spdif
+
+ /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 1
+
+ conf: NotSelected
+ /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 0
+
+ domain: AuxLine
+ #
+ # DTMF strategy follows media strategy if not in call
+ # these following domains consists in device(s) that can co-exist with others
+ # e.g. ARC, SPDIF, AUX_LINE
+ #
+ conf: Selected
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes AuxLine
+
+ /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 1
+
+ conf: NotSelected
+ /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 0
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw
new file mode 100644
index 0000000..d714743
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_enforced_audible.pfw
@@ -0,0 +1,358 @@
+supDomain: DeviceForStrategy
+
+ supDomain: EnforcedAudible
+
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ # no enforced_audible on remote submix (e.g. WFD)
+ remote_submix = 0
+ hdmi_arc = 0
+ spdif = 0
+ aux_line = 0
+ speaker_safe = 0
+
+ domain: Speaker
+ conf: Selected
+ #
+ # strategy STRATEGY_ENFORCED_AUDIBLE uses same routing policy as STRATEGY_SONIFICATION
+ # except:
+ # - when in call where it doesn't default to STRATEGY_PHONE behavior
+ # - in countries where not enforced in which case it follows STRATEGY_MEDIA
+ #
+ AvailableOutputDevices Includes Speaker
+ ANY
+ ForceUseForSystem Is ForceSystemEnforced
+ ALL
+ ForceUseForMedia Is ForceSpeaker
+ AvailableOutputDevices Excludes RemoteSubmix
+ ANY
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Excludes BluetoothA2dp
+ AvailableOutputDevices Excludes BluetoothA2dpHeadphones
+ AvailableOutputDevices Excludes BluetoothA2dpSpeaker
+ #
+ # Speaker is also the fallback device if any of the device from Device2 domain
+ # is selected.
+ #
+ ALL
+ AvailableOutputDevices Excludes RemoteSubmix
+ AvailableOutputDevices Excludes WiredHeadphone
+ AvailableOutputDevices Excludes Line
+ AvailableOutputDevices Excludes WiredHeadset
+ AvailableOutputDevices Excludes UsbAccessory
+ AvailableOutputDevices Excludes UsbDevice
+ AvailableOutputDevices Excludes DgtlDockHeadset
+ AvailableOutputDevices Excludes Hdmi
+ ANY
+ AvailableOutputDevices Excludes AnlgDockHeadset
+ ForceUseForDock IsNot ForceAnalogDock
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ speaker = 1
+
+ conf: NotSelected
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ speaker = 0
+
+ domain: Device2
+ conf: RemoteSubmix
+ AvailableOutputDevices Includes RemoteSubmix
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 1
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: BluetoothA2dp
+ AvailableOutputDevices Includes BluetoothA2dp
+ ForceUseForMedia IsNot ForceNoBtA2dp
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: BluetoothA2dpHeadphones
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+ ForceUseForMedia IsNot ForceNoBtA2dp
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: BluetoothA2dpSpeaker
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+ ForceUseForMedia IsNot ForceNoBtA2dp
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 1
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: WiredHeadphone
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes WiredHeadphone
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 1
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: Line
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes Line
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 1
+ fm = 0
+ speaker_safe = 0
+
+ conf: WiredHeadset
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes WiredHeadset
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 1
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: UsbAccessory
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes UsbAccessory
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 1
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: UsbDevice
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes UsbDevice
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: DgtlDockHeadset
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes DgtlDockHeadset
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: Hdmi
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes Hdmi
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
+ conf: AnlgDockHeadset
+ ForceUseForMedia IsNot ForceSpeaker
+ ForceUseForDock Is ForceAnalogDock
+ AvailableOutputDevices Includes AnlgDockHeadset
+
+ component: /Policy/policy/strategies/enforced_audible/selected_output_devices/mask
+ remote_submix = 0
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ fm = 0
+ speaker_safe = 0
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw
new file mode 100644
index 0000000..38bede5
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_media.pfw
@@ -0,0 +1,331 @@
+domainGroup: DeviceForStrategy
+
+ domainGroup: Media
+
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ fm = 0
+ speaker_safe = 0
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ telephony_tx = 0
+
+ domain: Device2
+ conf: RemoteSubmix
+ AvailableOutputDevices Includes RemoteSubmix
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 1
+ line = 0
+
+ conf: BluetoothA2dp
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dp
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 1
+ remote_submix = 0
+ line = 0
+
+ conf: BluetoothA2dpHeadphone
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: BluetoothA2dpSpeaker
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: ForceSpeaker
+ ForceUseForMedia Is ForceSpeaker
+ AvailableOutputDevices Includes Speaker
+ #
+ # If hdmi system audio mode is on, remove speaker out of output list.
+ #
+ ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 1
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: WiredHeadphone
+ AvailableOutputDevices Includes WiredHeadphone
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 1
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: Line
+ AvailableOutputDevices Includes Line
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 1
+
+ conf: WiredHeadset
+ AvailableOutputDevices Includes WiredHeadset
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 1
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: UsbAccessory
+ AvailableOutputDevices Includes UsbAccessory
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 1
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: UsbDevice
+ AvailableOutputDevices Includes UsbDevice
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 1
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: DgtlDockHeadset
+ AvailableOutputDevices Includes DgtlDockHeadset
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 1
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: AuxDigital
+ AvailableOutputDevices Includes Hdmi
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 1
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: AnlgDockHeadset
+ AvailableOutputDevices Includes AnlgDockHeadset
+ ForceUseForDock Is ForceAnalogDock
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 1
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: Speaker
+ AvailableOutputDevices Includes Speaker
+ #
+ # If hdmi system audio mode is on, remove speaker out of output list.
+ #
+ ForceUseForHdmiSystemAudio IsNot ForceHdmiSystemEnforced
+
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 1
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ conf: Default
+ component: /Policy/policy/strategies/media/selected_output_devices/mask
+ speaker = 0
+ hdmi = 0
+ dgtl_dock_headset = 0
+ angl_dock_headset = 0
+ usb_device = 0
+ usb_accessory = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp = 0
+ remote_submix = 0
+ line = 0
+
+ domain: Arc
+ #
+ # these following domains consists in device(s) that can co-exist with others
+ # e.g. ARC, SPDIF, AUX_LINE
+ #
+ conf: Selected
+ AvailableOutputDevices Includes HdmiArc
+
+ /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 1
+
+ conf: NotSelected
+ /Policy/policy/strategies/media/selected_output_devices/mask/hdmi_arc = 0
+
+ domain: Spdif
+ #
+ # these following domains consists in device(s) that can co-exist with others
+ # e.g. ARC, SPDIF, AUX_LINE
+ #
+ conf: Selected
+ AvailableOutputDevices Includes Spdif
+
+ /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 1
+
+ conf: NotSelected
+ /Policy/policy/strategies/media/selected_output_devices/mask/spdif = 0
+
+ domain: AuxLine
+ conf: Selected
+ AvailableOutputDevices Includes AuxLine
+
+ /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 1
+
+ conf: NotSelected
+ /Policy/policy/strategies/media/selected_output_devices/mask/aux_line = 0
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw
new file mode 100644
index 0000000..7b01491
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_phone.pfw
@@ -0,0 +1,485 @@
+supDomain: DeviceForStrategy
+
+ supDomain: Phone
+
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ # no sonification on remote submix (e.g. WFD)
+ remote_submix = 0
+ hdmi_arc = 0
+ aux_line = 0
+ spdif = 0
+ fm = 0
+ speaker_safe = 0
+
+ domain: Device
+ conf: ScoCarkit
+ AvailableOutputDevices Includes BluetoothScoCarkit
+ ForceUseForCommunication Is ForceBtSco
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 1
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothScoHeadset
+ AvailableOutputDevices Includes BluetoothScoHeadset
+ ForceUseForCommunication Is ForceBtSco
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 1
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothSco
+ AvailableOutputDevices Includes BluetoothSco
+ ForceUseForCommunication Is ForceBtSco
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 1
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothA2dp
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes BluetoothA2dp
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ ANY
+ ForceUseForCommunication Is ForceBtSco
+ ForceUseForCommunication Is ForceNone
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothA2dpHeadphones
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ ANY
+ ForceUseForCommunication Is ForceBtSco
+ ForceUseForCommunication Is ForceNone
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: BluetoothA2dpSpeaker
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ ForceUseForCommunication Is ForceSpeaker
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: WiredHeadphone
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes WiredHeadphone
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 1
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: WiredHeadset
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes WiredHeadset
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 1
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: UsbDevice
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes UsbDevice
+ ANY
+ ForceUseForCommunication Is ForceBtSco
+ ForceUseForCommunication Is ForceNone
+ ALL
+ ForceUseForCommunication Is ForceSpeaker
+ #
+ # In case of Force Speaker, priority between device and accessory are
+ # inverted compared to Force None or Bt Sco
+ #
+ AvailableOutputDevices Excludes UsbAccessory
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: UsbAccessory
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes UsbAccessory
+ TelephonyMode IsNot InCommunication
+ TelephonyMode IsNot InCall
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: DgtlDockHeadset
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes DgtlDockHeadset
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: Hdmi
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes Hdmi
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: AnlgDockHeadset
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes AnlgDockHeadset
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: Earpiece
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes Earpiece
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 1
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+ conf: Line
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes Line
+ ForceUseForCommunication Is ForceSpeaker
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 1
+ speaker = 0
+
+ conf: Speaker
+ #
+ # Fallback BT Sco devices in case of FORCE_BT_SCO
+ # or FORCE_NONE
+ #
+ AvailableOutputDevices Includes Speaker
+ ForceUseForCommunication Is ForceSpeaker
+
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 1
+
+ conf: Default
+ component: /Policy/policy/strategies/phone/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+ speaker = 0
+
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw
new file mode 100644
index 0000000..d390a33
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_rerouting.pfw
@@ -0,0 +1,297 @@
+domainGroup: DeviceForStrategy
+
+ domainGroup: Rerouting
+ #
+ # Falls through media strategy
+ #
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ hdmi_arc = 0
+ spdif = 0
+ aux_line = 0
+ fm = 0
+ speaker_safe = 0
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ telephony_tx = 0
+
+ domain: Device2
+ conf: RemoteSubmix
+ AvailableOutputDevices Includes RemoteSubmix
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 1
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dp
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dp
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dpHeadphone
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dpSpeaker
+ ForceUseForMedia IsNot ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 1
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: ForceSpeaker
+ ForceUseForMedia Is ForceSpeaker
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 1
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: WiredHeadphone
+ AvailableOutputDevices Includes WiredHeadphone
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 1
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Line
+ AvailableOutputDevices Includes Line
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: WiredHeadset
+ AvailableOutputDevices Includes WiredHeadset
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 1
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: UsbAccessory
+ AvailableOutputDevices Includes UsbAccessory
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 1
+ usb_device = 0
+ hdmi = 0
+
+ conf: UsbDevice
+ AvailableOutputDevices Includes UsbDevice
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ hdmi = 0
+
+ conf: DgtlDockHeadset
+ AvailableOutputDevices Includes DgtlDockHeadset
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: AuxDigital
+ #
+ # Rerouting is similar to media and sonification (exept here: sonification is not allowed on HDMI)
+ #
+ AvailableOutputDevices Includes Hdmi
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 1
+
+ conf: AnlgDockHeadset
+ AvailableOutputDevices Includes AnlgDockHeadset
+ ForceUseForDock Is ForceAnalogDock
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Speaker
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 1
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Default
+ component: /Policy/policy/strategies/rerouting/selected_output_devices/mask
+ remote_submix = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ speaker = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw
new file mode 100644
index 0000000..71101f8
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification.pfw
@@ -0,0 +1,485 @@
+supDomain: DeviceForStrategy
+
+ supDomain: Sonification
+
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ # no sonification on remote submix (e.g. WFD)
+ remote_submix = 0
+ hdmi_arc = 0
+ spdif = 0
+ fm = 0
+ speaker_safe = 0
+ aux_line = 0
+ #
+ # Sonification follows phone strategy if in call but HDMI is not reachable
+ #
+ hdmi = 0
+
+ domain: Speaker
+
+ conf: Selected
+ AvailableOutputDevices Includes Speaker
+ ANY
+ #
+ # Sonification falls through ENFORCED_AUDIBLE if not in call (widely speaking)
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ALL
+ #
+ # Sonification follows phone strategy if in call (widely speaking)
+ #
+ ForceUseForCommunication Is ForceSpeaker
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ AvailableOutputDevices Excludes Line
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ speaker = 1
+
+ conf: NotSelected
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ speaker = 0
+
+ domain: Device2
+
+ conf: BluetoothA2dp
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ AvailableOutputDevices Includes BluetoothA2dp
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: BluetoothA2dpHeadphones
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: BluetoothA2dpSpeaker
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceNoBtA2dp
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: ScoCarkit
+ #
+ # Sonification follows phone strategy if in call (widely speaking)
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceBtSco
+ AvailableOutputDevices Includes BluetoothScoCarkit
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 1
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: ScoHeadset
+ #
+ # Sonification follows phone strategy if in call (widely speaking)
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceBtSco
+ AvailableOutputDevices Includes BluetoothScoHeadset
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 1
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: Sco
+ #
+ # Sonification follows phone strategy if in call (widely speaking)
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceBtSco
+ AvailableOutputDevices Includes BluetoothSco
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 1
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: WiredHeadphone
+ AvailableOutputDevices Includes WiredHeadphone
+ ANY
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ #
+ # Sonification follows Phone strategy if in call (widely speaking)
+ #
+ ALL
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 1
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: Line
+ AvailableOutputDevices Includes Line
+ ANY
+ #
+ # Sonification follows Phone strategy if in call (widely speaking)
+ #
+ ALL
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceSpeaker
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 1
+
+ conf: WiredHeadset
+ AvailableOutputDevices Includes WiredHeadset
+ ANY
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ ALL
+ #
+ # Sonification Follows Phone Strategy if in call (widely speaking)
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 1
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: UsbDevice
+ AvailableOutputDevices Includes UsbDevice
+ ANY
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ ALL
+ AvailableOutputDevices Excludes UsbAccessory
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ ALL
+ #
+ # Sonification Follows Phone Strategy if in call (widely speaking)
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ telephony_tx = 0
+ line = 0
+
+ conf: UsbAccessory
+ AvailableOutputDevices Includes UsbAccessory
+ #
+ # Sonification falls through media strategy if not in call (widely speaking)
+ #
+ # Sonification Follows Phone Strategy if in call (widely speaking)
+ # but USB Accessory not reachable in call.
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 1
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: DgtlDockHeadset
+ AvailableOutputDevices Includes DgtlDockHeadset
+ #
+ # Sonification falls through media strategy if not in call
+ #
+ # Sonification Follows Phone Strategy if in call (widely speaking)
+ # but DgtlDockHeadset not reachable in call.
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: AnlgDockHeadset
+ AvailableOutputDevices Includes AnlgDockHeadset
+ #
+ # Sonification falls through media strategy if not in call
+ #
+ # Sonification Follows Phone Strategy if in call (widely speaking)
+ # but AnlgDockHeadset not reachable in call.
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ ForceUseForDock Is ForceAnalogDock
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: Earpiece
+ #
+ # Sonification Follows Phone Strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ AvailableOutputDevices Includes Earpiece
+
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 1
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ conf: None
+ component: /Policy/policy/strategies/sonification/selected_output_devices/mask
+ earpiece = 0
+ wired_headset = 0
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw
new file mode 100644
index 0000000..f66674c
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_sonification_respectful.pfw
@@ -0,0 +1,545 @@
+domainGroup: DeviceForStrategy
+
+ domainGroup: SonificationRespectful
+ #
+ # Sonificiation Respectful follows:
+ # - If in call: Strategy sonification (that follows phone strategy in call also...)
+ # - If not in call AND a music stream is active remotely: Strategy sonification (that
+ # follows enforced audible, which follows media)
+ # - if not in call and no music stream active remotely and music stream active): strategy
+ # media
+ # - Otherwise follows sonification by replacing speaker with speaker safe if speaker is
+ # selected.
+ #
+ # Case of stream active handled programmatically
+
+ domain: UnreachableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ remote_submix = 0
+ hdmi_arc = 0
+ aux_line = 0
+ spdif = 0
+ fm = 0
+ telephony_tx = 0
+
+ domain: Speakers
+
+ conf: SpeakerSafe
+ AvailableOutputDevices Includes Speaker
+ AvailableOutputDevices Includes SpeakerSafe
+ #
+ # Follows sonification strategy if not in call and replace speaker by speaker safe
+ # if and only if speaker only selected
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ speaker_safe = 1
+ speaker = 0
+
+ conf: Speaker
+ AvailableOutputDevices Includes Speaker
+ ANY
+ #
+ # Follows sonification strategy if not in call
+ #
+ ALL
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ALL
+ #
+ # Follows Phone Strategy if call
+ #
+ ForceUseForCommunication Is ForceSpeaker
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ AvailableOutputDevices Excludes Line
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ speaker_safe = 0
+ speaker = 1
+
+ conf: None
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ speaker_safe = 0
+ speaker = 0
+
+ domain: Device2
+ conf: BluetoothA2dp
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia Is ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dp
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 1
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dpHeadphones
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia Is ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpHeadphones
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 1
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothA2dpSpeaker
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia Is ForceNoBtA2dp
+ AvailableOutputDevices Includes BluetoothA2dpSpeaker
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 1
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothScoCarkit
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceBtSco
+ AvailableOutputDevices Includes BluetoothScoCarkit
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 1
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothScoHeadset
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceBtSco
+ AvailableOutputDevices Includes BluetoothScoHeadset
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 1
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: BluetoothSco
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceBtSco
+ AvailableOutputDevices Includes BluetoothSco
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 1
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: WiredHeadphone
+ ANY
+ ALL
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ ALL
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes WiredHeadphone
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 1
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: LineWhenFollowMediaStrategy
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ AvailableOutputDevices Includes WiredHeadphone
+ ForceUseForMedia IsNot ForceSpeaker
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: WiredHeadset
+ ANY
+ ALL
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ ALL
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes WiredHeadset
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 1
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: UsbDevice
+ ANY
+ ALL
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ ALL
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Excludes UsbAccessory
+ AvailableOutputDevices Includes UsbDevice
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 1
+ hdmi = 0
+
+ conf: UsbAccessory
+ #
+ # SonificationRespectful Follows Phone strategy if in call (widely speaking)
+ # but UsbAccessory not reachable in call.
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes UsbAccessory
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 1
+ usb_device = 0
+ hdmi = 0
+
+ conf: DgtlDockHeadset
+ #
+ # SonificationRespectful Follows Phone strategy if in call (widely speaking)
+ # but DgtlDockHeadset not reachable in call.
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes DgtlDockHeadset
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 1
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: AuxDigital
+ #
+ # SonificationRespectful Follows Phone strategy if in call (widely speaking)
+ # but HDMI not reachable in call.
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ AvailableOutputDevices Includes Hdmi
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 1
+
+ conf: AnlgDockHeadset
+ #
+ # SonificationRespectful Follows Phone strategy if in call (widely speaking)
+ # but AnlgDockHeadset not reachable in call.
+ #
+ # SonificationRespectful Follows Sonification that falls through Media strategy if not in call
+ # SonificationRespectful follows media if music stream is active
+ #
+ TelephonyMode IsNot InCall
+ TelephonyMode IsNot InCommunication
+ ForceUseForMedia IsNot ForceSpeaker
+ ForceUseForDock Is ForceAnalogDock
+ AvailableOutputDevices Includes AnlgDockHeadset
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 1
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Earpiece
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication IsNot ForceSpeaker
+ AvailableOutputDevices Includes Earpiece
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 1
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
+
+ conf: Line
+ #
+ # SonificationRespectful Follows Phone strategy if in call
+ #
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+ ForceUseForCommunication Is ForceSpeaker
+ AvailableOutputDevices Includes Line
+
+ component: /Policy/policy/strategies/sonification_respectful/selected_output_devices/mask
+ earpiece = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ bluetooth_a2dp = 0
+ wired_headset = 0
+ wired_headphone = 0
+ line = 1
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ hdmi = 0
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw
new file mode 100644
index 0000000..e5ae9d9
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/device_for_strategy_transmitted_through_speaker.pfw
@@ -0,0 +1,40 @@
+supDomain: DeviceForStrategy
+
+ supDomain: TransmittedThroughSpeaker
+ domain: UnreacheableDevices
+ conf: Calibration
+ component: /Policy/policy/strategies/transmitted_through_speaker/selected_output_devices/mask
+ remote_submix = 0
+ hdmi_arc = 0
+ spdif = 0
+ aux_line = 0
+ fm = 0
+ speaker_safe = 0
+ earpiece = 0
+ wired_headset = 1
+ wired_headphone = 0
+ bluetooth_sco = 0
+ bluetooth_sco_headset = 0
+ bluetooth_sco_carkit = 0
+ bluetooth_a2dp = 0
+ bluetooth_a2dp_headphones = 0
+ bluetooth_a2dp_speaker = 0
+ hdmi = 0
+ angl_dock_headset = 0
+ dgtl_dock_headset = 0
+ usb_accessory = 0
+ usb_device = 0
+ telephony_tx = 0
+ line = 0
+
+ domain: Speaker
+ conf: Selected
+ AvailableOutputDevices Includes Speaker
+
+ component: /Policy/policy/strategies/transmitted_through_speaker/selected_output_devices/mask
+ speaker = 1
+
+ conf: NotSelected
+ component: /Policy/policy/strategies/transmitted_through_speaker/selected_output_devices/mask
+ speaker = 0
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw
new file mode 100755
index 0000000..3940b9d
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_stream.pfw
@@ -0,0 +1,20 @@
+domain: StrategyForStream
+
+ conf: Calibration
+ /Policy/policy/streams/voice_call/applicable_strategy/strategy = phone
+ #
+ # NOTE: SYSTEM stream uses MEDIA strategy because muting music and switching outputs
+ # while key clicks are played produces a poor result
+ #
+ /Policy/policy/streams/system/applicable_strategy/strategy = media
+ /Policy/policy/streams/ring/applicable_strategy/strategy = sonification
+ /Policy/policy/streams/music/applicable_strategy/strategy = media
+ /Policy/policy/streams/alarm/applicable_strategy/strategy = sonification
+ /Policy/policy/streams/notification/applicable_strategy/strategy = sonification_respectful
+ /Policy/policy/streams/bluetooth_sco/applicable_strategy/strategy = phone
+ /Policy/policy/streams/enforced_audible/applicable_strategy/strategy = enforced_audible
+ /Policy/policy/streams/dtmf/applicable_strategy/strategy = dtmf
+ /Policy/policy/streams/tts/applicable_strategy/strategy = transmitted_through_speaker
+ /Policy/policy/streams/accessibility/applicable_strategy/strategy = accessibility
+ /Policy/policy/streams/rerouting/applicable_strategy/strategy = rerouting
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw
new file mode 100644
index 0000000..3f5da13
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/strategy_for_usage.pfw
@@ -0,0 +1,39 @@
+supDomain: SelectedStrategyForUsages
+
+ domain: Calibration
+ conf: Calibration
+ /Policy/policy/usages/unknown/applicable_strategy/strategy = media
+ /Policy/policy/usages/media/applicable_strategy/strategy = media
+ /Policy/policy/usages/voice_communication/applicable_strategy/strategy = phone
+ /Policy/policy/usages/voice_communication_signalling/applicable_strategy/strategy = dtmf
+ /Policy/policy/usages/alarm/applicable_strategy/strategy = sonification
+ /Policy/policy/usages/notification/applicable_strategy/strategy = sonification_respectful
+ /Policy/policy/usages/notification_telephony_ringtone/applicable_strategy/strategy = sonification
+ /Policy/policy/usages/notification_communication_request/applicable_strategy/strategy = sonification_respectful
+ /Policy/policy/usages/notification_communication_instant/applicable_strategy/strategy = sonification_respectful
+ /Policy/policy/usages/notification_communication_delayed/applicable_strategy/strategy = sonification_respectful
+ /Policy/policy/usages/notification_event/applicable_strategy/strategy = sonification_respectful
+ /Policy/policy/usages/assistance_navigation_guidance/applicable_strategy/strategy = media
+ /Policy/policy/usages/assistance_sonification/applicable_strategy/strategy = media
+ /Policy/policy/usages/game/applicable_strategy/strategy = media
+
+ domain: AssistanceAccessibility
+ conf: Sonification
+ #
+ # In case of Ring or Alarm stream type active, switching to sonification
+ # @todo: handle this dynamic case. As a WA, using Ringtone mode...
+ #
+ TelephonyMode Is RingTone
+
+ /Policy/policy/usages/assistance_accessibility/applicable_strategy/strategy = sonification
+
+ conf: Phone
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+
+ /Policy/policy/usages/assistance_accessibility/applicable_strategy/strategy = phone
+
+ conf: Accessibility
+ /Policy/policy/usages/assistance_accessibility/applicable_strategy/strategy = accessibility
+
diff --git a/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw
new file mode 100644
index 0000000..1049564
--- /dev/null
+++ b/services/audiopolicy/engineconfigurable/parameter-framework/example/Settings/volumes.pfw
@@ -0,0 +1,545 @@
+supDomain: VolumeProfilesForStream
+ domain: Calibration
+ conf: Calibration
+ component: /Policy/policy/streams
+ component: voice_call/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: speaker_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -16.0
+ 2/index = 66
+ 2/db_attenuation = -8.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+
+ component: system/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -30.0
+ 1/index = 33
+ 1/db_attenuation = -26.0
+ 2/index = 66
+ 2/db_attenuation = -22.0
+ 3/index = 100
+ 3/db_attenuation = -18.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -21.0
+ 3/index = 100
+ 3/db_attenuation = -10.0
+
+ component: ring/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -49.5
+ 1/index = 33
+ 1/db_attenuation = -33.5
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -35.7
+ 1/index = 33
+ 1/db_attenuation = -26.1
+ 2/index = 66
+ 2/db_attenuation = -13.2
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -49.5
+ 1/index = 33
+ 1/db_attenuation = -33.5
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -27.0
+ 3/index = 100
+ 3/db_attenuation = -10.0
+
+ component: music/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -56.0
+ 1/index = 33
+ 1/db_attenuation = -34.0
+ 2/index = 66
+ 2/db_attenuation = -11.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+
+ component: alarm/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -49.5
+ 1/index = 33
+ 1/db_attenuation = -33.5
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -35.7
+ 1/index = 33
+ 1/db_attenuation = -26.1
+ 2/index = 66
+ 2/db_attenuation = -13.2
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -49.5
+ 1/index = 33
+ 1/db_attenuation = -33.5
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -27.0
+ 3/index = 100
+ 3/db_attenuation = -10.0
+
+ component: notification/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -49.5
+ 1/index = 33
+ 1/db_attenuation = -33.5
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -35.7
+ 1/index = 33
+ 1/db_attenuation = -26.1
+ 2/index = 66
+ 2/db_attenuation = -13.2
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -49.5
+ 1/index = 33
+ 1/db_attenuation = -33.5
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -27.0
+ 3/index = 100
+ 3/db_attenuation = -10.0
+
+ component: bluetooth_sco/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: speaker_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -16.0
+ 2/index = 66
+ 2/db_attenuation = -8.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+
+ component: enforced_audible/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -30.0
+ 1/index = 33
+ 1/db_attenuation = -26.0
+ 2/index = 66
+ 2/db_attenuation = -22.0
+ 3/index = 100
+ 3/db_attenuation = -18.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -27.0
+ 3/index = 100
+ 3/db_attenuation = -10.0
+
+ component: tts/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -96.0
+ 1/index = 1
+ 1/db_attenuation = -96.0
+ 2/index = 2
+ 2/db_attenuation = -96.0
+ 3/index = 100
+ 3/db_attenuation = -96.0
+ component: speaker_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -96.0
+ 1/index = 33
+ 1/db_attenuation = -68.0
+ 2/index = 66
+ 2/db_attenuation = -34.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -96.0
+ 1/index = 1
+ 1/db_attenuation = -96.0
+ 2/index = 2
+ 2/db_attenuation = -96.0
+ 3/index = 100
+ 3/db_attenuation = -96.0
+ component: extmedia_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -96.0
+ 1/index = 1
+ 1/db_attenuation = -96.0
+ 2/index = 2
+ 2/db_attenuation = -96.0
+ 3/index = 100
+ 3/db_attenuation = -96.0
+
+ component: accessibility/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -56.0
+ 1/index = 33
+ 1/db_attenuation = -34.0
+ 2/index = 66
+ 2/db_attenuation = -11.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+
+ component: rerouting/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+
+ component: patch/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: speaker_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: extmedia_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = 0.0
+ 1/index = 1
+ 1/db_attenuation = 0.0
+ 2/index = 2
+ 2/db_attenuation = 0.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+
+ domain: Dtmf
+ conf: InCall
+ ANY
+ TelephonyMode Is InCall
+ TelephonyMode Is InCommunication
+
+ component: /Policy/policy/streams
+ component: dtmf/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -30.0
+ 1/index = 33
+ 1/db_attenuation = -26.0
+ 2/index = 66
+ 2/db_attenuation = -22.0
+ 3/index = 100
+ 3/db_attenuation = -18.0
+ component: speaker_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: earpiece_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -27.0
+ 3/index = 100
+ 3/db_attenuation = -10.0
+
+ conf: OutOfCall
+ component: /Policy/policy/streams
+ component: dtmf/volume_profiles
+ component: headset_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: speaker_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -16.0
+ 2/index = 66
+ 2/db_attenuation = -8.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+ component: earpiece_device_category/curve_points
+ 0/index = 0
+ 0/db_attenuation = -24.0
+ 1/index = 33
+ 1/db_attenuation = -18.0
+ 2/index = 66
+ 2/db_attenuation = -12.0
+ 3/index = 100
+ 3/db_attenuation = -6.0
+ component: extmedia_device_category/curve_points
+ 0/index = 1
+ 0/db_attenuation = -58.0
+ 1/index = 33
+ 1/db_attenuation = -40.0
+ 2/index = 66
+ 2/db_attenuation = -17.0
+ 3/index = 100
+ 3/db_attenuation = 0.0
+