supDomain: DeviceForProductStrategy

	supDomain: Accessibility
		#
		# STRATEGY_ACCESSIBILITY follows STRATEGY_PHONE if in call widely speaking
		# STRATEGY_ACCESSIBILITY follows STRATEGY_MEDIA otherwise
		#
		# Other case are handled programmatically has involving activity of streams.
		#
		domain: UnreachableDevices
			conf: Calibration
				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					hdmi_arc = 0
					spdif = 0
					aux_line = 0
					fm = 0
					speaker_safe = 0
					telephony_tx = 0
					ip = 0
					bus = 0
					proxy = 0
					usb_headset = 0
					stub = 0

		domain: Device
			conf: RemoteSubmix
				#
				# Accessibility follows Media strategy if not in call
				#
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				AvailableOutputDevices Includes RemoteSubmix
				AvailableOutputDevicesAddresses Includes 0

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 1
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: BluetoothA2dp
				#
				# Accessibility falls through media strategy if not in call (widely speaking)
				#
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				ForceUseForMedia IsNot ForceNoBtA2dp
				AvailableOutputDevices Includes BluetoothA2dp

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 1
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: BluetoothA2dpHeadphone
				#
				# Accessibility falls through media strategy if not in call (widely speaking)
				#
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				ForceUseForMedia IsNot ForceNoBtA2dp
				AvailableOutputDevices Includes BluetoothA2dpHeadphones

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 1
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: BluetoothA2dpSpeaker
				#
				# Accessibility falls through media strategy if not in call (widely speaking)
				#
				ForceUseForMedia IsNot ForceNoBtA2dp
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				AvailableOutputDevices Includes BluetoothA2dpSpeaker

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 1
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: ForceSpeakerWhenNotInCall
				#
				# Accessibility follows Media strategy if not in call
				#
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				ForceUseForMedia Is ForceSpeaker
				AvailableOutputDevices Includes Speaker

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 1
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: BluetoothScoCarkit
				#
				# accessibility falls through Phone strategy if in call
				#
				ANY
					TelephonyMode Is InCall
					TelephonyMode Is InCommunication
				AvailableOutputDevices Includes BluetoothScoCarkit
				ForceUseForCommunication Is ForceBtSco

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 1
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: BluetoothScoHeadset
				#
				# accessibility falls through Phone strategy if in call
				#
				ANY
					TelephonyMode Is InCall
					TelephonyMode Is InCommunication
				AvailableOutputDevices Includes BluetoothScoHeadset
				ForceUseForCommunication Is ForceBtSco

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 1
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: BluetoothSco
				#
				# accessibility falls through Phone strategy if in call
				#
				ANY
					TelephonyMode Is InCall
					TelephonyMode Is InCommunication
				AvailableOutputDevices Includes BluetoothSco
				ForceUseForCommunication Is ForceBtSco

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 1
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: WiredHeadphone
				ANY
					#
					# accessibility falls through Phone strategy if in call
					#
					ALL
						ANY
							TelephonyMode Is InCall
							TelephonyMode Is InCommunication
						ForceUseForCommunication IsNot ForceSpeaker
					#
					# accessibility follows Media strategy if not in call
					#
					ALL
						TelephonyMode IsNot InCall
						TelephonyMode IsNot InCommunication
				AvailableOutputDevices Includes WiredHeadphone

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 1
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: Line
				ANY
					#
					# accessibility falls through Phone strategy if in call
					# but Line has a lower priority than WiredHeadset in this case.
					#
					ALL
						ANY
							TelephonyMode Is InCall
							TelephonyMode Is InCommunication
						ForceUseForCommunication IsNot ForceSpeaker
						AvailableOutputDevices Excludes WiredHeadset
					#
					# accessibility follows Media strategy if not in call
					#
				AvailableOutputDevices Includes Line

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 1
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: WiredHeadset
				ANY
					#
					# accessibility falls through Phone strategy if in call
					#
					ALL
						ANY
							TelephonyMode Is InCall
							TelephonyMode Is InCommunication
						ForceUseForCommunication IsNot ForceSpeaker
					#
					# accessibility follows Media strategy if not in call
					#
					ALL
						TelephonyMode IsNot InCall
						TelephonyMode IsNot InCommunication
				AvailableOutputDevices Includes WiredHeadset

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 1
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: UsbDevice
				ANY
					#
					# accessibility falls through Phone strategy if in call (widely speaking)
					#
					ALL
						ANY
							TelephonyMode Is InCall
							TelephonyMode Is InCommunication
						ForceUseForCommunication IsNot ForceSpeaker
					#
					# accessibility 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
						ForceUseForMedia IsNot ForceSpeaker
				AvailableOutputDevices Includes UsbDevice

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 1
					hdmi = 0

			conf: UsbAccessory
				#
				# accessibility falls through Phone strategy if in call (widely speaking)
				# but USB accessory not reachable in call
				#
				# accessibility 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/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 1
					usb_device = 0
					hdmi = 0

			conf: DgtlDockHeadset
				#
				# accessibility falls through Phone strategy if in call (widely speaking)
				# but DgtlDockHeadset not reachable in call
				#
				# accessibility follows Media strategy if not in call
				#
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				AvailableOutputDevices Includes DgtlDockHeadset

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 1
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: AuxDigital
				#
				# accessibility falls through Phone strategy if in call (widely speaking)
				# but Hdmi not reachable in call
				#
				# accessibility follows Media strategy if not in call
				#
				TelephonyMode IsNot InCall
				TelephonyMode IsNot InCommunication
				AvailableOutputDevices Includes Hdmi

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 1

			conf: AnlgDockHeadset
				#
				# accessibility falls through Phone strategy if in call (widely speaking)
				# but AnlgDockHeadset not reachable in call
				#
				# accessibility 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 AnlgDockHeadset
				ForceUseForDock Is ForceAnalogDock

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 1
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: Earpiece
				#
				# accessibility falls through Phone strategy if in call
				#
				ANY
					TelephonyMode Is InCall
					TelephonyMode Is InCommunication
				AvailableOutputDevices Includes Earpiece
				ForceUseForCommunication IsNot ForceSpeaker

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 1
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: Speaker
				AvailableOutputDevices Includes Speaker

				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 1
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

			conf: Default
				component: /Policy/policy/product_strategies/accessibility/selected_output_devices/mask
					remote_submix = 0
					earpiece = 0
					bluetooth_a2dp = 0
					bluetooth_a2dp_headphones = 0
					bluetooth_a2dp_speaker = 0
					bluetooth_sco_headset = 0
					bluetooth_sco_carkit = 0
					bluetooth_sco = 0
					speaker = 0
					wired_headset = 0
					wired_headphone = 0
					line = 0
					anlg_dock_headset = 0
					dgtl_dock_headset = 0
					usb_accessory = 0
					usb_device = 0
					hdmi = 0

