From 2287a249a696c707c5f54d10706b3417d5d23f05 Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Mon, 19 Oct 2020 21:27:14 +0000 Subject: [PATCH] Make audio*-base.h files autogenerated again Major change: audio-base.h is generated from "core" types.hal, new file audio_common-base.h is generated from "common" types.hal. In order to be able to add system-only constants to generated enums, the latter are made anonymous, values got "HAL_" prefix. Then in system/audio.h a full enum is constructed. Removed audio_drain_type_t from exported, as it belongs to libhardware only. Added missing enums that were introduced at the system side only in Android R. Bug: 122858783 Test: m Change-Id: I8c017912395a03beacea077fd562fae2329ad975 Merged-In: I8c017912395a03beacea077fd562fae2329ad975 --- audio/7.0/types.hal | 3 +-- audio/common/7.0/types.hal | 24 ++++++++++++++++++- audio/core/all-versions/default/StreamOut.cpp | 8 +++---- update-base-files.sh | 7 ++++-- 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/audio/7.0/types.hal b/audio/7.0/types.hal index 4a9e28915a..7c050c106a 100644 --- a/audio/7.0/types.hal +++ b/audio/7.0/types.hal @@ -30,7 +30,6 @@ enum Result : int32_t { NOT_SUPPORTED }; -@export(name="audio_drain_type_t", value_prefix="AUDIO_DRAIN_") enum AudioDrain : int32_t { /** drain() returns when all data has been played. */ ALL, @@ -315,7 +314,7 @@ enum TimestretchMode : int32_t { * Behavior when the values for speed and / or pitch are out * of applicable range. */ -@export(name="audio_timestretch_fallback_mode_t", value_prefix="AUDIO_TIMESTRETCH_FALLBACK_") +@export(name="", value_prefix="HAL_AUDIO_TIMESTRETCH_FALLBACK_") enum TimestretchFallbackMode : int32_t { // Need to be in sync with AUDIO_FALLBACK_MODE_* constants in // frameworks/base/media/java/android/media/PlaybackParams.java diff --git a/audio/common/7.0/types.hal b/audio/common/7.0/types.hal index 0d0fa7e91c..631d5240a2 100644 --- a/audio/common/7.0/types.hal +++ b/audio/common/7.0/types.hal @@ -78,6 +78,7 @@ typedef string AudioSource; */ typedef int32_t AudioSession; +@export(name="", value_prefix="HAL_AUDIO_SESSION_") enum AudioSessionConsts : int32_t { /** * Session for effects attached to a particular sink or source audio device @@ -137,7 +138,7 @@ struct AudioProfile { * Major modes for a mobile device. The current mode setting affects audio * routing. */ -@export(name="audio_mode_t", value_prefix="AUDIO_MODE_") +@export(name="", value_prefix="HAL_AUDIO_MODE_") enum AudioMode : int32_t { NORMAL = 0, RINGTONE = 1, @@ -221,6 +222,27 @@ enum AudioEncapsulationMode : int32_t { HANDLE = 2, }; +/** + * Enumeration of metadata types permitted for use by + * encapsulation mode audio streams. + */ +@export(name="audio_encapsulation_metadata_type_t", value_prefix="AUDIO_ENCAPSULATION_METADATA_TYPE_") +enum AudioEncapsulationMetadataType : int32_t { + /** + * No metadata. + */ + NONE = 0, + /** + * Encapsulation metadata type for framework tuner information. + */ + FRAMEWORK_TUNER = 1, + /** + * Encapsulation metadata type for DVB AD descriptor. + * This metadata is formatted per ETSI TS 101 154 Table E.1: AD_descriptor. + */ + DVB_AD_DESCRIPTOR = 2, +}; + /** * Additional information about the stream passed to hardware decoders. */ diff --git a/audio/core/all-versions/default/StreamOut.cpp b/audio/core/all-versions/default/StreamOut.cpp index 1519c48e12..007eb4564a 100644 --- a/audio/core/all-versions/default/StreamOut.cpp +++ b/audio/core/all-versions/default/StreamOut.cpp @@ -496,11 +496,11 @@ Return StreamOut::supportsDrain() { } Return StreamOut::drain(AudioDrain type) { + audio_drain_type_t halDrainType = + type == AudioDrain::EARLY_NOTIFY ? AUDIO_DRAIN_EARLY_NOTIFY : AUDIO_DRAIN_ALL; return mStream->drain != NULL - ? Stream::analyzeStatus( - "drain", - mStream->drain(mStream, static_cast(type)), - {ENOSYS} /*ignore*/) + ? Stream::analyzeStatus("drain", mStream->drain(mStream, halDrainType), + {ENOSYS} /*ignore*/) : Result::NOT_SUPPORTED; } diff --git a/update-base-files.sh b/update-base-files.sh index daaa53017b..d01847dd9e 100755 --- a/update-base-files.sh +++ b/update-base-files.sh @@ -41,9 +41,12 @@ hidl-gen $options \ android.hardware.graphics.common@1.2 # system/media +hidl-gen $options \ + -o $ANDROID_BUILD_TOP/system/media/audio/include/system/audio_common-base.h \ + android.hardware.audio.common@7.0 hidl-gen $options \ -o $ANDROID_BUILD_TOP/system/media/audio/include/system/audio-base.h \ - android.hardware.audio.common@2.0 + android.hardware.audio@7.0 hidl-gen $options \ -o $ANDROID_BUILD_TOP/system/media/audio/include/system/audio_effect-base.h \ - android.hardware.audio.effect@2.0 + android.hardware.audio.effect@7.0