blob: adcbd834f4f063a55286fa2a23298c60900f3bec [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!-- Copyright (C) 2018 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<ProductStrategies>
<!-- OEM Usages -->
<!-- product_strategy will be defined according this order
product_strategy is oem_traffic_anouncement if all the conditions are satisfied for
AudioAttributes aa
int type = 0;
if (bundle != null) {
type = bundle.getInt(KEY_OEM_TYPE, 0);
}
if(
( aa.mContentType == AudioAttributes.AUDIO_CONTENT_TYPE_SPEECH ) &&
( aa.mUsage == AudioAttributes.AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE ) &&
( type == 1 ) )
-->
<ProductStrategy name="oem_traffic_anouncement">
<AttributesGroup volumeGroup="oem_traffic_anouncement">
<ContentType value="AUDIO_CONTENT_TYPE_SPEECH"/>
<Usage value="AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE"/>
<!-- traffic_annoucement = 1 -->
<Bundle key="oem" value="1"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="oem_strategy_1">
<AttributesGroup volumeGroup="oem_adas_2">
<ContentType value="AUDIO_CONTENT_TYPE_SPEECH"/>
<Usage value="AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE"/>
<Bundle key="oem" value="2"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="oem_strategy_2">
<AttributesGroup volumeGroup="oem_adas_3">
<ContentType value="AUDIO_CONTENT_TYPE_SPEECH"/>
<Usage value="AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE"/>
<Bundle key="oem" value="3"/>
</AttributesGroup>
</ProductStrategy>
<!-- Car Usages -->
<!-- Keep those lines only for car -->
<!-- Check car conditions if any OEM conditions matched -->
<!-- As defined by CarAudioAttributesUtil.java -->
<!-- product_strategy will be defined according this order
product_strategy is radio if all the conditions are satisfied for AudioAttributes aa
int type = CAR_AUDIO_TYPE_DEFAULT;
if (bundle != null) {
type = bundle.getInt(KEY_CAR_AUDIO_TYPE, CAR_AUDIO_TYPE_DEFAULT);
}
if(
( aa.mContentType == AudioAttributes.AUDIO_CONTENT_TYPE_SPEECH ) &&
( aa.mUsage == AudioAttributes.AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE ) &&
( type == CAR_AUDIO_TYPE_RADIO ) )
-->
<ProductStrategy name="radio">
<AttributesGroup volumeGroup="media_car_audio_type_3">
<ContentType value="AUDIO_CONTENT_TYPE_MUSIC"/>
<Usage value="AUDIO_USAGE_MEDIA"/>
<Bundle key="car_audio_type" value="3"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="ext_audio_source">
<AttributesGroup volumeGroup="media_car_audio_type_7">
<ContentType value="AUDIO_CONTENT_TYPE_MUSIC"/>
<Usage value="AUDIO_USAGE_MEDIA"/>
<Bundle key="car_audio_type" value="7"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="voice_command">
<AttributesGroup volumeGroup="speech">
<Attributes>
<ContentType value="AUDIO_CONTENT_TYPE_SPEECH"/>
<Usage value="AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE"/>
<!-- CAR_AUDIO_TYPE_VOICE_COMMAND = 1 -->
<Bundle key="car_audio_type" value="1"/>
</Attributes>
<Attributes> <Usage value="AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_ASSISTANT"/> </Attributes>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="safety_alert">
<AttributesGroup volumeGroup="system">
<ContentType value="AUDIO_CONTENT_TYPE_SONIFICATION"/>
<Usage value="AUDIO_USAGE_NOTIFICATION"/>
<!-- CAR_AUDIO_TYPE_SAFETY_ALERT = 2 -->
<Bundle key="car_audio_type" value="2"/>
</AttributesGroup>
</ProductStrategy>
<!-- To be checked
CAR_AUDIO_TYPE_CARSERVICE_BOTTOM
CAR_AUDIO_TYPE_CARSERVICE_CAR_PROXY
CAR_AUDIO_TYPE_CARSERVICE_MEDIA_MUTE
-->
<!-- Generic Usages -->
<ProductStrategy name="music">
<AttributesGroup streamType="AUDIO_STREAM_MUSIC" volumeGroup="media">
<Attributes> <Usage value="AUDIO_USAGE_MEDIA"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_GAME"/> </Attributes>
<!-- Default product strategy has empty attributes -->
<Attributes></Attributes>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="nav_guidance">
<AttributesGroup volumeGroup="speech">
<Usage value="AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="voice_call">
<AttributesGroup streamType="AUDIO_STREAM_VOICE_CALL" volumeGroup="phone">
<Attributes> <Usage value="AUDIO_USAGE_VOICE_COMMUNICATION"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING"/> </Attributes>
</AttributesGroup>
<AttributesGroup streamType="AUDIO_STREAM_BLUETOOTH_SCO" volumeGroup="phone">
<Attributes> <Flags value="AUDIO_FLAG_SCO"/> </Attributes>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="alarm">
<AttributesGroup streamType="AUDIO_STREAM_ALARM" volumeGroup="ring">
<Usage value="AUDIO_USAGE_ALARM"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="ring">
<AttributesGroup streamType="AUDIO_STREAM_RING" volumeGroup="ring">
<Usage value="AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="notification">
<AttributesGroup streamType="AUDIO_STREAM_NOTIFICATION" volumeGroup="ring">
<Attributes> <Usage value="AUDIO_USAGE_NOTIFICATION"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_NOTIFICATION_COMMUNICATION_INSTANT"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_NOTIFICATION_COMMUNICATION_DELAYED"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_NOTIFICATION_COMMUNICATION_REQUEST"/> </Attributes>
<Attributes> <Usage value="AUDIO_USAGE_NOTIFICATION_EVENT"/> </Attributes>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="system">
<AttributesGroup streamType="AUDIO_STREAM_SYSTEM" volumeGroup="system">
<Usage value="AUDIO_USAGE_ASSISTANCE_SONIFICATION"/>
</AttributesGroup>
</ProductStrategy>
<ProductStrategy name="tts">
<!-- TTS stream MUST BE MANAGED OUTSIDE default product strategy if NO DEDICATED OUTPUT
for TTS, otherwise when beacon happens, default strategy is ... muted.
If it is media, it is annoying... -->
<AttributesGroup streamType="AUDIO_STREAM_TTS" volumeGroup="tts">
<Attributes> <Flags value="AUDIO_FLAG_BEACON"/> </Attributes>
</AttributesGroup>
</ProductStrategy>
<!-- Routing Strategy rerouting may be removed as following media??? -->
<ProductStrategy name="rerouting">
<AttributesGroup streamType="AUDIO_STREAM_REROUTING" volumeGroup="rerouting">
<Attributes></Attributes>
</AttributesGroup>
</ProductStrategy>
<!-- Patch stream needs full scale volume, define it otherwise switch to default... -->
<ProductStrategy name="patch">
<AttributesGroup streamType="AUDIO_STREAM_PATCH" volumeGroup="patch">
<Attributes></Attributes>
</AttributesGroup>
</ProductStrategy>
</ProductStrategies>