diff options
| author | Eric Laurent <elaurent@google.com> | 2017-11-22 16:03:52 -0800 |
|---|---|---|
| committer | Kevin Rocard <krocard@google.com> | 2018-02-01 16:17:34 -0800 |
| commit | 34daac8485e2fa1cd8069f0550163875ad23305a (patch) | |
| tree | 32618cd63ff7ec3b7e65bfdf5fe2c13f628ccf31 /audio | |
| parent | 9efddc5596a30c35bf6f48d81561c545e7279cd3 (diff) | |
| download | android_hardware_interfaces-34daac8485e2fa1cd8069f0550163875ad23305a.tar.gz android_hardware_interfaces-34daac8485e2fa1cd8069f0550163875ad23305a.tar.bz2 android_hardware_interfaces-34daac8485e2fa1cd8069f0550163875ad23305a.zip | |
Audio V4: Add new api in XSD
Allow multiple concurrent opened profiles.
Allow mixPort to declare their preferred usage.
Allow to declare the default devicePort for a device type.
Bug: 38184704
Test: xmllint --noout --schema hardware/interfaces/audio/4.0/config/audio_policy_configuration.xsd --xinclude out/target/product/taimen/vendor/etc/audio_policy_configuration.xml
Change-Id: If2afd9e83f8b023e6229496759dc525497af8d72
Signed-off-by: Kevin Rocard <krocard@google.com>
Diffstat (limited to 'audio')
| -rw-r--r-- | audio/4.0/config/audio_policy_configuration.xsd | 61 |
1 files changed, 56 insertions, 5 deletions
diff --git a/audio/4.0/config/audio_policy_configuration.xsd b/audio/4.0/config/audio_policy_configuration.xsd index 7647cade7..924fb4715 100644 --- a/audio/4.0/config/audio_policy_configuration.xsd +++ b/audio/4.0/config/audio_policy_configuration.xsd @@ -81,11 +81,14 @@ </xs:restriction> </xs:simpleType> <xs:simpleType> - <!-- Vendor eXtension names must be in the vx namespace. - Vendor are encouraged to namespace their module names. - Example for an hypothetical Google virtual reality HAL: - <module name="vx_google_vr" halVersion="3.0"> - --> + <xs:annotation> + <xs:documentation xml:lang="en"> + Vendor eXtension names must be in the vx namespace. + Vendor are encouraged to namespace their module names. + Example for an hypothetical Google virtual reality HAL: + <module name="vx_google_vr" halVersion="3.0"/> + </xs:documentation> + </xs:annotation> <xs:restriction base="xs:string"> <xs:pattern value="vx_[_a-zA-Z0-9]+"/> </xs:restriction> @@ -205,6 +208,22 @@ <xs:attribute name="name" type="xs:token" use="required"/> <xs:attribute name="role" type="role" use="required"/> <xs:attribute name="flags" type="audioInOutFlags"/> + <xs:attribute name="maxOpenCount" type="xs:unsignedInt"/> + <xs:attribute name="maxActiveCount" type="xs:unsignedInt"/> + <xs:attribute name="preferredUsage" type="audioUsageList"> + <xs:annotation> + <xs:documentation xml:lang="en"> + When choosing the mixPort of an audio track, the audioPolicy + first considers the mixPorts with a preferredUsage including + the track AudioUsage preferred . + If non support the track format, the other mixPorts are considered. + Eg: a <mixPort preferredUsage="AUDIO_USAGE_MEDIA" /> will receive + the audio of all apps playing with a MEDIA usage. + It may receive audio from ALARM if there are no audio compatible + <mixPort preferredUsage="AUDIO_USAGE_ALARM" />. + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> <xs:unique name="mixPortProfileUniqueness"> <xs:selector xpath="profile"/> @@ -358,6 +377,28 @@ <xs:enumeration value="AUDIO_FORMAT_LDAC"/> </xs:restriction> </xs:simpleType> + <!-- Enum values of audio::common::4_0::AudioUsage + TODO: generate from HIDL to avoid manual sync. --> + <xs:simpleType name="audioUsage"> + <xs:restriction base="xs:string"> + <xs:enumeration value="AUDIO_USAGE_UNKNOWN" /> + <xs:enumeration value="AUDIO_USAGE_MEDIA" /> + <xs:enumeration value="AUDIO_USAGE_VOICE_COMMUNICATION" /> + <xs:enumeration value="AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING" /> + <xs:enumeration value="AUDIO_USAGE_ALARM" /> + <xs:enumeration value="AUDIO_USAGE_NOTIFICATION" /> + <xs:enumeration value="AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE" /> + <xs:enumeration value="AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY" /> + <xs:enumeration value="AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE" /> + <xs:enumeration value="AUDIO_USAGE_ASSISTANCE_SONIFICATION" /> + <xs:enumeration value="AUDIO_USAGE_GAME" /> + <xs:enumeration value="AUDIO_USAGE_VIRTUAL_SOURCE" /> + <xs:enumeration value="AUDIO_USAGE_ASSISTANT" /> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="audioUsageList"> + <xs:list itemType="audioUsage"/> + </xs:simpleType> <!-- TODO: Change to a space separated list to xsd enforce correctness. --> <xs:simpleType name="samplingRates"> <xs:restriction base="xs:string"> @@ -418,6 +459,16 @@ <xs:attribute name="type" type="audioDevice" use="required"/> <xs:attribute name="role" type="role" use="required"/> <xs:attribute name="address" type="xs:string" use="optional" default=""/> + <!-- Note that XSD 1.0 can not check that a type only has one default. --> + <xs:attribute name="default" type="xs:boolean" use="optional"> + <xs:annotation> + <xs:documentation xml:lang="en"> + The default device will be used if multiple have the same type + and no explicit route request exists for a specific device of + that type. + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> <xs:unique name="devicePortProfileUniqueness"> <xs:selector xpath="profile"/> |
