From b0c4bd081e0f6155dc0f4a8dfd7ffd61c6f4cb97 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Tue, 20 Oct 2020 01:29:53 +0000 Subject: [PATCH] Revert "audio: Align lists of enum values between framework and HAL" Revert submission 12851233-hal-enum-strings Reason for revert: breaks slider device Reverted Changes: I4f64a8b61:Use system/audio to/from string converters in Type... Iddaa92bf2:Move enums shared with HAL to audio-hal-enums.h Ie5896775b:audio: Align lists of enum values between framewor... Bug: 171262726 Change-Id: I35c1acf6ed07b533292d1264b6237766458fd711 --- audio/7.0/config/api/current.txt | 32 ++++------ .../7.0/config/audio_policy_configuration.xsd | 61 +++++++------------ .../audio_policy_configuration_V7_0-enums.h | 8 --- audio/common/7.0/types.hal | 28 +++++---- .../vts/functional/AudioPrimaryHidlHalTest.h | 2 +- 5 files changed, 51 insertions(+), 80 deletions(-) diff --git a/audio/7.0/config/api/current.txt b/audio/7.0/config/api/current.txt index 8c376ef238..ac8dc8ae0c 100644 --- a/audio/7.0/config/api/current.txt +++ b/audio/7.0/config/api/current.txt @@ -44,12 +44,10 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_IN_VOICE_CALL_MONO; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_IN_VOICE_DNLINK_MONO; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO; - enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_NONE; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_2POINT0POINT2; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_2POINT1; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_2POINT1POINT2; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_3POINT0POINT2; - enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_3POINT1; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_3POINT1POINT2; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_5POINT1; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_5POINT1POINT2; @@ -72,8 +70,6 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_STEREO_HAPTIC_AB; enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_SURROUND; - enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_TRI; - enum_constant public static final audio.policy.configuration.V7_0.AudioChannelMask AUDIO_CHANNEL_OUT_TRI_BACK; } public enum AudioContentType { @@ -91,7 +87,6 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_AUX_DIGITAL; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_BACK_MIC; - enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_BLE_HEADSET; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_BLUETOOTH_A2DP; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_BLUETOOTH_BLE; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET; @@ -122,8 +117,6 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_AUX_DIGITAL; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_AUX_LINE; - enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_BLE_HEADSET; - enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_BLE_SPEAKER; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_BLUETOOTH_A2DP; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES; enum_constant public static final audio.policy.configuration.V7_0.AudioDevice AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER; @@ -198,6 +191,7 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_APTX_HD; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_APTX_TWSP; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_CELT; + enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_DEFAULT; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_DOLBY_TRUEHD; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_DSD; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_DTS; @@ -212,11 +206,9 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_HE_AAC_V1; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_HE_AAC_V2; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_IEC61937; - enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_LC3; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_LDAC; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_LHDC; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_LHDC_LL; - enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_MAT; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_MAT_1_0; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_MAT_2_0; enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_MAT_2_1; @@ -236,13 +228,6 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioFormat AUDIO_FORMAT_WMA_PRO; } - public enum AudioGainMode { - method public String getRawName(); - enum_constant public static final audio.policy.configuration.V7_0.AudioGainMode AUDIO_GAIN_MODE_CHANNELS; - enum_constant public static final audio.policy.configuration.V7_0.AudioGainMode AUDIO_GAIN_MODE_JOINT; - enum_constant public static final audio.policy.configuration.V7_0.AudioGainMode AUDIO_GAIN_MODE_RAMP; - } - public enum AudioInOutFlag { method public String getRawName(); enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_DIRECT; @@ -250,7 +235,6 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_HW_AV_SYNC; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_HW_HOTWORD; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_MMAP_NOIRQ; - enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_NONE; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_RAW; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_SYNC; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_INPUT_FLAG_VOIP_TX; @@ -263,7 +247,6 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_IEC958_NONAUDIO; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_INCALL_MUSIC; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_MMAP_NOIRQ; - enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_NONE; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_NON_BLOCKING; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_PRIMARY; enum_constant public static final audio.policy.configuration.V7_0.AudioInOutFlag AUDIO_OUTPUT_FLAG_RAW; @@ -312,6 +295,8 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_ENFORCED_AUDIBLE; enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_MUSIC; enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_NOTIFICATION; + enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_PATCH; + enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_REROUTING; enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_RING; enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_SYSTEM; enum_constant public static final audio.policy.configuration.V7_0.AudioStreamType AUDIO_STREAM_TTS; @@ -379,6 +364,13 @@ package audio.policy.configuration.V7_0 { enum_constant public static final audio.policy.configuration.V7_0.EngineSuffix configurable; } + public enum GainMode { + method public String getRawName(); + enum_constant public static final audio.policy.configuration.V7_0.GainMode AUDIO_GAIN_MODE_CHANNELS; + enum_constant public static final audio.policy.configuration.V7_0.GainMode AUDIO_GAIN_MODE_JOINT; + enum_constant public static final audio.policy.configuration.V7_0.GainMode AUDIO_GAIN_MODE_RAMP; + } + public class Gains { ctor public Gains(); method public java.util.List getGain(); @@ -392,7 +384,7 @@ package audio.policy.configuration.V7_0 { method public int getMaxValueMB(); method public int getMinRampMs(); method public int getMinValueMB(); - method public java.util.List getMode(); + method public audio.policy.configuration.V7_0.GainMode getMode(); method public String getName(); method public int getStepValueMB(); method public boolean getUseForVolume(); @@ -402,7 +394,7 @@ package audio.policy.configuration.V7_0 { method public void setMaxValueMB(int); method public void setMinRampMs(int); method public void setMinValueMB(int); - method public void setMode(java.util.List); + method public void setMode(audio.policy.configuration.V7_0.GainMode); method public void setName(String); method public void setStepValueMB(int); method public void setUseForVolume(boolean); diff --git a/audio/7.0/config/audio_policy_configuration.xsd b/audio/7.0/config/audio_policy_configuration.xsd index 6604bb6e02..20fe02002e 100644 --- a/audio/7.0/config/audio_policy_configuration.xsd +++ b/audio/7.0/config/audio_policy_configuration.xsd @@ -159,13 +159,9 @@ The flags indicate suggested stream attributes supported by the profile. - Use of AUDIO_{INPUT|OUTPUT}_FLAG_NONE in the XML file isn't required - as empty flag lists are allowed. However these constants are useful for - representing an empty enum value. - @@ -181,7 +177,6 @@ - @@ -256,8 +251,8 @@ - + @@ -276,8 +271,6 @@ - - @@ -286,8 +279,8 @@ - + @@ -309,7 +302,6 @@ - @@ -329,6 +321,7 @@ + @@ -349,14 +342,22 @@ - + + + + + + + + + + + - - @@ -376,26 +377,17 @@ - - - - - - - - - - - - + + + @@ -405,7 +397,6 @@ - @@ -474,13 +465,9 @@ - - - - @@ -551,27 +538,19 @@ - + - - - - - - - - - + @@ -689,6 +668,8 @@ + + diff --git a/audio/common/7.0/enums/include/audio_policy_configuration_V7_0-enums.h b/audio/common/7.0/enums/include/audio_policy_configuration_V7_0-enums.h index cedcab3cc2..d5fedce100 100644 --- a/audio/common/7.0/enums/include/audio_policy_configuration_V7_0-enums.h +++ b/audio/common/7.0/enums/include/audio_policy_configuration_V7_0-enums.h @@ -25,8 +25,6 @@ namespace audio::policy::configuration::V7_0 { static inline size_t getChannelCount(AudioChannelMask mask) { switch (mask) { - case AudioChannelMask::AUDIO_CHANNEL_NONE: - return 0; case AudioChannelMask::AUDIO_CHANNEL_OUT_MONO: case AudioChannelMask::AUDIO_CHANNEL_IN_MONO: case AudioChannelMask::AUDIO_CHANNEL_INDEX_MASK_1: @@ -44,12 +42,9 @@ static inline size_t getChannelCount(AudioChannelMask mask) { case AudioChannelMask::AUDIO_CHANNEL_OUT_2POINT1: case AudioChannelMask::AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A: case AudioChannelMask::AUDIO_CHANNEL_OUT_MONO_HAPTIC_AB: - case AudioChannelMask::AUDIO_CHANNEL_OUT_TRI: - case AudioChannelMask::AUDIO_CHANNEL_OUT_TRI_BACK: case AudioChannelMask::AUDIO_CHANNEL_INDEX_MASK_3: return 3; case AudioChannelMask::AUDIO_CHANNEL_OUT_2POINT0POINT2: - case AudioChannelMask::AUDIO_CHANNEL_OUT_3POINT1: case AudioChannelMask::AUDIO_CHANNEL_OUT_QUAD: case AudioChannelMask::AUDIO_CHANNEL_OUT_QUAD_BACK: case AudioChannelMask::AUDIO_CHANNEL_OUT_QUAD_SIDE: @@ -163,8 +158,6 @@ static inline bool isOutputDevice(AudioDevice device) { case AudioDevice::AUDIO_DEVICE_OUT_USB_HEADSET: case AudioDevice::AUDIO_DEVICE_OUT_HEARING_AID: case AudioDevice::AUDIO_DEVICE_OUT_ECHO_CANCELLER: - case AudioDevice::AUDIO_DEVICE_OUT_BLE_HEADSET: - case AudioDevice::AUDIO_DEVICE_OUT_BLE_SPEAKER: case AudioDevice::AUDIO_DEVICE_OUT_DEFAULT: case AudioDevice::AUDIO_DEVICE_OUT_STUB: return true; @@ -196,7 +189,6 @@ static inline bool isOutputDevice(AudioDevice device) { case AudioDevice::AUDIO_DEVICE_IN_BLUETOOTH_BLE: case AudioDevice::AUDIO_DEVICE_IN_HDMI_ARC: case AudioDevice::AUDIO_DEVICE_IN_ECHO_REFERENCE: - case AudioDevice::AUDIO_DEVICE_IN_BLE_HEADSET: case AudioDevice::AUDIO_DEVICE_IN_DEFAULT: case AudioDevice::AUDIO_DEVICE_IN_STUB: return false; diff --git a/audio/common/7.0/types.hal b/audio/common/7.0/types.hal index 0d0fa7e91c..31c7388329 100644 --- a/audio/common/7.0/types.hal +++ b/audio/common/7.0/types.hal @@ -106,8 +106,6 @@ typedef string AudioFormat; /** * Audio channel mask indicates presence of particular channels. - * Note that every value is already a mask comprised of individual - * channels. * See 'audioChannelMask' in audio_policy_configuration.xsd for the * list of allowed values. */ @@ -129,8 +127,13 @@ struct AudioProfile { AudioFormat format; /** List of the sample rates (in Hz) supported by the profile. */ vec sampleRates; - /** List of channel masks supported by the profile. */ - vec channelMasks; + /** + * List of channel masks supported by the profile. Every subvector might be + * comprised of several individual channel mask entries for non-traditional + * channel masks, e.g. a combination "OUT_FRONT_LEFT,OUT_FRONT_CENTER" which + * doesn't have a corresponding predefined channel mask. + */ + vec> channelMasks; }; /** @@ -296,18 +299,21 @@ struct SinkMetadata { /** * Type of gain control exposed by an audio port. - * See 'audioGainMode' in audio_policy_configuration.xsd for the - * list of allowed values. */ -typedef string AudioGainMode; +@export(name="", value_prefix="AUDIO_GAIN_MODE_") +enum AudioGainMode : uint32_t { + JOINT = 0x1, // supports joint channel gain control + CHANNELS = 0x2, // supports separate channel gain control + RAMP = 0x4 // supports gain ramps +}; /** * An audio_gain struct is a representation of a gain stage. * A gain stage is always attached to an audio port. */ struct AudioGain { - vec mode; // modes of operation - AudioChannelMask channelMask; // channels which gain can be controlled + bitfield mode; + vec channelMask; // channels which gain an be controlled int32_t minValue; // minimum gain value in millibels int32_t maxValue; // maximum gain value in millibels int32_t defaultValue; // default gain value in millibels @@ -322,8 +328,8 @@ struct AudioGain { */ struct AudioGainConfig { int32_t index; // index of the corresponding AudioGain in AudioPort.gains - vec mode; // modes of operation - AudioChannelMask channelMask; // channels which gain value follows + AudioGainMode mode; + vec channelMask; // channels which gain value follows /** * Gain values in millibels for each channel ordered from LSb to MSb in * channel mask. The number of values is 1 in joint mode or diff --git a/audio/core/all-versions/vts/functional/AudioPrimaryHidlHalTest.h b/audio/core/all-versions/vts/functional/AudioPrimaryHidlHalTest.h index 0a9d5ee166..5e4b414d29 100644 --- a/audio/core/all-versions/vts/functional/AudioPrimaryHidlHalTest.h +++ b/audio/core/all-versions/vts/functional/AudioPrimaryHidlHalTest.h @@ -1150,7 +1150,7 @@ static void testSetAudioProperties(IStream* stream) { for (const auto& channelMask : profile.channelMasks) { AudioConfigBase config{.format = profile.format, .sampleRateHz = sampleRate, - .channelMask = {{channelMask}}}; + .channelMask = channelMask}; auto ret = stream->setAudioProperties(config); EXPECT_TRUE(ret.isOk()); EXPECT_EQ(Result::OK, ret) << config.format << "; " << config.sampleRateHz << "; "