Merge "[VTS] Add interface version check function" into udc-dev
diff --git a/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/current/android/hardware/audio/core/sounddose/ISoundDose.aidl b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/current/android/hardware/audio/core/sounddose/ISoundDose.aidl
index 3b5d2d0..5800091 100644
--- a/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/current/android/hardware/audio/core/sounddose/ISoundDose.aidl
+++ b/audio/aidl/aidl_api/android.hardware.audio.core.sounddose/current/android/hardware/audio/core/sounddose/ISoundDose.aidl
@@ -34,8 +34,8 @@
package android.hardware.audio.core.sounddose;
@VintfStability
interface ISoundDose {
- void setOutputRs2(float rs2ValueDbA);
- float getOutputRs2();
+ void setOutputRs2UpperBound(float rs2ValueDbA);
+ float getOutputRs2UpperBound();
void registerSoundDoseCallback(in android.hardware.audio.core.sounddose.ISoundDose.IHalSoundDoseCallback callback);
const int DEFAULT_MAX_RS2 = 100;
const int MIN_RS2 = 80;
diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl
index 0baac3d..82dae97 100644
--- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl
+++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Descriptor.aidl
@@ -36,20 +36,22 @@
parcelable Descriptor {
android.hardware.audio.effect.Descriptor.Common common;
android.hardware.audio.effect.Capability capability;
- const String EFFECT_TYPE_UUID_ENV_REVERB = "c2e5d5f0-94bd-4763-9cac-4e234d06839e";
- const String EFFECT_TYPE_UUID_PRESET_REVERB = "47382d60-ddd8-11db-bf3a-0002a5d5c51b";
- const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b";
- const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b";
- const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b";
const String EFFECT_TYPE_UUID_AGC1 = "0a8abfe0-654c-11e0-ba26-0002a5d5c51b";
const String EFFECT_TYPE_UUID_AGC2 = "ae3c653b-be18-4ab8-8938-418f0a7f06ac";
- const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b";
- const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b";
- const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1";
+ const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_DOWNMIX = "381e49cc-a858-4aa2-87f6-e8388e7601b2";
const String EFFECT_TYPE_UUID_DYNAMICS_PROCESSING = "7261676f-6d75-7369-6364-28e2fd3ac39e";
+ const String EFFECT_TYPE_UUID_ENV_REVERB = "c2e5d5f0-94bd-4763-9cac-4e234d06839e";
+ const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b";
const String EFFECT_TYPE_UUID_HAPTIC_GENERATOR = "1411e6d6-aecd-4021-a1cf-a6aceb0d71e5";
+ const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1";
+ const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_PRESET_REVERB = "47382d60-ddd8-11db-bf3a-0002a5d5c51b";
const String EFFECT_TYPE_UUID_SPATIALIZER = "ccd4cf09-a79d-46c2-9aae-06a1698d6c8f";
- const String EFFECT_TYPE_UUID_VOLUME = "09e8ede0-ddde-11db-b4f6-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_VISUALIZER = "d069d9e0-8329-11df-9168-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_VOLUME = "fa81a2b8-588b-11ed-9b6a-0242ac120002";
@VintfStability
parcelable Identity {
android.media.audio.common.AudioUuid type;
diff --git a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl
index b50a2f1..0422bd9 100644
--- a/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl
+++ b/audio/aidl/aidl_api/android.hardware.audio.effect/current/android/hardware/audio/effect/Parameter.aidl
@@ -38,6 +38,7 @@
android.media.audio.common.AudioDeviceDescription[] deviceDescription;
android.media.audio.common.AudioMode mode;
android.media.audio.common.AudioSource source;
+ boolean offload;
android.hardware.audio.effect.Parameter.VolumeStereo volumeStereo;
android.hardware.audio.effect.Parameter.Specific specific;
@VintfStability
diff --git a/audio/aidl/android/hardware/audio/core/sounddose/ISoundDose.aidl b/audio/aidl/android/hardware/audio/core/sounddose/ISoundDose.aidl
index 953ab62..b442ac5 100644
--- a/audio/aidl/android/hardware/audio/core/sounddose/ISoundDose.aidl
+++ b/audio/aidl/android/hardware/audio/core/sounddose/ISoundDose.aidl
@@ -35,21 +35,21 @@
const int MIN_RS2 = 80;
/**
- * Sets the RS2 value used for momentary exposure warnings. Default value is
+ * Sets the RS2 upper bound used for momentary exposure warnings. Default value is
* DEFAULT_MAX_RS2 as specified in IEC62368-1 3rd edition.
*
- * @param rs2ValueDbA custom RS2 value to use. Must not be higher than DEFAULT_MAX_RS2
+ * @param rs2ValueDbA custom RS2 upper bound to use
* @throws EX_ILLEGAL_ARGUMENT if rs2ValueDbA is greater than DEFAULT_MAX_RS2 or lower
- * than 80dBA
+ * than MIN_RS2
*/
- void setOutputRs2(float rs2ValueDbA);
+ void setOutputRs2UpperBound(float rs2ValueDbA);
/**
- * Gets the RS2 value used for momentary exposure warnings.
+ * Gets the RS2 upper bound used for momentary exposure warnings.
*
- * @return the RS2 value in dBA
+ * @return the RS2 upper bound in dBA
*/
- float getOutputRs2();
+ float getOutputRs2UpperBound();
/**
* Registers the HAL callback for sound dose computation. If sound dose is supported
@@ -68,9 +68,9 @@
@VintfStability
oneway interface IHalSoundDoseCallback {
/**
- * Called whenever the current MEL value exceeds the set RS2 value.
+ * Called whenever the current MEL value exceeds the set RS2 upper bound.
*
- * @param currentDbA the current MEL value which exceeds the RS2 value
+ * @param currentDbA the current MEL value which exceeds the RS2 upper bound
* @param audioDevice the audio device where the MEL exposure warning was recorded
*/
void onMomentaryExposureWarning(float currentDbA, in AudioDevice audioDevice);
@@ -78,14 +78,15 @@
@VintfStability
parcelable MelRecord {
/**
- * Array of continuously recorded MEL values >= RS1 (1 per second).
+ * Array of continuously recorded MEL values >= MIN_RS2 (1 per second).
* First value in the array was recorded at 'timestamp'.
*/
float[] melValues;
/**
- * Corresponds to the time in seconds when the first MEL entry in melValues
- * was recorded. The timestamp values have to be consistent throughout all
- * audio ports, equal timestamp values will be aggregated.
+ * Corresponds to the time in seconds, as reported by CLOCK_MONOTONIC, when
+ * the first MEL entry in melValues was recorded. The timestamp values have
+ * to be consistent throughout all audio ports, equal timestamp values will
+ * be aggregated.
*/
long timestamp;
}
diff --git a/audio/aidl/android/hardware/audio/effect/Descriptor.aidl b/audio/aidl/android/hardware/audio/effect/Descriptor.aidl
index 01ca1c6..2fbc401 100644
--- a/audio/aidl/android/hardware/audio/effect/Descriptor.aidl
+++ b/audio/aidl/android/hardware/audio/effect/Descriptor.aidl
@@ -37,25 +37,10 @@
* UUID for effect types, these definitions are in sync with SDK, see @c AudioEffect.java.
*/
/**
- * UUID for environmental reverberation effect type.
+ * UUID for Acoustic Echo Canceler (AEC) type.
*/
- const String EFFECT_TYPE_UUID_ENV_REVERB = "c2e5d5f0-94bd-4763-9cac-4e234d06839e";
- /**
- * UUID for preset reverberation effect type.
- */
- const String EFFECT_TYPE_UUID_PRESET_REVERB = "47382d60-ddd8-11db-bf3a-0002a5d5c51b";
- /**
- * UUID for equalizer effect type.
- */
- const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b";
- /**
- * UUID for bass boost effect type.
- */
- const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b";
- /**
- * UUID for virtualizer effect type.
- */
- const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b";
+
/**
* UUID for Automatic Gain Control V1 (AGC1) type.
*/
@@ -65,33 +50,57 @@
*/
const String EFFECT_TYPE_UUID_AGC2 = "ae3c653b-be18-4ab8-8938-418f0a7f06ac";
/**
- * UUID for Acoustic Echo Canceler (AEC) type.
+ * UUID for bass boost effect type.
*/
- const String EFFECT_TYPE_UUID_AEC = "7b491460-8d4d-11e0-bd61-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_BASS_BOOST = "0634f220-ddd4-11db-a0fc-0002a5d5c51b";
/**
- * UUID for Noise Suppressor (NS) type.
+ * UUID for downmix effect type.
*/
- const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b";
- /**
- * UUID for Loudness Enhancer type.
- */
- const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1";
+ const String EFFECT_TYPE_UUID_DOWNMIX = "381e49cc-a858-4aa2-87f6-e8388e7601b2";
/**
* UUID for Dynamics Processing type.
*/
const String EFFECT_TYPE_UUID_DYNAMICS_PROCESSING = "7261676f-6d75-7369-6364-28e2fd3ac39e";
/**
+ * UUID for environmental reverberation effect type.
+ */
+ const String EFFECT_TYPE_UUID_ENV_REVERB = "c2e5d5f0-94bd-4763-9cac-4e234d06839e";
+ /**
+ * UUID for equalizer effect type.
+ */
+ const String EFFECT_TYPE_UUID_EQUALIZER = "0bed4300-ddd6-11db-8f34-0002a5d5c51b";
+ /**
* UUID for Haptic Generator type.
*/
const String EFFECT_TYPE_UUID_HAPTIC_GENERATOR = "1411e6d6-aecd-4021-a1cf-a6aceb0d71e5";
/**
+ * UUID for Loudness Enhancer type.
+ */
+ const String EFFECT_TYPE_UUID_LOUDNESS_ENHANCER = "fe3199be-aed0-413f-87bb-11260eb63cf1";
+ /**
+ * UUID for Noise Suppressor (NS) type.
+ */
+ const String EFFECT_TYPE_UUID_NS = "58b4b260-8e06-11e0-aa8e-0002a5d5c51b";
+ /**
+ * UUID for preset reverberation effect type.
+ */
+ const String EFFECT_TYPE_UUID_PRESET_REVERB = "47382d60-ddd8-11db-bf3a-0002a5d5c51b";
+ /**
* UUID for Spatializer type.
*/
const String EFFECT_TYPE_UUID_SPATIALIZER = "ccd4cf09-a79d-46c2-9aae-06a1698d6c8f";
/**
- * UUID for Volume type. The volume effect is used for automated tests only.
+ * UUID for virtualizer effect type.
*/
- const String EFFECT_TYPE_UUID_VOLUME = "09e8ede0-ddde-11db-b4f6-0002a5d5c51b";
+ const String EFFECT_TYPE_UUID_VIRTUALIZER = "37cc2c00-dddd-11db-8577-0002a5d5c51b";
+ /**
+ * UUID for visualizer effect type.
+ */
+ const String EFFECT_TYPE_UUID_VISUALIZER = "d069d9e0-8329-11df-9168-0002a5d5c51b";
+ /**
+ * UUID for Volume effect type.
+ */
+ const String EFFECT_TYPE_UUID_VOLUME = "fa81a2b8-588b-11ed-9b6a-0242ac120002";
/**
* This structure completely identifies an effect implementation.
diff --git a/audio/aidl/android/hardware/audio/effect/Flags.aidl b/audio/aidl/android/hardware/audio/effect/Flags.aidl
index 1612234..28685c3 100644
--- a/audio/aidl/android/hardware/audio/effect/Flags.aidl
+++ b/audio/aidl/android/hardware/audio/effect/Flags.aidl
@@ -112,31 +112,31 @@
HardwareAccelerator hwAcceleratorMode = HardwareAccelerator.NONE;
/**
- * Effect instance set this flag to true if it requires update on if the playback thread the
- * effect attached to is offloaded or not. In this case the framework must call
+ * Effect instance sets this flag to true if it requires updates on whether the playback thread
+ * the effect is attached to is offloaded or not. In this case the framework must call
* IEffect.setParameter(Parameter.offload) to notify effect instance when playback thread
* offload changes.
*/
boolean offloadIndication;
/**
- * Effect instance set this flag to true if it requires device change update. In this case the
+ * Effect instance sets this flag to true if it requires device change update. In this case the
* framework must call IEffect.setParameter(Parameter.device) to notify effect instance when the
* device changes.
*/
boolean deviceIndication;
/**
- * Effect instance set this flag to true if it requires audio mode change update. In this case
+ * Effect instance sets this flag to true if it requires audio mode change update. In this case
* the framework must call IEffect.setParameter(Parameter.mode) to notify effect instance when
* the audio mode changes.
*/
boolean audioModeIndication;
/**
- * Effect instance set this flag to true if it requires audio source change update. In this case
- * the framework must call IEffect.setParameter(Parameter.source) to notify effect instance when
- * the audio source changes.
+ * Effect instance sets this flag to true if it requires audio source change update. In this
+ * case the framework must call IEffect.setParameter(Parameter.source) to notify effect instance
+ * when the audio source changes.
*/
boolean audioSourceIndication;
diff --git a/audio/aidl/android/hardware/audio/effect/Parameter.aidl b/audio/aidl/android/hardware/audio/effect/Parameter.aidl
index 229c621..0954055 100644
--- a/audio/aidl/android/hardware/audio/effect/Parameter.aidl
+++ b/audio/aidl/android/hardware/audio/effect/Parameter.aidl
@@ -135,11 +135,13 @@
* Effect must implement setParameter(deviceDescription) if Flags.deviceIndication set to true.
*/
AudioDeviceDescription[] deviceDescription;
+
/**
* Used by audio framework to set the audio mode to effect engine.
* Effect must implement setParameter(mode) if Flags.audioModeIndication set to true.
*/
AudioMode mode;
+
/**
* Used by audio framework to set the audio source to effect engine.
* Effect must implement setParameter(source) if Flags.audioSourceIndication set to true.
@@ -147,6 +149,12 @@
AudioSource source;
/**
+ * Used by audio framework to indicate whether the playback thread the effect is attached to is
+ * offloaded or not.
+ */
+ boolean offload;
+
+ /**
* The volume gain for left and right channel, left and right equals to same value if it's mono.
*/
@VintfStability
diff --git a/audio/aidl/default/Android.bp b/audio/aidl/default/Android.bp
index 8bacbb3..c9edae0 100644
--- a/audio/aidl/default/Android.bp
+++ b/audio/aidl/default/Android.bp
@@ -92,9 +92,6 @@
"audio_policy_configuration_aidl_default",
"audio_policy_engine_configuration_aidl_default",
],
- visibility: [
- ":__subpackages__",
- ],
}
cc_binary {
diff --git a/audio/aidl/default/EffectConfig.cpp b/audio/aidl/default/EffectConfig.cpp
index c030b7a..5a83fef 100644
--- a/audio/aidl/default/EffectConfig.cpp
+++ b/audio/aidl/default/EffectConfig.cpp
@@ -16,6 +16,7 @@
#define LOG_TAG "AHAL_EffectConfig"
#include <android-base/logging.h>
+#include <system/audio_effects/effect_uuid.h>
#include "effectFactory-impl/EffectConfig.h"
@@ -163,15 +164,53 @@
libraryUuid.name = name;
}
- const char* uuid = xml.Attribute("uuid");
- RETURN_VALUE_IF(!uuid, false, "noUuidAttribute");
- RETURN_VALUE_IF(!stringToUuid(uuid, &libraryUuid.uuid), false, "invalidUuidAttribute");
+ const char* uuidStr = xml.Attribute("uuid");
+ RETURN_VALUE_IF(!uuidStr, false, "noUuidAttribute");
+ libraryUuid.uuid = stringToUuid(uuidStr);
+ RETURN_VALUE_IF((libraryUuid.uuid == getEffectUuidZero()), false, "invalidUuidAttribute");
LOG(DEBUG) << __func__ << (isProxy ? " proxy " : libraryUuid.name) << " : "
<< libraryUuid.uuid.toString();
return true;
}
+bool EffectConfig::findUuid(const std::string& xmlEffectName, AudioUuid* uuid) {
+// Difference from EFFECT_TYPE_LIST_DEF, there could be multiple name mapping to same Effect Type
+#define EFFECT_XML_TYPE_LIST_DEF(V) \
+ V("acoustic_echo_canceler", AcousticEchoCanceler) \
+ V("automatic_gain_control_v1", AutomaticGainControlV1) \
+ V("automatic_gain_control_v2", AutomaticGainControlV2) \
+ V("bassboost", BassBoost) \
+ V("downmix", Downmix) \
+ V("dynamics_processing", DynamicsProcessing) \
+ V("equalizer", Equalizer) \
+ V("haptic_generator", HapticGenerator) \
+ V("loudness_enhancer", LoudnessEnhancer) \
+ V("env_reverb", EnvReverb) \
+ V("reverb_env_aux", EnvReverb) \
+ V("reverb_env_ins", EnvReverb) \
+ V("preset_reverb", PresetReverb) \
+ V("reverb_pre_aux", PresetReverb) \
+ V("reverb_pre_ins", PresetReverb) \
+ V("noise_suppression", NoiseSuppression) \
+ V("spatializer", Spatializer) \
+ V("virtualizer", Virtualizer) \
+ V("visualizer", Visualizer) \
+ V("volume", Volume)
+
+#define GENERATE_MAP_ENTRY_V(s, symbol) {s, &getEffectTypeUuid##symbol},
+
+ typedef const AudioUuid& (*UuidGetter)(void);
+ static const std::map<std::string, UuidGetter> uuidMap{
+ // std::make_pair("s", &getEffectTypeUuidExtension)};
+ {EFFECT_XML_TYPE_LIST_DEF(GENERATE_MAP_ENTRY_V)}};
+ if (auto it = uuidMap.find(xmlEffectName); it != uuidMap.end()) {
+ *uuid = (*it->second)();
+ return true;
+ }
+ return false;
+}
+
const char* EffectConfig::dump(const tinyxml2::XMLElement& element,
tinyxml2::XMLPrinter&& printer) const {
element.Accept(&printer);
diff --git a/audio/aidl/default/EffectFactory.cpp b/audio/aidl/default/EffectFactory.cpp
index 638fa7f..c1ac3f2 100644
--- a/audio/aidl/default/EffectFactory.cpp
+++ b/audio/aidl/default/EffectFactory.cpp
@@ -14,20 +14,19 @@
* limitations under the License.
*/
+#include <dlfcn.h>
#include <iterator>
#include <memory>
#include <tuple>
-#include "include/effect-impl/EffectTypes.h"
-#define LOG_TAG "AHAL_EffectFactory"
-#include <dlfcn.h>
#include <unordered_set>
+#define LOG_TAG "AHAL_EffectFactory"
#include <android-base/logging.h>
#include <android/binder_ibinder_platform.h>
+#include <system/audio_effects/effect_uuid.h>
#include <system/thread_defs.h>
#include "effect-impl/EffectTypes.h"
-#include "effect-impl/EffectUUID.h"
#include "effectFactory-impl/EffectFactory.h"
using aidl::android::media::audio::common::AudioUuid;
@@ -214,8 +213,8 @@
void Factory::loadEffectLibs() {
const auto& configEffectsMap = mConfig.getEffectsMap();
for (const auto& configEffects : configEffectsMap) {
- if (auto typeUuid = kUuidNameTypeMap.find(configEffects.first /* effect name */);
- typeUuid != kUuidNameTypeMap.end()) {
+ if (AudioUuid uuid;
+ EffectConfig::findUuid(configEffects.first /* xml effect name */, &uuid)) {
const auto& configLibs = configEffects.second;
std::optional<AudioUuid> proxyUuid;
if (configLibs.proxyLibrary.has_value()) {
@@ -223,7 +222,7 @@
proxyUuid = proxyLib.uuid;
}
for (const auto& configLib : configLibs.libraries) {
- createIdentityWithConfig(configLib, typeUuid->second, proxyUuid);
+ createIdentityWithConfig(configLib, uuid, proxyUuid);
}
} else {
LOG(ERROR) << __func__ << ": can not find type UUID for effect " << configEffects.first
diff --git a/audio/aidl/default/EffectImpl.cpp b/audio/aidl/default/EffectImpl.cpp
index e90fe35..da1ad11 100644
--- a/audio/aidl/default/EffectImpl.cpp
+++ b/audio/aidl/default/EffectImpl.cpp
@@ -40,7 +40,7 @@
ndk::ScopedAStatus EffectImpl::open(const Parameter::Common& common,
const std::optional<Parameter::Specific>& specific,
OpenEffectReturn* ret) {
- LOG(DEBUG) << __func__;
+ LOG(DEBUG) << getEffectName() << __func__;
// effect only support 32bits float
RETURN_IF(common.input.base.format.pcm != common.output.base.format.pcm ||
common.input.base.format.pcm != PcmType::FLOAT_32_BIT,
@@ -71,12 +71,12 @@
RETURN_IF(releaseContext() != RetCode::SUCCESS, EX_UNSUPPORTED_OPERATION,
"FailedToCreateWorker");
- LOG(DEBUG) << __func__;
+ LOG(DEBUG) << getEffectName() << __func__;
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus EffectImpl::setParameter(const Parameter& param) {
- LOG(DEBUG) << __func__ << " with: " << param.toString();
+ LOG(DEBUG) << getEffectName() << __func__ << " with: " << param.toString();
const auto tag = param.getTag();
switch (tag) {
@@ -91,7 +91,8 @@
return setParameterSpecific(param.get<Parameter::specific>());
}
default: {
- LOG(ERROR) << __func__ << " unsupportedParameterTag " << toString(tag);
+ LOG(ERROR) << getEffectName() << __func__ << " unsupportedParameterTag "
+ << toString(tag);
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
"ParameterNotSupported");
}
@@ -99,7 +100,7 @@
}
ndk::ScopedAStatus EffectImpl::getParameter(const Parameter::Id& id, Parameter* param) {
- LOG(DEBUG) << __func__ << id.toString();
+ LOG(DEBUG) << getEffectName() << __func__ << id.toString();
auto tag = id.getTag();
switch (tag) {
case Parameter::Id::commonTag: {
@@ -116,7 +117,7 @@
break;
}
}
- LOG(DEBUG) << __func__ << param->toString();
+ LOG(DEBUG) << getEffectName() << __func__ << param->toString();
return ndk::ScopedAStatus::ok();
}
@@ -149,7 +150,8 @@
EX_ILLEGAL_ARGUMENT, "setVolumeStereoFailed");
break;
default: {
- LOG(ERROR) << __func__ << " unsupportedParameterTag " << toString(tag);
+ LOG(ERROR) << getEffectName() << __func__ << " unsupportedParameterTag "
+ << toString(tag);
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
"commonParamNotSupported");
}
@@ -183,7 +185,7 @@
break;
}
default: {
- LOG(DEBUG) << __func__ << " unsupported tag " << toString(tag);
+ LOG(DEBUG) << getEffectName() << __func__ << " unsupported tag " << toString(tag);
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
"tagNotSupported");
}
@@ -198,8 +200,8 @@
ndk::ScopedAStatus EffectImpl::command(CommandId command) {
RETURN_IF(mState == State::INIT, EX_ILLEGAL_STATE, "CommandStateError");
- LOG(DEBUG) << __func__ << ": receive command: " << toString(command) << " at state "
- << toString(mState);
+ LOG(DEBUG) << getEffectName() << __func__ << ": receive command: " << toString(command)
+ << " at state " << toString(mState);
switch (command) {
case CommandId::START:
@@ -217,11 +219,11 @@
mState = State::IDLE;
break;
default:
- LOG(ERROR) << __func__ << " instance still processing";
+ LOG(ERROR) << getEffectName() << __func__ << " instance still processing";
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
"CommandIdNotSupported");
}
- LOG(DEBUG) << __func__ << " transfer to state: " << toString(mState);
+ LOG(DEBUG) << getEffectName() << __func__ << " transfer to state: " << toString(mState);
return ndk::ScopedAStatus::ok();
}
@@ -252,7 +254,7 @@
for (int i = 0; i < samples; i++) {
*out++ = *in++;
}
- LOG(DEBUG) << __func__ << " done processing " << samples << " samples";
+ LOG(DEBUG) << getEffectName() << __func__ << " done processing " << samples << " samples";
return {STATUS_OK, samples, samples};
}
diff --git a/audio/aidl/default/EffectThread.cpp b/audio/aidl/default/EffectThread.cpp
index 4f8fb3c..844127d 100644
--- a/audio/aidl/default/EffectThread.cpp
+++ b/audio/aidl/default/EffectThread.cpp
@@ -36,7 +36,7 @@
RetCode EffectThread::createThread(std::shared_ptr<EffectContext> context, const std::string& name,
int priority, int sleepUs /* kSleepTimeUs */) {
if (mThread.joinable()) {
- LOG(WARNING) << __func__ << " thread already created, no-op";
+ LOG(WARNING) << "-" << mName << "-" << __func__ << " thread already created, no-op";
return RetCode::SUCCESS;
}
mName = name;
@@ -47,7 +47,7 @@
mThreadContext = std::move(context);
}
mThread = std::thread(&EffectThread::threadLoop, this);
- LOG(DEBUG) << __func__ << " " << name << " priority " << mPriority << " done";
+ LOG(DEBUG) << "-" << mName << "-" << __func__ << " priority " << mPriority << " done";
return RetCode::SUCCESS;
}
@@ -66,7 +66,7 @@
std::lock_guard lg(mThreadMutex);
mThreadContext.reset();
}
- LOG(DEBUG) << __func__ << " done";
+ LOG(DEBUG) << "-" << mName << "-" << __func__ << " done";
return RetCode::SUCCESS;
}
@@ -80,21 +80,23 @@
RetCode EffectThread::handleStartStop(bool stop) {
if (!mThread.joinable()) {
- LOG(ERROR) << __func__ << " thread already destroyed";
+ LOG(ERROR) << "-" << mName << "-" << __func__ << ": "
+ << " thread already destroyed";
return RetCode::ERROR_THREAD;
}
{
std::lock_guard lg(mThreadMutex);
if (stop == mStop) {
- LOG(WARNING) << __func__ << " already " << (stop ? "stop" : "start");
+ LOG(WARNING) << "-" << mName << "-" << __func__ << ": "
+ << " already " << (stop ? "stop" : "start");
return RetCode::SUCCESS;
}
mStop = stop;
}
mCv.notify_one();
- LOG(DEBUG) << (stop ? "stop done" : "start done");
+ LOG(DEBUG) << ": " << mName << (stop ? " stop done" : " start done");
return RetCode::SUCCESS;
}
@@ -124,16 +126,18 @@
auto readSamples = inputMQ->availableToRead(), writeSamples = outputMQ->availableToWrite();
if (readSamples && writeSamples) {
auto processSamples = std::min(readSamples, writeSamples);
- LOG(DEBUG) << __func__ << " available to read " << readSamples << " available to write "
- << writeSamples << " process " << processSamples;
+ LOG(DEBUG) << "-" << mName << "-" << __func__ << ": "
+ << " available to read " << readSamples << " available to write " << writeSamples
+ << " process " << processSamples;
inputMQ->read(buffer, processSamples);
IEffect::Status status = effectProcessImpl(buffer, buffer, processSamples);
outputMQ->write(buffer, status.fmqProduced);
statusMQ->writeBlocking(&status, 1);
- LOG(DEBUG) << __func__ << " done processing, effect consumed " << status.fmqConsumed
- << " produced " << status.fmqProduced;
+ LOG(DEBUG) << "-" << mName << "-" << __func__ << ": "
+ << " done processing, effect consumed " << status.fmqConsumed << " produced "
+ << status.fmqProduced;
} else {
usleep(mSleepTimeUs);
}
diff --git a/audio/aidl/default/SoundDose.cpp b/audio/aidl/default/SoundDose.cpp
index be9f93a..f12ce5d 100644
--- a/audio/aidl/default/SoundDose.cpp
+++ b/audio/aidl/default/SoundDose.cpp
@@ -22,7 +22,7 @@
namespace aidl::android::hardware::audio::core::sounddose {
-ndk::ScopedAStatus SoundDose::setOutputRs2(float in_rs2ValueDbA) {
+ndk::ScopedAStatus SoundDose::setOutputRs2UpperBound(float in_rs2ValueDbA) {
if (in_rs2ValueDbA < MIN_RS2 || in_rs2ValueDbA > DEFAULT_MAX_RS2) {
LOG(ERROR) << __func__ << ": RS2 value is invalid: " << in_rs2ValueDbA;
return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
@@ -32,7 +32,7 @@
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus SoundDose::getOutputRs2(float* _aidl_return) {
+ndk::ScopedAStatus SoundDose::getOutputRs2UpperBound(float* _aidl_return) {
*_aidl_return = mRs2Value;
LOG(DEBUG) << __func__ << ": returning " << *_aidl_return;
return ndk::ScopedAStatus::ok();
diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp
index 561f9a3..63a014a 100644
--- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp
+++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.cpp
@@ -22,19 +22,21 @@
#define LOG_TAG "AHAL_AcousticEchoCancelerSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "AcousticEchoCancelerSw.h"
using aidl::android::hardware::audio::effect::AcousticEchoCancelerSw;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidAcousticEchoCancelerSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidAcousticEchoCanceler;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kAcousticEchoCancelerSwImplUUID;
using aidl::android::hardware::audio::effect::Range;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kAcousticEchoCancelerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidAcousticEchoCancelerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -49,7 +51,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kAcousticEchoCancelerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidAcousticEchoCancelerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -69,8 +71,8 @@
const Capability AcousticEchoCancelerSw::kCapability = {.range = AcousticEchoCancelerSw::kRanges};
const Descriptor AcousticEchoCancelerSw::kDescriptor = {
- .common = {.id = {.type = kAcousticEchoCancelerTypeUUID,
- .uuid = kAcousticEchoCancelerSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidAcousticEchoCanceler(),
+ .uuid = getEffectImplUuidAcousticEchoCancelerSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h
index 753207d..73cf42b 100644
--- a/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h
+++ b/audio/aidl/default/acousticEchoCanceler/AcousticEchoCancelerSw.h
@@ -23,7 +23,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp
index 39290b4..ce10ae1 100644
--- a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp
+++ b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.cpp
@@ -17,18 +17,20 @@
#define LOG_TAG "AHAL_AutomaticGainControlV1Sw"
#include <android-base/logging.h>
+#include <system/audio_effects/effect_uuid.h>
#include "AutomaticGainControlV1Sw.h"
using aidl::android::hardware::audio::effect::AutomaticGainControlV1Sw;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidAutomaticGainControlV1Sw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidAutomaticGainControlV1;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kAutomaticGainControlV1SwImplUUID;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlV1SwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidAutomaticGainControlV1Sw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -43,7 +45,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlV1SwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidAutomaticGainControlV1Sw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -63,8 +65,8 @@
.range = AutomaticGainControlV1Sw::kRanges};
const Descriptor AutomaticGainControlV1Sw::kDescriptor = {
- .common = {.id = {.type = kAutomaticGainControlV1TypeUUID,
- .uuid = kAutomaticGainControlV1SwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidAutomaticGainControlV1(),
+ .uuid = getEffectImplUuidAutomaticGainControlV1Sw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h
index 6ba7328..7d2a69f 100644
--- a/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h
+++ b/audio/aidl/default/automaticGainControlV1/AutomaticGainControlV1Sw.h
@@ -17,7 +17,6 @@
#pragma once
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp
index 50712a4..1e336ac 100644
--- a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp
+++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.cpp
@@ -17,22 +17,24 @@
#include <algorithm>
#include <cstddef>
#include <memory>
-
#define LOG_TAG "AHAL_AutomaticGainControlV2Sw"
+
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "AutomaticGainControlV2Sw.h"
using aidl::android::hardware::audio::effect::AutomaticGainControlV2Sw;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidAutomaticGainControlV2Sw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidAutomaticGainControlV2;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kAutomaticGainControlV2SwImplUUID;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlV2SwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidAutomaticGainControlV2Sw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +49,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kAutomaticGainControlV2SwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidAutomaticGainControlV2Sw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -67,8 +69,8 @@
.range = AutomaticGainControlV2Sw::kRanges};
const Descriptor AutomaticGainControlV2Sw::kDescriptor = {
- .common = {.id = {.type = kAutomaticGainControlV2TypeUUID,
- .uuid = kAutomaticGainControlV2SwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidAutomaticGainControlV2(),
+ .uuid = getEffectImplUuidAutomaticGainControlV2Sw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h
index 0b50f4d..9aa60ea 100644
--- a/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h
+++ b/audio/aidl/default/automaticGainControlV2/AutomaticGainControlV2Sw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/bassboost/BassBoostSw.cpp b/audio/aidl/default/bassboost/BassBoostSw.cpp
index fb5374f..dbf2e15 100644
--- a/audio/aidl/default/bassboost/BassBoostSw.cpp
+++ b/audio/aidl/default/bassboost/BassBoostSw.cpp
@@ -21,19 +21,22 @@
#define LOG_TAG "AHAL_BassBoostSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "BassBoostSw.h"
using aidl::android::hardware::audio::effect::BassBoostSw;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidBassBoostProxy;
+using aidl::android::hardware::audio::effect::getEffectImplUuidBassBoostSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidBassBoost;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kBassBoostSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kBassBoostSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidBassBoostSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -48,7 +51,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kBassBoostSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidBassBoostSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -64,9 +67,9 @@
MAKE_RANGE(BassBoost, strengthPm, 0, 1000)};
const Capability BassBoostSw::kCapability = {.range = {BassBoostSw::kRanges}};
const Descriptor BassBoostSw::kDescriptor = {
- .common = {.id = {.type = kBassBoostTypeUUID,
- .uuid = kBassBoostSwImplUUID,
- .proxy = kBassBoostProxyUUID},
+ .common = {.id = {.type = getEffectTypeUuidBassBoost(),
+ .uuid = getEffectImplUuidBassBoostSw(),
+ .proxy = getEffectImplUuidBassBoostProxy()},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
.volume = Flags::Volume::CTRL},
diff --git a/audio/aidl/default/bassboost/BassBoostSw.h b/audio/aidl/default/bassboost/BassBoostSw.h
index 8d183dd..1132472 100644
--- a/audio/aidl/default/bassboost/BassBoostSw.h
+++ b/audio/aidl/default/bassboost/BassBoostSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/downmix/DownmixSw.cpp b/audio/aidl/default/downmix/DownmixSw.cpp
index 81a4c89..ce5fe20 100644
--- a/audio/aidl/default/downmix/DownmixSw.cpp
+++ b/audio/aidl/default/downmix/DownmixSw.cpp
@@ -20,19 +20,21 @@
#define LOG_TAG "AHAL_DownmixSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "DownmixSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::DownmixSw;
+using aidl::android::hardware::audio::effect::getEffectImplUuidDownmixSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidDownmix;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kDownmixSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kDownmixSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidDownmixSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +49,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kDownmixSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidDownmixSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -59,13 +61,14 @@
const std::string DownmixSw::kEffectName = "DownmixSw";
const Descriptor DownmixSw::kDescriptor = {
- .common = {
- .id = {.type = kDownmixTypeUUID, .uuid = kDownmixSwImplUUID, .proxy = std::nullopt},
- .flags = {.type = Flags::Type::INSERT,
- .insert = Flags::Insert::FIRST,
- .volume = Flags::Volume::CTRL},
- .name = kEffectName,
- .implementor = "The Android Open Source Project"}};
+ .common = {.id = {.type = getEffectTypeUuidDownmix(),
+ .uuid = getEffectImplUuidDownmixSw(),
+ .proxy = std::nullopt},
+ .flags = {.type = Flags::Type::INSERT,
+ .insert = Flags::Insert::FIRST,
+ .volume = Flags::Volume::CTRL},
+ .name = kEffectName,
+ .implementor = "The Android Open Source Project"}};
ndk::ScopedAStatus DownmixSw::getDescriptor(Descriptor* _aidl_return) {
LOG(DEBUG) << __func__ << kDescriptor.toString();
diff --git a/audio/aidl/default/downmix/DownmixSw.h b/audio/aidl/default/downmix/DownmixSw.h
index 37c978b..3f8a09b 100644
--- a/audio/aidl/default/downmix/DownmixSw.h
+++ b/audio/aidl/default/downmix/DownmixSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp
index 1dda6d1..ed6cfa0 100644
--- a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp
+++ b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.cpp
@@ -22,19 +22,21 @@
#define LOG_TAG "AHAL_DynamicsProcessingSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "DynamicsProcessingSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::DynamicsProcessingSw;
+using aidl::android::hardware::audio::effect::getEffectImplUuidDynamicsProcessingSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidDynamicsProcessing;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kDynamicsProcessingSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kDynamicsProcessingSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidDynamicsProcessingSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -49,7 +51,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kDynamicsProcessingSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidDynamicsProcessingSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -88,8 +90,8 @@
const Capability DynamicsProcessingSw::kCapability = {.range = DynamicsProcessingSw::kRanges};
const Descriptor DynamicsProcessingSw::kDescriptor = {
- .common = {.id = {.type = kDynamicsProcessingTypeUUID,
- .uuid = kDynamicsProcessingSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidDynamicsProcessing(),
+ .uuid = getEffectImplUuidDynamicsProcessingSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h
index 769f9ef..641cf71 100644
--- a/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h
+++ b/audio/aidl/default/dynamicProcessing/DynamicsProcessingSw.h
@@ -25,7 +25,6 @@
#include <fmq/AidlMessageQueue.h>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/envReverb/EnvReverbSw.cpp b/audio/aidl/default/envReverb/EnvReverbSw.cpp
index 29288ca..73975c6 100644
--- a/audio/aidl/default/envReverb/EnvReverbSw.cpp
+++ b/audio/aidl/default/envReverb/EnvReverbSw.cpp
@@ -21,19 +21,21 @@
#define LOG_TAG "AHAL_EnvReverbSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "EnvReverbSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::EnvReverbSw;
+using aidl::android::hardware::audio::effect::getEffectImplUuidEnvReverbSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidEnvReverb;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kEnvReverbSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kEnvReverbSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidEnvReverbSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -48,7 +50,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kEnvReverbSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidEnvReverbSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -76,8 +78,8 @@
.range = Range::make<Range::environmentalReverb>(EnvReverbSw::kRanges)};
const Descriptor EnvReverbSw::kDescriptor = {
- .common = {.id = {.type = kEnvReverbTypeUUID,
- .uuid = kEnvReverbSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidEnvReverb(),
+ .uuid = getEffectImplUuidEnvReverbSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/envReverb/EnvReverbSw.h b/audio/aidl/default/envReverb/EnvReverbSw.h
index dd2cf5d..5e31e2f 100644
--- a/audio/aidl/default/envReverb/EnvReverbSw.h
+++ b/audio/aidl/default/envReverb/EnvReverbSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/equalizer/EqualizerSw.cpp b/audio/aidl/default/equalizer/EqualizerSw.cpp
index 0fa7a11..9769924 100644
--- a/audio/aidl/default/equalizer/EqualizerSw.cpp
+++ b/audio/aidl/default/equalizer/EqualizerSw.cpp
@@ -20,19 +20,21 @@
#define LOG_TAG "AHAL_EqualizerSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "EqualizerSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::EqualizerSw;
+using aidl::android::hardware::audio::effect::getEffectImplUuidEqualizerSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidEqualizer;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kEqualizerSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kEqualizerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidEqualizerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +49,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kEqualizerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidEqualizerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -86,15 +88,16 @@
MAKE_RANGE(Equalizer, centerFreqMh, std::vector<int>({1}), std::vector<int>({0}))};
const Capability EqualizerSw::kEqCap = {.range = EqualizerSw::kRanges};
-const Descriptor EqualizerSw::kDesc = {.common = {.id = {.type = kEqualizerTypeUUID,
- .uuid = kEqualizerSwImplUUID,
- .proxy = kEqualizerProxyUUID},
- .flags = {.type = Flags::Type::INSERT,
- .insert = Flags::Insert::FIRST,
- .volume = Flags::Volume::CTRL},
- .name = EqualizerSw::kEffectName,
- .implementor = "The Android Open Source Project"},
- .capability = EqualizerSw::kEqCap};
+const Descriptor EqualizerSw::kDesc = {
+ .common = {.id = {.type = getEffectTypeUuidEqualizer(),
+ .uuid = getEffectImplUuidEqualizerSw(),
+ .proxy = getEffectImplUuidEqualizerProxy()},
+ .flags = {.type = Flags::Type::INSERT,
+ .insert = Flags::Insert::FIRST,
+ .volume = Flags::Volume::CTRL},
+ .name = EqualizerSw::kEffectName,
+ .implementor = "The Android Open Source Project"},
+ .capability = EqualizerSw::kEqCap};
ndk::ScopedAStatus EqualizerSw::getDescriptor(Descriptor* _aidl_return) {
LOG(DEBUG) << __func__ << kDesc.toString();
diff --git a/audio/aidl/default/equalizer/EqualizerSw.h b/audio/aidl/default/equalizer/EqualizerSw.h
index f8987c7..56af3b5 100644
--- a/audio/aidl/default/equalizer/EqualizerSw.h
+++ b/audio/aidl/default/equalizer/EqualizerSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/extension/ExtensionEffect.cpp b/audio/aidl/default/extension/ExtensionEffect.cpp
index db1e4a4..c4eebc0 100644
--- a/audio/aidl/default/extension/ExtensionEffect.cpp
+++ b/audio/aidl/default/extension/ExtensionEffect.cpp
@@ -23,22 +23,23 @@
#define LOG_TAG "AHAL_ExtensionEffect"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "ExtensionEffect.h"
using aidl::android::hardware::audio::effect::DefaultExtension;
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::ExtensionEffect;
+using aidl::android::hardware::audio::effect::getEffectUuidExtensionImpl;
+using aidl::android::hardware::audio::effect::getEffectUuidExtensionType;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kExtensionEffectImplUUID;
-using aidl::android::hardware::audio::effect::kExtensionEffectTypeUUID;
using aidl::android::hardware::audio::effect::Range;
using aidl::android::hardware::audio::effect::VendorExtension;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kExtensionEffectImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectUuidExtensionImpl()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -53,7 +54,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kExtensionEffectImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectUuidExtensionImpl()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -66,8 +67,8 @@
const std::string ExtensionEffect::kEffectName = "ExtensionEffectExample";
const Descriptor ExtensionEffect::kDescriptor = {
- .common = {.id = {.type = kExtensionEffectTypeUUID,
- .uuid = kExtensionEffectImplUUID,
+ .common = {.id = {.type = getEffectUuidExtensionType(),
+ .uuid = getEffectUuidExtensionImpl(),
.proxy = std::nullopt},
.name = ExtensionEffect::kEffectName,
.implementor = "The Android Open Source Project"}};
diff --git a/audio/aidl/default/extension/ExtensionEffect.h b/audio/aidl/default/extension/ExtensionEffect.h
index f432d40..e7a068b 100644
--- a/audio/aidl/default/extension/ExtensionEffect.h
+++ b/audio/aidl/default/extension/ExtensionEffect.h
@@ -22,7 +22,6 @@
#include <vector>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp
index 944f715..27cdac8 100644
--- a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp
+++ b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.cpp
@@ -20,19 +20,21 @@
#define LOG_TAG "AHAL_HapticGeneratorSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "HapticGeneratorSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidHapticGeneratorSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidHapticGenerator;
using aidl::android::hardware::audio::effect::HapticGeneratorSw;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kHapticGeneratorSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kHapticGeneratorSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidHapticGeneratorSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +49,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kHapticGeneratorSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidHapticGeneratorSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -60,8 +62,8 @@
const std::string HapticGeneratorSw::kEffectName = "HapticGeneratorSw";
/* Effect descriptor */
const Descriptor HapticGeneratorSw::kDescriptor = {
- .common = {.id = {.type = kHapticGeneratorTypeUUID,
- .uuid = kHapticGeneratorSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidHapticGenerator(),
+ .uuid = getEffectImplUuidHapticGeneratorSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h
index 428f460..3bbe41a 100644
--- a/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h
+++ b/audio/aidl/default/hapticGenerator/HapticGeneratorSw.h
@@ -16,13 +16,14 @@
#pragma once
-#include <aidl/android/hardware/audio/effect/BnEffect.h>
-#include <fmq/AidlMessageQueue.h>
#include <cstdlib>
+#include <map>
#include <memory>
+#include <aidl/android/hardware/audio/effect/BnEffect.h>
+#include <fmq/AidlMessageQueue.h>
+
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/include/core-impl/SoundDose.h b/audio/aidl/default/include/core-impl/SoundDose.h
index 306aa04..2a069d9 100644
--- a/audio/aidl/default/include/core-impl/SoundDose.h
+++ b/audio/aidl/default/include/core-impl/SoundDose.h
@@ -29,8 +29,8 @@
public:
SoundDose() : mRs2Value(DEFAULT_MAX_RS2){};
- ndk::ScopedAStatus setOutputRs2(float in_rs2ValueDbA) override;
- ndk::ScopedAStatus getOutputRs2(float* _aidl_return) override;
+ ndk::ScopedAStatus setOutputRs2UpperBound(float in_rs2ValueDbA) override;
+ ndk::ScopedAStatus getOutputRs2UpperBound(float* _aidl_return) override;
ndk::ScopedAStatus registerSoundDoseCallback(
const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>& in_callback) override;
diff --git a/audio/aidl/default/include/effect-impl/EffectTypes.h b/audio/aidl/default/include/effect-impl/EffectTypes.h
index fe534d7..4bda7be 100644
--- a/audio/aidl/default/include/effect-impl/EffectTypes.h
+++ b/audio/aidl/default/include/effect-impl/EffectTypes.h
@@ -15,7 +15,6 @@
*/
#pragma once
-#include <ostream>
#include <string>
#include <aidl/android/hardware/audio/effect/BnEffect.h>
@@ -128,23 +127,4 @@
#define MAKE_RANGE(T, Tag, l, r) \
{ .min = T::make<T::Tag>(l), .max = T::make<T::Tag>(r) }
-static inline bool stringToUuid(const char* str,
- ::aidl::android::media::audio::common::AudioUuid* uuid) {
- RETURN_VALUE_IF(!uuid || !str, false, "nullPtr");
-
- uint32_t tmp[10];
- if (sscanf(str, "%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x", tmp, tmp + 1, tmp + 2, tmp + 3,
- tmp + 4, tmp + 5, tmp + 6, tmp + 7, tmp + 8, tmp + 9) < 10) {
- return false;
- }
-
- uuid->timeLow = (uint32_t)tmp[0];
- uuid->timeMid = (uint16_t)tmp[1];
- uuid->timeHiAndVersion = (uint16_t)tmp[2];
- uuid->clockSeq = (uint16_t)tmp[3];
- uuid->node.insert(uuid->node.end(), {(uint8_t)tmp[4], (uint8_t)tmp[5], (uint8_t)tmp[6],
- (uint8_t)tmp[7], (uint8_t)tmp[8], (uint8_t)tmp[9]});
- return true;
-}
-
} // namespace aidl::android::hardware::audio::effect
diff --git a/audio/aidl/default/include/effect-impl/EffectUUID.h b/audio/aidl/default/include/effect-impl/EffectUUID.h
deleted file mode 100644
index bc61c0f..0000000
--- a/audio/aidl/default/include/effect-impl/EffectUUID.h
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * Copyright (C) 2022 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.
- */
-
-#pragma once
-#include <map>
-
-#include <aidl/android/media/audio/common/AudioUuid.h>
-
-namespace aidl::android::hardware::audio::effect {
-
-using ::aidl::android::media::audio::common::AudioUuid;
-
-// ec7178ec-e5e1-4432-a3f4-4657e6795210
-static const AudioUuid kEffectNullUuid = {static_cast<int32_t>(0xec7178ec),
- 0xe5e1,
- 0x4432,
- 0xa3f4,
- {0x46, 0x57, 0xe6, 0x79, 0x52, 0x10}};
-// Zero UUID
-static const AudioUuid kEffectZeroUuid = {
- static_cast<int32_t>(0x0), 0x0, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}};
-
-// 7b491460-8d4d-11e0-bd61-0002a5d5c51b.
-static const AudioUuid kAcousticEchoCancelerTypeUUID = {static_cast<int32_t>(0x7b491460),
- 0x8d4d,
- 0x11e0,
- 0xbd61,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// bb392ec0-8d4d-11e0-a896-0002a5d5c51b
-static const AudioUuid kAcousticEchoCancelerSwImplUUID = {static_cast<int32_t>(0xbb392ec0),
- 0x8d4d,
- 0x11e0,
- 0xa896,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 0a8abfe0-654c-11e0-ba26-0002a5d5c51b
-static const AudioUuid kAutomaticGainControlV1TypeUUID = {static_cast<int32_t>(0x0a8abfe0),
- 0x654c,
- 0x11e0,
- 0xba26,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// aa8130e0-66fc-11e0-bad0-0002a5d5c51b
-static const AudioUuid kAutomaticGainControlV1SwImplUUID = {static_cast<int32_t>(0xaa8130e0),
- 0x66fc,
- 0x11e0,
- 0xbad0,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// ae3c653b-be18-4ab8-8938-418f0a7f06ac
-static const AudioUuid kAutomaticGainControlV2TypeUUID = {static_cast<int32_t>(0xae3c653b),
- 0xbe18,
- 0x4ab8,
- 0x8938,
- {0x41, 0x8f, 0x0a, 0x7f, 0x06, 0xac}};
-// 89f38e65-d4d2-4d64-ad0e-2b3e799ea886
-static const AudioUuid kAutomaticGainControlV2SwImplUUID = {static_cast<int32_t>(0x89f38e65),
- 0xd4d2,
- 0x4d64,
- 0xad0e,
- {0x2b, 0x3e, 0x79, 0x9e, 0xa8, 0x86}};
-// 0634f220-ddd4-11db-a0fc-0002a5d5c51b
-static const AudioUuid kBassBoostTypeUUID = {static_cast<int32_t>(0x0634f220),
- 0xddd4,
- 0x11db,
- 0xa0fc,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// fa8181f2-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kBassBoostSwImplUUID = {static_cast<int32_t>(0xfa8181f2),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// 8631f300-72e2-11df-b57e-0002a5d5c51b
-static const AudioUuid kBassBoostBundleImplUUID = {static_cast<int32_t>(0x8631f300),
- 0x72e2,
- 0x11df,
- 0xb57e,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 14804144-a5ee-4d24-aa88-0002a5d5c51b
-static const AudioUuid kBassBoostProxyUUID = {static_cast<int32_t>(0x14804144),
- 0xa5ee,
- 0x4d24,
- 0xaa88,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 381e49cc-a858-4aa2-87f6-e8388e7601b2
-static const AudioUuid kDownmixTypeUUID = {static_cast<int32_t>(0x381e49cc),
- 0xa858,
- 0x4aa2,
- 0x87f6,
- {0xe8, 0x38, 0x8e, 0x76, 0x01, 0xb2}};
-// fa8187ba-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kDownmixSwImplUUID = {static_cast<int32_t>(0xfa8187ba),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// 93f04452-e4fe-41cc-91f9-e475b6d1d69f
-static const AudioUuid kDownmixImplUUID = {static_cast<int32_t>(0x93f04452),
- 0xe4fe,
- 0x41cc,
- 0x91f9,
- {0xe4, 0x75, 0xb6, 0xd1, 0xd6, 0x9f}};
-// 0bed4300-ddd6-11db-8f34-0002a5d5c51b.
-static const AudioUuid kEqualizerTypeUUID = {static_cast<int32_t>(0x0bed4300),
- 0xddd6,
- 0x11db,
- 0x8f34,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 0bed4300-847d-11df-bb17-0002a5d5c51b
-static const AudioUuid kEqualizerSwImplUUID = {static_cast<int32_t>(0x0bed4300),
- 0x847d,
- 0x11df,
- 0xbb17,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// ce772f20-847d-11df-bb17-0002a5d5c51b
-static const AudioUuid kEqualizerBundleImplUUID = {static_cast<int32_t>(0xce772f20),
- 0x847d,
- 0x11df,
- 0xbb17,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// c8e70ecd-48ca-456e-8a4f-0002a5d5c51b
-static const AudioUuid kEqualizerProxyUUID = {static_cast<int32_t>(0xc8e70ecd),
- 0x48ca,
- 0x456e,
- 0x8a4f,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 7261676f-6d75-7369-6364-28e2fd3ac39e
-static const AudioUuid kDynamicsProcessingTypeUUID = {static_cast<int32_t>(0x7261676f),
- 0x6d75,
- 0x7369,
- 0x6364,
- {0x28, 0xe2, 0xfd, 0x3a, 0xc3, 0x9e}};
-// fa818d78-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kDynamicsProcessingSwImplUUID = {static_cast<int32_t>(0xfa818d78),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// e0e6539b-1781-7261-676f-6d7573696340
-static const AudioUuid kDynamicsProcessingImplUUID = {static_cast<int32_t>(0xe0e6539b),
- 0x1781,
- 0x7261,
- 0x676f,
- {0x6d, 0x75, 0x73, 0x69, 0x63, 0x40}};
-// 1411e6d6-aecd-4021-a1cf-a6aceb0d71e5
-static const AudioUuid kHapticGeneratorTypeUUID = {static_cast<int32_t>(0x1411e6d6),
- 0xaecd,
- 0x4021,
- 0xa1cf,
- {0xa6, 0xac, 0xeb, 0x0d, 0x71, 0xe5}};
-// fa819110-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kHapticGeneratorSwImplUUID = {static_cast<int32_t>(0xfa819110),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// 97c4acd1-8b82-4f2f-832e-c2fe5d7a9931
-static const AudioUuid kHapticGeneratorImplUUID = {static_cast<int32_t>(0x97c4acd1),
- 0x8b82,
- 0x4f2f,
- 0x832e,
- {0xc2, 0xfe, 0x5d, 0x7a, 0x99, 0x31}};
-// fe3199be-aed0-413f-87bb-11260eb63cf1
-static const AudioUuid kLoudnessEnhancerTypeUUID = {static_cast<int32_t>(0xfe3199be),
- 0xaed0,
- 0x413f,
- 0x87bb,
- {0x11, 0x26, 0x0e, 0xb6, 0x3c, 0xf1}};
-// fa819610-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kLoudnessEnhancerSwImplUUID = {static_cast<int32_t>(0xfa819610),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// fa415329-2034-4bea-b5dc-5b381c8d1e2c
-static const AudioUuid kLoudnessEnhancerImplUUID = {static_cast<int32_t>(0xfa415329),
- 0x2034,
- 0x4bea,
- 0xb5dc,
- {0x5b, 0x38, 0x1c, 0x8d, 0x1e, 0x2c}};
-// c2e5d5f0-94bd-4763-9cac-4e234d06839e
-static const AudioUuid kEnvReverbTypeUUID = {static_cast<int32_t>(0xc2e5d5f0),
- 0x94bd,
- 0x4763,
- 0x9cac,
- {0x4e, 0x23, 0x4d, 0x06, 0x83, 0x9e}};
-// fa819886-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kEnvReverbSwImplUUID = {static_cast<int32_t>(0xfa819886),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
-static const AudioUuid kAuxEnvReverbImplUUID = {static_cast<int32_t>(0x4a387fc0),
- 0x8ab3,
- 0x11df,
- 0x8bad,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// c7a511a0-a3bb-11df-860e-0002a5d5c51b
-static const AudioUuid kInsertEnvReverbImplUUID = {static_cast<int32_t>(0xc7a511a0),
- 0xa3bb,
- 0x11df,
- 0x860e,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 58b4b260-8e06-11e0-aa8e-0002a5d5c51b
-static const AudioUuid kNoiseSuppressionTypeUUID = {static_cast<int32_t>(0x58b4b260),
- 0x8e06,
- 0x11e0,
- 0xaa8e,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// c06c8400-8e06-11e0-9cb6-0002a5d5c51b
-static const AudioUuid kNoiseSuppressionSwImplUUID = {static_cast<int32_t>(0xc06c8400),
- 0x8e06,
- 0x11e0,
- 0x9cb6,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 47382d60-ddd8-11db-bf3a-0002a5d5c51b
-static const AudioUuid kPresetReverbTypeUUID = {static_cast<int32_t>(0x47382d60),
- 0xddd8,
- 0x11db,
- 0xbf3a,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// fa8199c6-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kPresetReverbSwImplUUID = {static_cast<int32_t>(0xfa8199c6),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// f29a1400-a3bb-11df-8ddc-0002a5d5c51b
-static const AudioUuid kAuxPresetReverbImplUUID = {static_cast<int32_t>(0xf29a1400),
- 0xa3bb,
- 0x11df,
- 0x8ddc,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 172cdf00-a3bc-11df-a72f-0002a5d5c51b
-static const AudioUuid kInsertPresetReverbImplUUID = {static_cast<int32_t>(0x172cdf00),
- 0xa3bc,
- 0x11df,
- 0xa72f,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// 37cc2c00-dddd-11db-8577-0002a5d5c51b
-static const AudioUuid kVirtualizerTypeUUID = {static_cast<int32_t>(0x37cc2c00),
- 0xdddd,
- 0x11db,
- 0x8577,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// fa819d86-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kVirtualizerSwImplUUID = {static_cast<int32_t>(0xfa819d86),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// 1d4033c0-8557-11df-9f2d-0002a5d5c51b
-static const AudioUuid kVirtualizerBundleImplUUID = {static_cast<int32_t>(0x1d4033c0),
- 0x8557,
- 0x11df,
- 0x9f2d,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// d3467faa-acc7-4d34-acaf-0002a5d5c51b
-static const AudioUuid kVirtualizerProxyUUID = {static_cast<int32_t>(0xd3467faa),
- 0xacc7,
- 0x4d34,
- 0xacaf,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// e46b26a0-dddd-11db-8afd-0002a5d5c51b
-static const AudioUuid kVisualizerTypeUUID = {static_cast<int32_t>(0xe46b26a0),
- 0xdddd,
- 0x11db,
- 0x8afd,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// fa81a0f6-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kVisualizerSwImplUUID = {static_cast<int32_t>(0xfa81a0f6),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// d069d9e0-8329-11df-9168-0002a5d5c51b
-// {0xd069d9e0, 0x8329, 0x11df, 0x9168, {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}},
-static const AudioUuid kVisualizerImplUUID = {static_cast<int32_t>(0xd069d9e0),
- 0x8329,
- 0x11df,
- 0x9168,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-// fa81a2b8-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kVolumeTypeUUID = {static_cast<int32_t>(0xfa81a2b8),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// fa81a718-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kVolumeSwImplUUID = {static_cast<int32_t>(0xfa81a718),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// 119341a0-8469-11df-81f9-0002a5d5c51b
-static const AudioUuid kVolumeBundleImplUUID = {static_cast<int32_t>(0x119341a0),
- 0x8469,
- 0x11df,
- 0x81f9,
- {0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}};
-
-// fa81dbde-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kExtensionEffectTypeUUID = {static_cast<int32_t>(0xfa81dbde),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-// fa81dd00-588b-11ed-9b6a-0242ac120002
-static const AudioUuid kExtensionEffectImplUUID = {static_cast<int32_t>(0xfa81dd00),
- 0x588b,
- 0x11ed,
- 0x9b6a,
- {0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};
-/**
- * @brief A map between effect name and effect type UUID.
- * All <name> attribution in effect/effectProxy of audio_effects.xml should be listed in this map.
- * We need this map is because existing audio_effects.xml don't have a type UUID defined.
- */
-static const std::map<const std::string /* effect type */, const AudioUuid&> kUuidNameTypeMap = {
- {"acoustic_echo_canceler", kAcousticEchoCancelerTypeUUID},
- {"automatic_gain_control_v1", kAutomaticGainControlV1TypeUUID},
- {"automatic_gain_control_v2", kAutomaticGainControlV2TypeUUID},
- {"bassboost", kBassBoostTypeUUID},
- {"downmix", kDownmixTypeUUID},
- {"dynamics_processing", kDynamicsProcessingTypeUUID},
- {"equalizer", kEqualizerTypeUUID},
- {"extensioneffect", kExtensionEffectTypeUUID},
- {"haptic_generator", kHapticGeneratorTypeUUID},
- {"loudness_enhancer", kLoudnessEnhancerTypeUUID},
- {"env_reverb", kEnvReverbTypeUUID},
- {"noise_suppression", kNoiseSuppressionTypeUUID},
- {"preset_reverb", kPresetReverbTypeUUID},
- {"reverb_env_aux", kEnvReverbTypeUUID},
- {"reverb_env_ins", kEnvReverbTypeUUID},
- {"reverb_pre_aux", kPresetReverbTypeUUID},
- {"reverb_pre_ins", kPresetReverbTypeUUID},
- {"virtualizer", kVirtualizerTypeUUID},
- {"visualizer", kVisualizerTypeUUID},
- {"volume", kVolumeTypeUUID},
-};
-
-} // namespace aidl::android::hardware::audio::effect
diff --git a/audio/aidl/default/include/effectFactory-impl/EffectConfig.h b/audio/aidl/default/include/effectFactory-impl/EffectConfig.h
index c499811..c627a27 100644
--- a/audio/aidl/default/include/effectFactory-impl/EffectConfig.h
+++ b/audio/aidl/default/include/effectFactory-impl/EffectConfig.h
@@ -17,6 +17,7 @@
#pragma once
#include <functional>
+#include <map>
#include <memory>
#include <string>
#include <unordered_map>
@@ -62,6 +63,9 @@
return mProcessingMap;
}
+ static bool findUuid(const std::string& xmlEffectName,
+ ::aidl::android::media::audio::common::AudioUuid* uuid);
+
private:
static constexpr const char* kEffectLibPath[] =
#ifdef __LP64__
diff --git a/audio/aidl/default/include/effectFactory-impl/EffectFactory.h b/audio/aidl/default/include/effectFactory-impl/EffectFactory.h
index fc9ef02..b7f63af 100644
--- a/audio/aidl/default/include/effectFactory-impl/EffectFactory.h
+++ b/audio/aidl/default/include/effectFactory-impl/EffectFactory.h
@@ -105,7 +105,7 @@
const std::string& path);
void createIdentityWithConfig(
const EffectConfig::LibraryUuid& configLib,
- const ::aidl::android::media::audio::common::AudioUuid& typeUuid,
+ const ::aidl::android::media::audio::common::AudioUuid& typeUuidStr,
const std::optional<::aidl::android::media::audio::common::AudioUuid> proxyUuid);
void loadEffectLibs();
/* Get effect_dl_interface_s from library handle */
diff --git a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp
index f115cc5..7954316 100644
--- a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp
+++ b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.cpp
@@ -20,19 +20,21 @@
#define LOG_TAG "AHAL_LoudnessEnhancerSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "LoudnessEnhancerSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidLoudnessEnhancerSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidLoudnessEnhancer;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kLoudnessEnhancerSwImplUUID;
using aidl::android::hardware::audio::effect::LoudnessEnhancerSw;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kLoudnessEnhancerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidLoudnessEnhancerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +49,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kLoudnessEnhancerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidLoudnessEnhancerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -59,8 +61,8 @@
const std::string LoudnessEnhancerSw::kEffectName = "LoudnessEnhancerSw";
const Descriptor LoudnessEnhancerSw::kDescriptor = {
- .common = {.id = {.type = kLoudnessEnhancerTypeUUID,
- .uuid = kLoudnessEnhancerSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidLoudnessEnhancer(),
+ .uuid = getEffectImplUuidLoudnessEnhancerSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h
index e252f4a..25824f2 100644
--- a/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h
+++ b/audio/aidl/default/loudnessEnhancer/LoudnessEnhancerSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp
index ba39b16..9b2cb7c 100644
--- a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp
+++ b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.cpp
@@ -17,22 +17,25 @@
#include <algorithm>
#include <cstddef>
#include <memory>
+#define LOG_TAG "AHAL_NoiseSuppressionSw"
#define LOG_TAG "AHAL_NoiseSuppressionSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "NoiseSuppressionSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidNoiseSuppressionSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidNoiseSuppression;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kNoiseSuppressionSwImplUUID;
using aidl::android::hardware::audio::effect::NoiseSuppressionSw;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kNoiseSuppressionSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidNoiseSuppressionSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +50,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kNoiseSuppressionSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidNoiseSuppressionSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -59,8 +62,8 @@
const std::string NoiseSuppressionSw::kEffectName = "NoiseSuppressionSw";
const Descriptor NoiseSuppressionSw::kDescriptor = {
- .common = {.id = {.type = kNoiseSuppressionTypeUUID,
- .uuid = kNoiseSuppressionSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidNoiseSuppression(),
+ .uuid = getEffectImplUuidNoiseSuppressionSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h
index 22bf066..fc1e028 100644
--- a/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h
+++ b/audio/aidl/default/noiseSuppression/NoiseSuppressionSw.h
@@ -16,13 +16,13 @@
#pragma once
-#include <aidl/android/hardware/audio/effect/BnEffect.h>
-#include <fmq/AidlMessageQueue.h>
#include <cstdlib>
#include <memory>
+#include <aidl/android/hardware/audio/effect/BnEffect.h>
+#include <fmq/AidlMessageQueue.h>
+
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/presetReverb/PresetReverbSw.cpp b/audio/aidl/default/presetReverb/PresetReverbSw.cpp
index 14546a4..3f02eb7 100644
--- a/audio/aidl/default/presetReverb/PresetReverbSw.cpp
+++ b/audio/aidl/default/presetReverb/PresetReverbSw.cpp
@@ -21,19 +21,21 @@
#include <android-base/logging.h>
#include <android/binder_enums.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "PresetReverbSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidPresetReverbSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidPresetReverb;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kPresetReverbSwImplUUID;
using aidl::android::hardware::audio::effect::PresetReverbSw;
using aidl::android::hardware::audio::effect::State;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kPresetReverbSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidPresetReverbSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -48,7 +50,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kPresetReverbSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidPresetReverbSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -72,8 +74,8 @@
.range = Range::make<Range::presetReverb>(PresetReverbSw::kRanges)};
const Descriptor PresetReverbSw::kDescriptor = {
- .common = {.id = {.type = kPresetReverbTypeUUID,
- .uuid = kPresetReverbSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidPresetReverb(),
+ .uuid = getEffectImplUuidPresetReverbSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/presetReverb/PresetReverbSw.h b/audio/aidl/default/presetReverb/PresetReverbSw.h
index 5061475..9ceee7c 100644
--- a/audio/aidl/default/presetReverb/PresetReverbSw.h
+++ b/audio/aidl/default/presetReverb/PresetReverbSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/virtualizer/VirtualizerSw.cpp b/audio/aidl/default/virtualizer/VirtualizerSw.cpp
index c5a0e8d..e34464f 100644
--- a/audio/aidl/default/virtualizer/VirtualizerSw.cpp
+++ b/audio/aidl/default/virtualizer/VirtualizerSw.cpp
@@ -21,12 +21,14 @@
#include <Utils.h>
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "VirtualizerSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidVirtualizerSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidVirtualizer;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kVirtualizerSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::hardware::audio::effect::VirtualizerSw;
using aidl::android::media::audio::common::AudioChannelLayout;
@@ -36,7 +38,7 @@
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kVirtualizerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVirtualizerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -51,7 +53,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kVirtualizerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVirtualizerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -73,9 +75,9 @@
.range = Range::make<Range::virtualizer>(VirtualizerSw::kRanges)};
const Descriptor VirtualizerSw::kDescriptor = {
- .common = {.id = {.type = kVirtualizerTypeUUID,
- .uuid = kVirtualizerSwImplUUID,
- .proxy = kVirtualizerProxyUUID},
+ .common = {.id = {.type = getEffectTypeUuidVirtualizer(),
+ .uuid = getEffectImplUuidVirtualizerSw(),
+ .proxy = getEffectImplUuidVirtualizerProxy()},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
.volume = Flags::Volume::CTRL},
diff --git a/audio/aidl/default/virtualizer/VirtualizerSw.h b/audio/aidl/default/virtualizer/VirtualizerSw.h
index 5c5b616..5e114d9 100644
--- a/audio/aidl/default/virtualizer/VirtualizerSw.h
+++ b/audio/aidl/default/virtualizer/VirtualizerSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/visualizer/VisualizerSw.cpp b/audio/aidl/default/visualizer/VisualizerSw.cpp
index deb3204..0909f25 100644
--- a/audio/aidl/default/visualizer/VisualizerSw.cpp
+++ b/audio/aidl/default/visualizer/VisualizerSw.cpp
@@ -17,19 +17,21 @@
#define LOG_TAG "AHAL_VisualizerSw"
#include <android-base/logging.h>
+#include <system/audio_effects/effect_uuid.h>
#include "VisualizerSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidVisualizerSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidVisualizer;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kVisualizerSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::hardware::audio::effect::VisualizerSw;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kVisualizerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVisualizerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -44,7 +46,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kVisualizerSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVisualizerSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -66,8 +68,8 @@
.range = Range::make<Range::visualizer>(VisualizerSw::kRanges)};
const Descriptor VisualizerSw::kDescriptor = {
- .common = {.id = {.type = kVisualizerTypeUUID,
- .uuid = kVisualizerSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidVisualizer(),
+ .uuid = getEffectImplUuidVisualizerSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/visualizer/VisualizerSw.h b/audio/aidl/default/visualizer/VisualizerSw.h
index ee7276a..995774e 100644
--- a/audio/aidl/default/visualizer/VisualizerSw.h
+++ b/audio/aidl/default/visualizer/VisualizerSw.h
@@ -16,11 +16,10 @@
#pragma once
-#include <aidl/android/hardware/audio/effect/BnEffect.h>
#include <vector>
+#include <aidl/android/hardware/audio/effect/BnEffect.h>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/default/volume/VolumeSw.cpp b/audio/aidl/default/volume/VolumeSw.cpp
index 44cac44..8902584 100644
--- a/audio/aidl/default/volume/VolumeSw.cpp
+++ b/audio/aidl/default/volume/VolumeSw.cpp
@@ -20,19 +20,21 @@
#define LOG_TAG "AHAL_VolumeSw"
#include <android-base/logging.h>
#include <fmq/AidlMessageQueue.h>
+#include <system/audio_effects/effect_uuid.h>
#include "VolumeSw.h"
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectImplUuidVolumeSw;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidVolume;
using aidl::android::hardware::audio::effect::IEffect;
-using aidl::android::hardware::audio::effect::kVolumeSwImplUUID;
using aidl::android::hardware::audio::effect::State;
using aidl::android::hardware::audio::effect::VolumeSw;
using aidl::android::media::audio::common::AudioUuid;
extern "C" binder_exception_t createEffect(const AudioUuid* in_impl_uuid,
std::shared_ptr<IEffect>* instanceSpp) {
- if (!in_impl_uuid || *in_impl_uuid != kVolumeSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVolumeSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -47,7 +49,7 @@
}
extern "C" binder_exception_t queryEffect(const AudioUuid* in_impl_uuid, Descriptor* _aidl_return) {
- if (!in_impl_uuid || *in_impl_uuid != kVolumeSwImplUUID) {
+ if (!in_impl_uuid || *in_impl_uuid != getEffectImplUuidVolumeSw()) {
LOG(ERROR) << __func__ << "uuid not supported";
return EX_ILLEGAL_ARGUMENT;
}
@@ -64,8 +66,8 @@
const Capability VolumeSw::kCapability = {.range = Range::make<Range::volume>(VolumeSw::kRanges)};
const Descriptor VolumeSw::kDescriptor = {
- .common = {.id = {.type = kVolumeTypeUUID,
- .uuid = kVolumeSwImplUUID,
+ .common = {.id = {.type = getEffectTypeUuidVolume(),
+ .uuid = getEffectImplUuidVolumeSw(),
.proxy = std::nullopt},
.flags = {.type = Flags::Type::INSERT,
.insert = Flags::Insert::FIRST,
diff --git a/audio/aidl/default/volume/VolumeSw.h b/audio/aidl/default/volume/VolumeSw.h
index 2dd4324..1432b2b 100644
--- a/audio/aidl/default/volume/VolumeSw.h
+++ b/audio/aidl/default/volume/VolumeSw.h
@@ -22,7 +22,6 @@
#include <memory>
#include "effect-impl/EffectImpl.h"
-#include "effect-impl/EffectUUID.h"
namespace aidl::android::hardware::audio::effect {
diff --git a/audio/aidl/vts/Android.bp b/audio/aidl/vts/Android.bp
index 8db8eaf..18aa6f0 100644
--- a/audio/aidl/vts/Android.bp
+++ b/audio/aidl/vts/Android.bp
@@ -37,6 +37,7 @@
"general-tests",
"vts",
],
+ srcs: [":effectCommonFile"],
}
cc_test {
diff --git a/audio/aidl/vts/EffectFactoryHelper.h b/audio/aidl/vts/EffectFactoryHelper.h
index 4add844..a2499fd 100644
--- a/audio/aidl/vts/EffectFactoryHelper.h
+++ b/audio/aidl/vts/EffectFactoryHelper.h
@@ -24,7 +24,6 @@
#include <android/binder_auto_utils.h>
#include "TestUtils.h"
-#include "effect-impl/EffectUUID.h"
using namespace android;
diff --git a/audio/aidl/vts/EffectHelper.h b/audio/aidl/vts/EffectHelper.h
index a128f7c..f6683cc 100644
--- a/audio/aidl/vts/EffectHelper.h
+++ b/audio/aidl/vts/EffectHelper.h
@@ -31,6 +31,7 @@
#include <fmq/AidlMessageQueue.h>
#include <gtest/gtest.h>
#include <system/audio_effects/aidl_effects_utils.h>
+#include <system/audio_effects/effect_uuid.h>
#include "AudioHalBinderServiceUtil.h"
#include "EffectFactoryHelper.h"
diff --git a/audio/aidl/vts/VtsHalAECTargetTest.cpp b/audio/aidl/vts/VtsHalAECTargetTest.cpp
index 2d36cbb..8828c41 100644
--- a/audio/aidl/vts/VtsHalAECTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalAECTargetTest.cpp
@@ -29,9 +29,9 @@
using aidl::android::hardware::audio::effect::AcousticEchoCanceler;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidAcousticEchoCanceler;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kAcousticEchoCancelerTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
using aidl::android::hardware::audio::effect::Range;
@@ -148,7 +148,8 @@
AECParamTest, AECParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kAcousticEchoCancelerTypeUUID)),
+ IFactory::descriptor,
+ getEffectTypeUuidAcousticEchoCanceler())),
testing::ValuesIn(EffectHelper::getTestValueSet<AcousticEchoCanceler, int,
Range::acousticEchoCanceler,
AcousticEchoCanceler::echoDelayUs>(
diff --git a/audio/aidl/vts/VtsHalAGC1TargetTest.cpp b/audio/aidl/vts/VtsHalAGC1TargetTest.cpp
index 15a9374..edfcdf6 100644
--- a/audio/aidl/vts/VtsHalAGC1TargetTest.cpp
+++ b/audio/aidl/vts/VtsHalAGC1TargetTest.cpp
@@ -24,9 +24,9 @@
using aidl::android::hardware::audio::effect::AutomaticGainControlV1;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidAutomaticGainControlV1;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kAutomaticGainControlV1TypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
enum ParamName {
@@ -158,7 +158,8 @@
AGC1ParamTest, AGC1ParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kAutomaticGainControlV1TypeUUID)),
+ IFactory::descriptor,
+ getEffectTypeUuidAutomaticGainControlV1())),
testing::ValuesIn(EffectHelper::getTestValueSet<
AutomaticGainControlV1, int, Range::automaticGainControlV1,
AutomaticGainControlV1::targetPeakLevelDbFs>(
diff --git a/audio/aidl/vts/VtsHalAGC2TargetTest.cpp b/audio/aidl/vts/VtsHalAGC2TargetTest.cpp
index 140537e..8ba8e45 100644
--- a/audio/aidl/vts/VtsHalAGC2TargetTest.cpp
+++ b/audio/aidl/vts/VtsHalAGC2TargetTest.cpp
@@ -25,9 +25,9 @@
using aidl::android::hardware::audio::effect::AutomaticGainControlV2;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidAutomaticGainControlV2;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kAutomaticGainControlV2TypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
enum ParamName {
@@ -164,7 +164,8 @@
AGC2ParamTest, AGC2ParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kAutomaticGainControlV2TypeUUID)),
+ IFactory::descriptor,
+ getEffectTypeUuidAutomaticGainControlV2())),
testing::ValuesIn(EffectHelper::getTestValueSet<
AutomaticGainControlV2, int, Range::automaticGainControlV2,
AutomaticGainControlV2::fixedDigitalGainMb>(
diff --git a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp
index 5d522a3..e790d4f 100644
--- a/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalAudioCoreModuleTargetTest.cpp
@@ -3543,26 +3543,27 @@
<< "getSoundDose must return the same interface instance across invocations";
}
-TEST_P(AudioCoreSoundDose, GetSetOutputRs2) {
+TEST_P(AudioCoreSoundDose, GetSetOutputRs2UpperBound) {
if (soundDose == nullptr) {
GTEST_SKIP() << "SoundDose is not supported";
}
bool isSupported = false;
- EXPECT_NO_FATAL_FAILURE(TestAccessors<float>(soundDose.get(), &ISoundDose::getOutputRs2,
- &ISoundDose::setOutputRs2,
+ EXPECT_NO_FATAL_FAILURE(TestAccessors<float>(soundDose.get(),
+ &ISoundDose::getOutputRs2UpperBound,
+ &ISoundDose::setOutputRs2UpperBound,
/*validValues=*/{80.f, 90.f, 100.f},
/*invalidValues=*/{79.f, 101.f}, &isSupported));
- EXPECT_TRUE(isSupported) << "Getting/Setting RS2 must be supported";
+ EXPECT_TRUE(isSupported) << "Getting/Setting RS2 upper bound must be supported";
}
-TEST_P(AudioCoreSoundDose, CheckDefaultRs2Value) {
+TEST_P(AudioCoreSoundDose, CheckDefaultRs2UpperBound) {
if (soundDose == nullptr) {
GTEST_SKIP() << "SoundDose is not supported";
}
float rs2Value;
- ASSERT_IS_OK(soundDose->getOutputRs2(&rs2Value));
+ ASSERT_IS_OK(soundDose->getOutputRs2UpperBound(&rs2Value));
EXPECT_EQ(rs2Value, ISoundDose::DEFAULT_MAX_RS2);
}
diff --git a/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp b/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp
index 21f5eb5..7b9477d 100644
--- a/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalAudioEffectFactoryTargetTest.cpp
@@ -28,6 +28,7 @@
#include <android/binder_interface_utils.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
+#include <system/audio_effects/effect_uuid.h>
#include <aidl/android/hardware/audio/effect/IFactory.h>
@@ -38,10 +39,10 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectUuidNull;
+using aidl::android::hardware::audio::effect::getEffectUuidZero;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kEffectNullUuid;
-using aidl::android::hardware::audio::effect::kEffectZeroUuid;
using aidl::android::hardware::audio::effect::Processing;
using aidl::android::media::audio::common::AudioSource;
using aidl::android::media::audio::common::AudioStreamType;
@@ -65,8 +66,8 @@
std::unique_ptr<EffectFactoryHelper> mFactoryHelper;
std::shared_ptr<IFactory> mEffectFactory;
std::vector<std::shared_ptr<IEffect>> mEffects;
- const Descriptor::Identity kNullId = {.uuid = kEffectNullUuid};
- const Descriptor::Identity kZeroId = {.uuid = kEffectZeroUuid};
+ const Descriptor::Identity kNullId = {.uuid = getEffectUuidNull()};
+ const Descriptor::Identity kZeroId = {.uuid = getEffectUuidZero()};
const Descriptor kNullDesc = {.common.id = kNullId};
const Descriptor kZeroDesc = {.common.id = kZeroId};
@@ -132,13 +133,13 @@
TEST_P(EffectFactoryTest, ExpectAllAospEffectTypes) {
std::vector<Descriptor> descs;
std::set<AudioUuid> typeUuidSet(
- {aidl::android::hardware::audio::effect::kBassBoostTypeUUID,
- aidl::android::hardware::audio::effect::kEqualizerTypeUUID,
- aidl::android::hardware::audio::effect::kEnvReverbTypeUUID,
- aidl::android::hardware::audio::effect::kPresetReverbTypeUUID,
- aidl::android::hardware::audio::effect::kDynamicsProcessingTypeUUID,
- aidl::android::hardware::audio::effect::kHapticGeneratorTypeUUID,
- aidl::android::hardware::audio::effect::kVirtualizerTypeUUID});
+ {aidl::android::hardware::audio::effect::getEffectTypeUuidBassBoost(),
+ aidl::android::hardware::audio::effect::getEffectTypeUuidEqualizer(),
+ aidl::android::hardware::audio::effect::getEffectTypeUuidEnvReverb(),
+ aidl::android::hardware::audio::effect::getEffectTypeUuidPresetReverb(),
+ aidl::android::hardware::audio::effect::getEffectTypeUuidDynamicsProcessing(),
+ aidl::android::hardware::audio::effect::getEffectTypeUuidHapticGenerator(),
+ aidl::android::hardware::audio::effect::getEffectTypeUuidVirtualizer()});
EXPECT_IS_OK(mEffectFactory->queryEffects(std::nullopt, std::nullopt, std::nullopt, &descs));
EXPECT_TRUE(descs.size() >= typeUuidSet.size());
@@ -155,19 +156,22 @@
TEST_P(EffectFactoryTest, QueryNullTypeUuid) {
std::vector<Descriptor> descs;
- EXPECT_IS_OK(mEffectFactory->queryEffects(kEffectNullUuid, std::nullopt, std::nullopt, &descs));
+ EXPECT_IS_OK(
+ mEffectFactory->queryEffects(getEffectUuidNull(), std::nullopt, std::nullopt, &descs));
EXPECT_EQ(descs.size(), 0UL);
}
TEST_P(EffectFactoryTest, QueriedNullImplUuid) {
std::vector<Descriptor> descs;
- EXPECT_IS_OK(mEffectFactory->queryEffects(std::nullopt, kEffectNullUuid, std::nullopt, &descs));
+ EXPECT_IS_OK(
+ mEffectFactory->queryEffects(std::nullopt, getEffectUuidNull(), std::nullopt, &descs));
EXPECT_EQ(descs.size(), 0UL);
}
TEST_P(EffectFactoryTest, QueriedNullProxyUuid) {
std::vector<Descriptor> descs;
- EXPECT_IS_OK(mEffectFactory->queryEffects(std::nullopt, std::nullopt, kEffectNullUuid, &descs));
+ EXPECT_IS_OK(
+ mEffectFactory->queryEffects(std::nullopt, std::nullopt, getEffectUuidNull(), &descs));
EXPECT_EQ(descs.size(), 0UL);
}
diff --git a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp
index 824bd9f..9cfdc50 100644
--- a/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalBassBoostTargetTest.cpp
@@ -27,9 +27,9 @@
using aidl::android::hardware::audio::effect::BassBoost;
using aidl::android::hardware::audio::effect::Capability;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidBassBoost;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kBassBoostTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
using aidl::android::hardware::audio::effect::Range;
@@ -138,7 +138,7 @@
BassBoostTest, BassBoostParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kBassBoostTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidBassBoost())),
testing::ValuesIn(EffectHelper::getTestValueSet<BassBoost, int, Range::bassBoost,
BassBoost::strengthPm>(
kDescPair, EffectHelper::expandTestValueBasic<int>))),
diff --git a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp
index bd3b76b..5aeebde 100644
--- a/audio/aidl/vts/VtsHalDownmixTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalDownmixTargetTest.cpp
@@ -24,10 +24,9 @@
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::Downmix;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidDownmix;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kDownmixTypeUUID;
-using aidl::android::hardware::audio::effect::kEffectNullUuid;
using aidl::android::hardware::audio::effect::Parameter;
/**
@@ -122,7 +121,7 @@
INSTANTIATE_TEST_SUITE_P(
DownmixTest, DownmixParamTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDownmixTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDownmix())),
testing::ValuesIn(kTypeValues)),
[](const testing::TestParamInfo<DownmixParamTest::ParamType>& info) {
auto descriptor = std::get<PARAM_INSTANCE_NAME>(info.param).second;
diff --git a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
index 0b05b17..c62a24e 100644
--- a/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
+++ b/audio/aidl/vts/VtsHalDynamicsProcessingTest.cpp
@@ -30,9 +30,9 @@
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::DynamicsProcessing;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidDynamicsProcessing;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kDynamicsProcessingTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
/**
@@ -428,7 +428,7 @@
DynamicsProcessingTest, DynamicsProcessingTestEngineArchitecture,
::testing::Combine(
testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDynamicsProcessingTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),
testing::Values(DynamicsProcessing::ResolutionPreference::FAVOR_TIME_RESOLUTION,
DynamicsProcessing::ResolutionPreference::
FAVOR_FREQUENCY_RESOLUTION), // variant
@@ -480,7 +480,7 @@
INSTANTIATE_TEST_SUITE_P(
DynamicsProcessingTest, DynamicsProcessingTestInputGain,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDynamicsProcessingTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),
testing::ValuesIn(DynamicsProcessingTestInputGain::kInputGainTestSet)),
[](const auto& info) {
auto descriptor = std::get<INPUT_GAIN_INSTANCE_NAME>(info.param).second;
@@ -567,7 +567,7 @@
INSTANTIATE_TEST_SUITE_P(
DynamicsProcessingTest, DynamicsProcessingTestLimiterConfig,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDynamicsProcessingTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),
testing::Values(-1, 0, 1, 2), // channel count
testing::Bool(), // enable
testing::Values(3), // link group
@@ -642,7 +642,7 @@
DynamicsProcessingTest, DynamicsProcessingTestChannelConfig,
::testing::Combine(
testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDynamicsProcessingTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),
testing::ValuesIn(
DynamicsProcessingTestHelper::kChannelConfigTestSet), // channel config
testing::Bool()), // Engine inUse
@@ -778,7 +778,7 @@
DynamicsProcessingTest, DynamicsProcessingTestEqBandConfig,
::testing::Combine(
testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDynamicsProcessingTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),
testing::Values(-1, 0, 10), // channel ID
testing::ValuesIn(
DynamicsProcessingTestHelper::kChannelConfigTestSet), // channel enable
@@ -900,7 +900,7 @@
DynamicsProcessingTest, DynamicsProcessingTestMbcBandConfig,
::testing::Combine(
testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kDynamicsProcessingTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidDynamicsProcessing())),
testing::Values(-1, 0, 10), // channel count
testing::ValuesIn(
DynamicsProcessingTestHelper::kChannelConfigTestSet), // channel config
diff --git a/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp b/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp
index a2deb7c..05c2c5b 100644
--- a/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalEnvironmentalReverbTargetTest.cpp
@@ -24,9 +24,9 @@
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::EnvironmentalReverb;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidEnvReverb;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kEnvReverbTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
/**
@@ -200,7 +200,7 @@
EnvironmentalReverbTest, EnvironmentalReverbRoomLevelTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kEnvReverbTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
Range::environmentalReverb,
EnvironmentalReverb::roomLevelMb>(
@@ -239,13 +239,12 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbRoomHfLevelTest,
- ::testing::Combine(
- testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(IFactory::descriptor,
- kEnvReverbTypeUUID)),
- testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
- Range::environmentalReverb,
- EnvironmentalReverb::roomHfLevelMb>(
- kDescPair, EffectHelper::expandTestValueBasic<int>))),
+ ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
+ testing::ValuesIn(EffectHelper::getTestValueSet<
+ EnvironmentalReverb, int, Range::environmentalReverb,
+ EnvironmentalReverb::roomHfLevelMb>(
+ kDescPair, EffectHelper::expandTestValueBasic<int>))),
[](const testing::TestParamInfo<EnvironmentalReverbRoomHfLevelTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
std::string roomHfLevel = std::to_string(std::get<1>(info.param));
@@ -280,13 +279,12 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbDecayTimeTest,
- ::testing::Combine(
- testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(IFactory::descriptor,
- kEnvReverbTypeUUID)),
- testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
- Range::environmentalReverb,
- EnvironmentalReverb::decayTimeMs>(
- kDescPair, EffectHelper::expandTestValueBasic<int>))),
+ ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
+ testing::ValuesIn(EffectHelper::getTestValueSet<
+ EnvironmentalReverb, int, Range::environmentalReverb,
+ EnvironmentalReverb::decayTimeMs>(
+ kDescPair, EffectHelper::expandTestValueBasic<int>))),
[](const testing::TestParamInfo<EnvironmentalReverbDecayTimeTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
std::string decayTime = std::to_string(std::get<1>(info.param));
@@ -322,7 +320,7 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbDecayHfRatioTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kEnvReverbTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
testing::ValuesIn(EffectHelper::getTestValueSet<
EnvironmentalReverb, int, Range::environmentalReverb,
EnvironmentalReverb::decayHfRatioPm>(
@@ -362,13 +360,12 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbLevelTest,
- ::testing::Combine(
- testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(IFactory::descriptor,
- kEnvReverbTypeUUID)),
- testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
- Range::environmentalReverb,
- EnvironmentalReverb::levelMb>(
- kDescPair, EffectHelper::expandTestValueBasic<int>))),
+ ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
+ testing::ValuesIn(EffectHelper::getTestValueSet<
+ EnvironmentalReverb, int, Range::environmentalReverb,
+ EnvironmentalReverb::levelMb>(
+ kDescPair, EffectHelper::expandTestValueBasic<int>))),
[](const testing::TestParamInfo<EnvironmentalReverbDecayHfRatioTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
std::string level = std::to_string(std::get<1>(info.param));
@@ -403,13 +400,12 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbDelayTest,
- ::testing::Combine(
- testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(IFactory::descriptor,
- kEnvReverbTypeUUID)),
- testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
- Range::environmentalReverb,
- EnvironmentalReverb::delayMs>(
- kDescPair, EffectHelper::expandTestValueBasic<int>))),
+ ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
+ testing::ValuesIn(EffectHelper::getTestValueSet<
+ EnvironmentalReverb, int, Range::environmentalReverb,
+ EnvironmentalReverb::delayMs>(
+ kDescPair, EffectHelper::expandTestValueBasic<int>))),
[](const testing::TestParamInfo<EnvironmentalReverbDelayTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
std::string delay = std::to_string(std::get<1>(info.param));
@@ -444,13 +440,12 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbDiffusionTest,
- ::testing::Combine(
- testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(IFactory::descriptor,
- kEnvReverbTypeUUID)),
- testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
- Range::environmentalReverb,
- EnvironmentalReverb::diffusionPm>(
- kDescPair, EffectHelper::expandTestValueBasic<int>))),
+ ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
+ testing::ValuesIn(EffectHelper::getTestValueSet<
+ EnvironmentalReverb, int, Range::environmentalReverb,
+ EnvironmentalReverb::diffusionPm>(
+ kDescPair, EffectHelper::expandTestValueBasic<int>))),
[](const testing::TestParamInfo<EnvironmentalReverbDiffusionTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
std::string diffusion = std::to_string(std::get<1>(info.param));
@@ -485,13 +480,12 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbDensityTest,
- ::testing::Combine(
- testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(IFactory::descriptor,
- kEnvReverbTypeUUID)),
- testing::ValuesIn(EffectHelper::getTestValueSet<EnvironmentalReverb, int,
- Range::environmentalReverb,
- EnvironmentalReverb::densityPm>(
- kDescPair, EffectHelper::expandTestValueBasic<int>))),
+ ::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
+ testing::ValuesIn(EffectHelper::getTestValueSet<
+ EnvironmentalReverb, int, Range::environmentalReverb,
+ EnvironmentalReverb::densityPm>(
+ kDescPair, EffectHelper::expandTestValueBasic<int>))),
[](const testing::TestParamInfo<EnvironmentalReverbDensityTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
std::string density = std::to_string(std::get<1>(info.param));
@@ -527,7 +521,7 @@
INSTANTIATE_TEST_SUITE_P(
EnvironmentalReverbTest, EnvironmentalReverbBypassTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kEnvReverbTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidEnvReverb())),
testing::Bool()),
[](const testing::TestParamInfo<EnvironmentalReverbBypassTest::ParamType>& info) {
auto descriptor = std::get<0>(info.param).second;
diff --git a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp
index 9beb0a7..716a2c6 100644
--- a/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalEqualizerTargetTest.cpp
@@ -37,15 +37,14 @@
#include "AudioHalBinderServiceUtil.h"
#include "EffectHelper.h"
#include "TestUtils.h"
-#include "effect-impl/EffectUUID.h"
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
using aidl::android::hardware::audio::effect::Equalizer;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidEqualizer;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kEqualizerTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
/**
@@ -195,7 +194,7 @@
EqualizerTest, EqualizerTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kEqualizerTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidEqualizer())),
testing::ValuesIn(EffectHelper::getTestValueSet<Equalizer, int, Range::equalizer,
Equalizer::preset>(
kDescPair, EffectHelper::expandTestValueBasic<int>)),
diff --git a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
index 32ebc4f..7c79d1b 100644
--- a/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalHapticGeneratorTargetTest.cpp
@@ -28,10 +28,10 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidHapticGenerator;
using aidl::android::hardware::audio::effect::HapticGenerator;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kHapticGeneratorTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
/**
@@ -179,7 +179,7 @@
INSTANTIATE_TEST_SUITE_P(
HapticGeneratorValidTest, HapticGeneratorParamTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kHapticGeneratorTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidHapticGenerator())),
testing::ValuesIn(kHapticScaleIdValues),
testing::ValuesIn(kVibratorScaleValues),
testing::ValuesIn(kResonantFrequencyValues),
@@ -209,7 +209,7 @@
INSTANTIATE_TEST_SUITE_P(
HapticGeneratorInvalidTest, HapticGeneratorParamTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kHapticGeneratorTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidHapticGenerator())),
testing::Values(MIN_ID - 1),
testing::Values(HapticGenerator::VibratorScale::NONE),
testing::Values(MIN_FLOAT), testing::Values(MIN_FLOAT),
@@ -419,7 +419,7 @@
INSTANTIATE_TEST_SUITE_P(
HapticGeneratorScalesTest, HapticGeneratorScalesTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kHapticGeneratorTypeUUID))),
+ IFactory::descriptor, getEffectTypeUuidHapticGenerator()))),
[](const testing::TestParamInfo<HapticGeneratorScalesTest::ParamType>& info) {
auto descriptor = std::get<PARAM_INSTANCE_NAME>(info.param).second;
std::string name = "Implementor_" + descriptor.common.implementor + "_name_" +
diff --git a/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp b/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp
index 5faf7f4..96b048e 100644
--- a/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalLoudnessEnhancerTargetTest.cpp
@@ -25,9 +25,9 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidLoudnessEnhancer;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kLoudnessEnhancerTypeUUID;
using aidl::android::hardware::audio::effect::LoudnessEnhancer;
using aidl::android::hardware::audio::effect::Parameter;
@@ -126,7 +126,7 @@
INSTANTIATE_TEST_SUITE_P(
LoudnessEnhancerTest, LoudnessEnhancerParamTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kLoudnessEnhancerTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidLoudnessEnhancer())),
testing::ValuesIn(kGainMbValues)),
[](const testing::TestParamInfo<LoudnessEnhancerParamTest::ParamType>& info) {
auto descriptor = std::get<PARAM_INSTANCE_NAME>(info.param).second;
diff --git a/audio/aidl/vts/VtsHalNSTargetTest.cpp b/audio/aidl/vts/VtsHalNSTargetTest.cpp
index 4fcda6b..5525c80 100644
--- a/audio/aidl/vts/VtsHalNSTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalNSTargetTest.cpp
@@ -27,9 +27,9 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidNoiseSuppression;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kNoiseSuppressionTypeUUID;
using aidl::android::hardware::audio::effect::NoiseSuppression;
using aidl::android::hardware::audio::effect::Parameter;
@@ -146,7 +146,7 @@
INSTANTIATE_TEST_SUITE_P(
NSParamTest, NSParamTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kNoiseSuppressionTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidNoiseSuppression())),
testing::ValuesIn(NSParamTest::getLevelValues()),
testing::ValuesIn(NSParamTest::getTypeValues())),
[](const testing::TestParamInfo<NSParamTest::ParamType>& info) {
diff --git a/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp b/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp
index 7bce9c3..8fb4ebf 100644
--- a/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalPresetReverbTargetTest.cpp
@@ -24,10 +24,9 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidPresetReverb;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kEffectNullUuid;
-using aidl::android::hardware::audio::effect::kPresetReverbTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
using aidl::android::hardware::audio::effect::PresetReverb;
@@ -132,7 +131,7 @@
INSTANTIATE_TEST_SUITE_P(
PresetReverbTest, PresetReverbParamTest,
::testing::Combine(testing::ValuesIn(EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kPresetReverbTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidPresetReverb())),
testing::ValuesIn(kPresetsValues)),
[](const testing::TestParamInfo<PresetReverbParamTest::ParamType>& info) {
auto descriptor = std::get<PARAM_INSTANCE_NAME>(info.param).second;
diff --git a/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp b/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp
index 84b980f..6b1da63 100644
--- a/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalVirtualizerTargetTest.cpp
@@ -23,9 +23,9 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidVirtualizer;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kVirtualizerTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
using aidl::android::hardware::audio::effect::Virtualizer;
@@ -134,7 +134,7 @@
VirtualizerTest, VirtualizerParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kVirtualizerTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidVirtualizer())),
testing::ValuesIn(EffectHelper::getTestValueSet<
Virtualizer, int, Range::virtualizer, Virtualizer::strengthPm>(
kDescPair, EffectHelper::expandTestValueBasic<int>))),
diff --git a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp
index e273824..f41ba30 100644
--- a/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalVisualizerTargetTest.cpp
@@ -26,9 +26,9 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidVisualizer;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kVisualizerTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
using aidl::android::hardware::audio::effect::Visualizer;
@@ -177,7 +177,7 @@
VisualizerParamTest, VisualizerParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kVisualizerTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidVisualizer())),
testing::ValuesIn(EffectHelper::getTestValueSet<Visualizer, int, Range::visualizer,
Visualizer::captureSamples>(
kDescPair, EffectHelper::expandTestValueBasic<int>)),
diff --git a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp
index fbd10a8..90b7f37 100644
--- a/audio/aidl/vts/VtsHalVolumeTargetTest.cpp
+++ b/audio/aidl/vts/VtsHalVolumeTargetTest.cpp
@@ -23,9 +23,9 @@
using namespace android;
using aidl::android::hardware::audio::effect::Descriptor;
+using aidl::android::hardware::audio::effect::getEffectTypeUuidVolume;
using aidl::android::hardware::audio::effect::IEffect;
using aidl::android::hardware::audio::effect::IFactory;
-using aidl::android::hardware::audio::effect::kVolumeTypeUUID;
using aidl::android::hardware::audio::effect::Parameter;
using aidl::android::hardware::audio::effect::Volume;
@@ -140,7 +140,7 @@
VolumeTest, VolumeParamTest,
::testing::Combine(
testing::ValuesIn(kDescPair = EffectFactoryHelper::getAllEffectDescriptors(
- IFactory::descriptor, kVolumeTypeUUID)),
+ IFactory::descriptor, getEffectTypeUuidVolume())),
testing::ValuesIn(
EffectHelper::getTestValueSet<Volume, int, Range::volume, Volume::levelDb>(
kDescPair, EffectHelper::expandTestValueBasic<int>)),
diff --git a/automotive/evs/aidl/aidl_api/android.hardware.automotive.evs/current/android/hardware/automotive/evs/IEvsEnumerator.aidl b/automotive/evs/aidl/aidl_api/android.hardware.automotive.evs/current/android/hardware/automotive/evs/IEvsEnumerator.aidl
index 225b504..4cefdf2 100644
--- a/automotive/evs/aidl/aidl_api/android.hardware.automotive.evs/current/android/hardware/automotive/evs/IEvsEnumerator.aidl
+++ b/automotive/evs/aidl/aidl_api/android.hardware.automotive.evs/current/android/hardware/automotive/evs/IEvsEnumerator.aidl
@@ -47,4 +47,5 @@
android.hardware.automotive.evs.IEvsDisplay openDisplay(in int id);
android.hardware.automotive.evs.IEvsUltrasonicsArray openUltrasonicsArray(in String ultrasonicsArrayId);
void registerStatusCallback(in android.hardware.automotive.evs.IEvsEnumeratorStatusCallback callback);
+ android.hardware.automotive.evs.DisplayState getDisplayStateById(in int id);
}
diff --git a/automotive/evs/aidl/android/hardware/automotive/evs/IEvsEnumerator.aidl b/automotive/evs/aidl/android/hardware/automotive/evs/IEvsEnumerator.aidl
index 8698700..37b8ea5 100644
--- a/automotive/evs/aidl/android/hardware/automotive/evs/IEvsEnumerator.aidl
+++ b/automotive/evs/aidl/android/hardware/automotive/evs/IEvsEnumerator.aidl
@@ -78,12 +78,12 @@
byte[] getDisplayIdList();
/**
- * This call requests the current state of the display
+ * This call requests the current state of the primary display
*
* If there is no open display, this returns DisplayState::NOT_OPEN. otherwise, it returns
- * the actual state of the active display. This call is replicated on the IEvsEnumerator
- * interface in order to allow secondary clients to monitor the state of the EVS display
- * without acquiring exclusive ownership of the display.
+ * the actual state of the active primary display. This call is replicated on the
+ * IEvsEnumerator interface in order to allow secondary clients to monitor the state of the EVS
+ * display without acquiring exclusive ownership of the display.
*
* @return Current DisplayState of this Display.
* @throws EvsResult::OWNERSHIP_LOST if current display is inactive
@@ -163,4 +163,19 @@
* @param in callback IEvsEnumeratorStatusCallback implementation
*/
void registerStatusCallback(in IEvsEnumeratorStatusCallback callback);
+
+ /**
+ * This call requests the current state of the display
+ *
+ * If the requested display is not active, this returns DisplayState::NOT_OPEN. otherwise, it
+ * returns the actual state of the active display. This call is replicated on the
+ * IEvsEnumerator interface in order to allow secondary clients to monitor the state of the EVS
+ * display without acquiring exclusive ownership of the display.
+ *
+ * @param in id ID of the requested display.
+ * @return Current DisplayState of this Display.
+ * @throws EvsResult::OWNERSHIP_LOST if current display is inactive
+ * EvsResult::PERMISSION_DENIED if the process is not permitted to do this operation.
+ */
+ DisplayState getDisplayStateById(in int id);
}
diff --git a/automotive/evs/aidl/impl/default/Android.bp b/automotive/evs/aidl/impl/default/Android.bp
index bf6c0be..dbe0314 100644
--- a/automotive/evs/aidl/impl/default/Android.bp
+++ b/automotive/evs/aidl/impl/default/Android.bp
@@ -24,56 +24,13 @@
cc_binary {
name: "android.hardware.automotive.evs-aidl-default-service",
defaults: ["EvsHalDefaults"],
- vintf_fragments: ["manifest_evs-default-service.xml"],
+ local_include_dirs: ["include"],
+ vintf_fragments: ["evs-default-service.xml"],
init_rc: ["evs-default-service.rc"],
vendor: true,
relative_install_path: "hw",
- cflags: [
- "-DGL_GLEXT_PROTOTYPES",
- "-DEGL_EGLEXT_PROTOTYPES",
- "-Wall",
- "-Wextra",
- "-Werror",
- "-Wthread-safety",
- ],
- srcs: [
- ":libgui_frame_event_aidl",
- "src/*.cpp"
- ],
+ srcs: ["src/*.cpp"],
shared_libs: [
- "android.hardware.graphics.bufferqueue@1.0",
- "android.hardware.graphics.bufferqueue@2.0",
- "android.hidl.token@1.0-utils",
- "libEGL",
- "libGLESv2",
- "libbase",
"libbinder_ndk",
- "libbufferqueueconverter",
- "libcamera_metadata",
- "libhardware_legacy",
- "libhidlbase",
- "liblog",
- "libnativewindow",
- "libtinyxml2",
- "libui",
- "libutils",
- "libyuv",
],
- static_libs: [
- "android.frameworks.automotive.display-V1-ndk",
- "android.hardware.automotive.evs-V1-ndk",
- "android.hardware.common-V2-ndk",
- "libaidlcommonsupport",
- "libcutils",
- ],
- local_include_dirs: ["include"],
- include_dirs: ["frameworks/native/include/"],
- required: ["evs_mock_hal_configuration.xml"],
-}
-
-prebuilt_etc {
- name: "evs_mock_hal_configuration.xml",
- soc_specific: true,
- src: "resources/evs_mock_configuration.xml",
- sub_dir: "automotive/evs",
}
diff --git a/automotive/evs/aidl/impl/default/evs-default-service.rc b/automotive/evs/aidl/impl/default/evs-default-service.rc
index 3da41ff..ea8e689 100644
--- a/automotive/evs/aidl/impl/default/evs-default-service.rc
+++ b/automotive/evs/aidl/impl/default/evs-default-service.rc
@@ -1,8 +1,5 @@
service vendor.evs-hal-default /vendor/bin/hw/android.hardware.automotive.evs-aidl-default-service
class early_hal
- priority -20
- user graphics
- group automotive_evs camera
- onrestart restart cardisplayproxyd
- onrestart restart evsmanagerd
+ user automotive_evs
+ group automotive_evs
disabled
diff --git a/automotive/evs/aidl/impl/default/evs-default-service.xml b/automotive/evs/aidl/impl/default/evs-default-service.xml
new file mode 100644
index 0000000..96ff9f6
--- /dev/null
+++ b/automotive/evs/aidl/impl/default/evs-default-service.xml
@@ -0,0 +1,11 @@
+<manifest version="1.0" type="device">
+ <hal format="aidl">
+ <name>android.hardware.automotive.evs</name>
+ <transport>hwbinder</transport>
+ <version>1</version>
+ <interface>
+ <name>IEvsEnumerator</name>
+ <instance>hw/0</instance>
+ </interface>
+ </hal>
+</manifest>
diff --git a/automotive/evs/aidl/impl/default/include/ConfigManager.h b/automotive/evs/aidl/impl/default/include/ConfigManager.h
deleted file mode 100644
index 1d5fe77..0000000
--- a/automotive/evs/aidl/impl/default/include/ConfigManager.h
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#pragma once
-
-#include "ConfigManagerUtil.h"
-
-#include <aidl/android/hardware/automotive/evs/CameraParam.h>
-#include <aidl/android/hardware/graphics/common/PixelFormat.h>
-#include <android-base/logging.h>
-#include <system/camera_metadata.h>
-
-#include <tinyxml2.h>
-
-#include <string>
-#include <string_view>
-#include <unordered_map>
-#include <unordered_set>
-#include <vector>
-
-/*
- * Please note that this is different from what is defined in
- * libhardware/modules/camera/3_4/metadata/types.h; this has one additional
- * field to store a framerate.
- */
-typedef struct {
- int id;
- int width;
- int height;
- ::aidl::android::hardware::graphics::common::PixelFormat format;
- int type;
- int framerate;
-} StreamConfiguration;
-
-class ConfigManager final {
- public:
- static std::unique_ptr<ConfigManager> Create();
- ConfigManager(const ConfigManager&) = delete;
- ConfigManager& operator=(const ConfigManager&) = delete;
-
- /* Camera device's capabilities and metadata */
- class CameraInfo {
- public:
- CameraInfo() : characteristics(nullptr) {}
-
- virtual ~CameraInfo();
-
- /* Allocate memory for camera_metadata_t */
- bool allocate(size_t entry_cap, size_t data_cap) {
- if (characteristics != nullptr) {
- LOG(ERROR) << "Camera metadata is already allocated";
- return false;
- }
-
- characteristics = allocate_camera_metadata(entry_cap, data_cap);
- return characteristics != nullptr;
- }
-
- /*
- * List of supported controls that the primary client can program.
- * Paraemters are stored with its valid range
- */
- std::unordered_map<::aidl::android::hardware::automotive::evs::CameraParam,
- std::tuple<int32_t, int32_t, int32_t>>
- controls;
-
- /*
- * List of supported output stream configurations.
- */
- std::unordered_map<int32_t, StreamConfiguration> streamConfigurations;
-
- /*
- * Internal storage for camera metadata. Each entry holds a pointer to
- * data and number of elements
- */
- std::unordered_map<camera_metadata_tag_t, std::pair<void*, size_t>> cameraMetadata;
-
- /* Camera module characteristics */
- camera_metadata_t* characteristics;
- };
-
- class CameraGroupInfo : public CameraInfo {
- public:
- CameraGroupInfo() {}
-
- /* ID of member camera devices */
- std::unordered_set<std::string> devices;
-
- /* The capture operation of member camera devices are synchronized */
- int32_t synchronized = 0;
- };
-
- class SystemInfo {
- public:
- /* number of available cameras */
- int32_t numCameras = 0;
- };
-
- class DisplayInfo {
- public:
- /*
- * List of supported input stream configurations.
- */
- std::unordered_map<int32_t, StreamConfiguration> streamConfigurations;
- };
-
- /*
- * Return system information
- *
- * @return SystemInfo
- * Constant reference of SystemInfo.
- */
- const SystemInfo& getSystemInfo() {
- std::unique_lock<std::mutex> lock(mConfigLock);
- mConfigCond.wait(lock, [this] { return mIsReady; });
- return mSystemInfo;
- }
-
- /*
- * Return a list of camera identifiers
- *
- * This function assumes that it is not being called frequently.
- *
- * @return std::vector<std::string>
- * A vector that contains unique camera device identifiers.
- */
- std::vector<std::string> getCameraIdList() {
- std::unique_lock<std::mutex> lock(mConfigLock);
- mConfigCond.wait(lock, [this] { return mIsReady; });
-
- std::vector<std::string> aList;
- aList.reserve(mCameraInfo.size());
- for (auto&& v : mCameraInfo) {
- aList.push_back(v.first);
- }
-
- return aList;
- }
-
- /*
- * Return a list of camera group identifiers
- *
- * This function assumes that it is not being called frequently.
- *
- * @return std::vector<std::string>
- * A vector that contains unique camera device identifiers.
- */
- std::vector<std::string> getCameraGroupIdList() {
- std::unique_lock<std::mutex> lock(mConfigLock);
- mConfigCond.wait(lock, [this] { return mIsReady; });
-
- std::vector<std::string> aList;
- aList.reserve(mCameraGroups.size());
- for (auto&& v : mCameraGroups) {
- aList.push_back(v.first);
- }
-
- return aList;
- }
-
- /*
- * Return a pointer to the camera group
- *
- * @return CameraGroup
- * A pointer to a camera group identified by a given id.
- */
- std::unique_ptr<CameraGroupInfo>& getCameraGroupInfo(const std::string& gid) {
- std::unique_lock<std::mutex> lock(mConfigLock);
- mConfigCond.wait(lock, [this] { return mIsReady; });
-
- return mCameraGroups[gid];
- }
-
- /*
- * Return a camera metadata
- *
- * @param cameraId
- * Unique camera node identifier in string
- *
- * @return unique_ptr<CameraInfo>
- * A pointer to CameraInfo that is associated with a given camera
- * ID. This returns a null pointer if this does not recognize a
- * given camera identifier.
- */
- std::unique_ptr<CameraInfo>& getCameraInfo(const std::string& cameraId) noexcept {
- std::unique_lock<std::mutex> lock(mConfigLock);
- mConfigCond.wait(lock, [this] { return mIsReady; });
-
- return mCameraInfo[cameraId];
- }
-
- /*
- * Tell whether the configuration data is ready to be used
- *
- * @return bool
- * True if configuration data is ready to be consumed.
- */
- bool isReady() const { return mIsReady; }
-
- private:
- /* Constructors */
- ConfigManager() : mBinaryFilePath("") {}
-
- static std::string_view sConfigDefaultPath;
- static std::string_view sConfigOverridePath;
-
- /* System configuration */
- SystemInfo mSystemInfo;
-
- /* Internal data structure for camera device information */
- std::unordered_map<std::string, std::unique_ptr<CameraInfo>> mCameraInfo;
-
- /* Internal data structure for camera device information */
- std::unordered_map<std::string, std::unique_ptr<DisplayInfo>> mDisplayInfo;
-
- /* Camera groups are stored in <groud id, CameraGroup> hash map */
- std::unordered_map<std::string, std::unique_ptr<CameraGroupInfo>> mCameraGroups;
-
- /*
- * Camera positions are stored in <position, camera id set> hash map.
- * The position must be one of front, rear, left, and right.
- */
- std::unordered_map<std::string, std::unordered_set<std::string>> mCameraPosition;
-
- /* Configuration data lock */
- mutable std::mutex mConfigLock;
-
- /*
- * This condition is signalled when it completes a configuration data
- * preparation.
- */
- std::condition_variable mConfigCond;
-
- /* A path to a binary configuration file */
- const char* mBinaryFilePath;
-
- /* Configuration data readiness */
- bool mIsReady = false;
-
- /*
- * Parse a given EVS configuration file and store the information
- * internally.
- *
- * @return bool
- * True if it completes parsing a file successfully.
- */
- bool readConfigDataFromXML() noexcept;
-
- /*
- * read the information of the vehicle
- *
- * @param aSysElem
- * A pointer to "system" XML element.
- */
- void readSystemInfo(const tinyxml2::XMLElement* const aSysElem);
-
- /*
- * read the information of camera devices
- *
- * @param aCameraElem
- * A pointer to "camera" XML element that may contain multiple
- * "device" elements.
- */
- void readCameraInfo(const tinyxml2::XMLElement* const aCameraElem);
-
- /*
- * read display device information
- *
- * @param aDisplayElem
- * A pointer to "display" XML element that may contain multiple
- * "device" elements.
- */
- void readDisplayInfo(const tinyxml2::XMLElement* const aDisplayElem);
-
- /*
- * read camera device information
- *
- * @param aCamera
- * A pointer to CameraInfo that will be completed by this
- * method.
- * aDeviceElem
- * A pointer to "device" XML element that contains camera module
- * capability info and its characteristics.
- *
- * @return bool
- * Return false upon any failure in reading and processing camera
- * device information.
- */
- bool readCameraDeviceInfo(CameraInfo* aCamera, const tinyxml2::XMLElement* aDeviceElem);
-
- /*
- * read camera metadata
- *
- * @param aCapElem
- * A pointer to "cap" XML element.
- * @param aCamera
- * A pointer to CameraInfo that is being filled by this method.
- * @param dataSize
- * Required size of memory to store camera metadata found in this
- * method. This is calculated in this method and returned to the
- * caller for camera_metadata allocation.
- *
- * @return size_t
- * Number of camera metadata entries
- */
- size_t readCameraCapabilities(const tinyxml2::XMLElement* const aCapElem, CameraInfo* aCamera,
- size_t& dataSize);
-
- /*
- * read camera metadata
- *
- * @param aParamElem
- * A pointer to "characteristics" XML element.
- * @param aCamera
- * A pointer to CameraInfo that is being filled by this method.
- * @param dataSize
- * Required size of memory to store camera metadata found in this
- * method.
- *
- * @return size_t
- * Number of camera metadata entries
- */
- size_t readCameraMetadata(const tinyxml2::XMLElement* const aParamElem, CameraInfo* aCamera,
- size_t& dataSize);
-
- /*
- * construct camera_metadata_t from camera capabilities and metadata
- *
- * @param aCamera
- * A pointer to CameraInfo that is being filled by this method.
- * @param totalEntries
- * Number of camera metadata entries to be added.
- * @param totalDataSize
- * Sum of sizes of camera metadata entries to be added.
- *
- * @return bool
- * False if either it fails to allocate memory for camera metadata
- * or its size is not large enough to add all found camera metadata
- * entries.
- */
- bool constructCameraMetadata(CameraInfo* aCamera, const size_t totalEntries,
- const size_t totalDataSize);
-
- /*
- * Read configuration data from the binary file
- *
- * @return bool
- * True if it succeeds to read configuration data from a binary
- * file.
- */
- bool readConfigDataFromBinary();
-
- /*
- * Store configuration data to the file
- *
- * @return bool
- * True if it succeeds to serialize mCameraInfo to the file.
- */
- bool writeConfigDataToBinary();
-
- /*
- * debugging method to print out all XML elements and their attributes in
- * logcat message.
- *
- * @param aNode
- * A pointer to the root XML element to navigate.
- * @param prefix
- * A prefix to XML string.
- */
- void printElementNames(const tinyxml2::XMLElement* aNode, const std::string& prefix = "") const;
-};
diff --git a/automotive/evs/aidl/impl/default/include/ConfigManagerUtil.h b/automotive/evs/aidl/impl/default/include/ConfigManagerUtil.h
deleted file mode 100644
index 32b50d3..0000000
--- a/automotive/evs/aidl/impl/default/include/ConfigManagerUtil.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/automotive/evs/CameraParam.h>
-#include <aidl/android/hardware/graphics/common/PixelFormat.h>
-#include <android-base/macros.h>
-#include <system/camera_metadata.h>
-
-#include <string>
-#include <utility>
-
-class ConfigManagerUtil final {
- public:
- /**
- * Convert a given string into V4L2_CID_*
- */
- static bool convertToEvsCameraParam(
- const std::string& id,
- ::aidl::android::hardware::automotive::evs::CameraParam& camParam);
- /**
- * Convert a given string into android.hardware.graphics.common.PixelFormat
- */
- static bool convertToPixelFormat(const std::string& in,
- ::aidl::android::hardware::graphics::common::PixelFormat& out);
- /**
- * Convert a given string into corresponding camera metadata data tag defined in
- * system/media/camera/include/system/camera_metadata_tags.h
- */
- static bool convertToMetadataTag(const char* name, camera_metadata_tag& aTag);
- /**
- * Convert a given string into a floating value array
- */
- static float* convertFloatArray(const char* sz, const char* vals, size_t& count,
- const char delimiter = ',');
- /**
- * Trim a string
- */
- static std::string trimString(const std::string& src, const std::string& ws = " \n\r\t\f\v");
-
- /**
- * Convert a given string to corresponding camera capabilities
- */
- static bool convertToCameraCapability(
- const char* name, camera_metadata_enum_android_request_available_capabilities_t& cap);
-
- DISALLOW_IMPLICIT_CONSTRUCTORS(ConfigManagerUtil);
-};
diff --git a/automotive/evs/aidl/impl/default/include/DefaultEvsEnumerator.h b/automotive/evs/aidl/impl/default/include/DefaultEvsEnumerator.h
new file mode 100644
index 0000000..03a578d
--- /dev/null
+++ b/automotive/evs/aidl/impl/default/include/DefaultEvsEnumerator.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+#ifndef android_hardware_automotive_evs_aidl_impl_evshal_include_DefaultEvsHal_H_
+#define android_hardware_automotive_evs_aidl_impl_evshal_include_DefaultEvsHal_H_
+
+#include <aidl/android/hardware/automotive/evs/BnEvsEnumerator.h>
+
+namespace aidl::android::hardware::automotive::evs::implementation {
+
+class DefaultEvsEnumerator final
+ : public ::aidl::android::hardware::automotive::evs::BnEvsEnumerator {
+ ::ndk::ScopedAStatus isHardware(bool* flag) override;
+ ::ndk::ScopedAStatus openCamera(
+ const std::string& cameraId,
+ const ::aidl::android::hardware::automotive::evs::Stream& streamConfig,
+ std::shared_ptr<::aidl::android::hardware::automotive::evs::IEvsCamera>* obj) override;
+ ::ndk::ScopedAStatus closeCamera(
+ const std::shared_ptr<::aidl::android::hardware::automotive::evs::IEvsCamera>& obj)
+ override;
+ ::ndk::ScopedAStatus getCameraList(
+ std::vector<::aidl::android::hardware::automotive::evs::CameraDesc>* list) override;
+ ::ndk::ScopedAStatus getStreamList(
+ const ::aidl::android::hardware::automotive::evs::CameraDesc& desc,
+ std::vector<::aidl::android::hardware::automotive::evs::Stream>* _aidl_return) override;
+ ::ndk::ScopedAStatus openDisplay(
+ int32_t displayId,
+ std::shared_ptr<::aidl::android::hardware::automotive::evs::IEvsDisplay>* obj) override;
+ ::ndk::ScopedAStatus closeDisplay(
+ const std::shared_ptr<::aidl::android::hardware::automotive::evs::IEvsDisplay>& obj)
+ override;
+ ::ndk::ScopedAStatus getDisplayIdList(std::vector<uint8_t>* list) override;
+ ::ndk::ScopedAStatus getDisplayState(
+ ::aidl::android::hardware::automotive::evs::DisplayState* state) override;
+ ::ndk::ScopedAStatus registerStatusCallback(
+ const std::shared_ptr<
+ ::aidl::android::hardware::automotive::evs::IEvsEnumeratorStatusCallback>&
+ callback) override;
+ ::ndk::ScopedAStatus openUltrasonicsArray(
+ const std::string& id,
+ std::shared_ptr<::aidl::android::hardware::automotive::evs::IEvsUltrasonicsArray>* obj)
+ override;
+ ::ndk::ScopedAStatus closeUltrasonicsArray(
+ const std::shared_ptr<::aidl::android::hardware::automotive::evs::IEvsUltrasonicsArray>&
+ arr) override;
+ ::ndk::ScopedAStatus getUltrasonicsArrayList(
+ std::vector<::aidl::android::hardware::automotive::evs::UltrasonicsArrayDesc>* list)
+ override;
+};
+
+} // namespace aidl::android::hardware::automotive::evs::implementation
+
+#endif // android_hardware_automotive_evs_aidl_impl_evshal_include_DefaultEvsHal_H_
diff --git a/automotive/evs/aidl/impl/default/include/EvsEnumerator.h b/automotive/evs/aidl/impl/default/include/EvsEnumerator.h
deleted file mode 100644
index b11dd3e..0000000
--- a/automotive/evs/aidl/impl/default/include/EvsEnumerator.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#pragma once
-
-#include "ConfigManager.h"
-#include "EvsGlDisplay.h"
-#include "EvsMockCamera.h"
-
-#include <aidl/android/frameworks/automotive/display/ICarDisplayProxy.h>
-#include <aidl/android/hardware/automotive/evs/BnEvsEnumerator.h>
-#include <aidl/android/hardware/automotive/evs/CameraDesc.h>
-#include <aidl/android/hardware/automotive/evs/DeviceStatusType.h>
-#include <aidl/android/hardware/automotive/evs/IEvsCamera.h>
-#include <aidl/android/hardware/automotive/evs/IEvsEnumeratorStatusCallback.h>
-#include <aidl/android/hardware/automotive/evs/Stream.h>
-#include <utils/Thread.h>
-
-#include <atomic>
-#include <mutex>
-#include <optional>
-#include <thread>
-#include <unordered_map>
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-class EvsEnumerator final : public ::aidl::android::hardware::automotive::evs::BnEvsEnumerator {
- public:
- // Methods from ::aidl::android::hardware::automotive::evs::IEvsEnumerator
- ndk::ScopedAStatus isHardware(bool* flag) override;
- ndk::ScopedAStatus openCamera(const std::string& cameraId, const evs::Stream& streamConfig,
- std::shared_ptr<evs::IEvsCamera>* obj) override;
- ndk::ScopedAStatus closeCamera(const std::shared_ptr<evs::IEvsCamera>& obj) override;
- ndk::ScopedAStatus getCameraList(std::vector<evs::CameraDesc>* _aidl_return) override;
- ndk::ScopedAStatus getStreamList(const evs::CameraDesc& desc,
- std::vector<evs::Stream>* _aidl_return) override;
- ndk::ScopedAStatus openDisplay(int32_t displayId,
- std::shared_ptr<evs::IEvsDisplay>* obj) override;
- ndk::ScopedAStatus closeDisplay(const std::shared_ptr<evs::IEvsDisplay>& obj) override;
- ndk::ScopedAStatus getDisplayIdList(std::vector<uint8_t>* list) override;
- ndk::ScopedAStatus getDisplayState(evs::DisplayState* state) override;
- ndk::ScopedAStatus registerStatusCallback(
- const std::shared_ptr<evs::IEvsEnumeratorStatusCallback>& callback) override;
- ndk::ScopedAStatus openUltrasonicsArray(
- const std::string& id, std::shared_ptr<evs::IEvsUltrasonicsArray>* obj) override;
- ndk::ScopedAStatus closeUltrasonicsArray(
- const std::shared_ptr<evs::IEvsUltrasonicsArray>& obj) override;
- ndk::ScopedAStatus getUltrasonicsArrayList(
- std::vector<evs::UltrasonicsArrayDesc>* list) override;
-
- // Implementation details
- EvsEnumerator(const std::shared_ptr<
- ::aidl::android::frameworks::automotive::display::ICarDisplayProxy>&
- proxyService);
-
- void notifyDeviceStatusChange(const std::string_view& deviceName, evs::DeviceStatusType type);
-
- private:
- struct CameraRecord {
- evs::CameraDesc desc;
- std::weak_ptr<EvsMockCamera> activeInstance;
-
- CameraRecord(const char* cameraId) : desc() { desc.id = cameraId; }
- };
-
- class ActiveDisplays {
- public:
- struct DisplayInfo {
- int32_t id{-1};
- std::weak_ptr<EvsGlDisplay> displayWeak;
- uintptr_t internalDisplayRawAddr;
- };
-
- std::optional<DisplayInfo> popDisplay(int32_t id);
-
- std::optional<DisplayInfo> popDisplay(const std::shared_ptr<IEvsDisplay>& display);
-
- std::unordered_map<int32_t, DisplayInfo> getAllDisplays();
-
- bool tryInsert(int32_t id, const std::shared_ptr<EvsGlDisplay>& display);
-
- private:
- std::mutex mMutex;
- std::unordered_map<int32_t, DisplayInfo> mIdToDisplay GUARDED_BY(mMutex);
- std::unordered_map<uintptr_t, int32_t> mDisplayToId GUARDED_BY(mMutex);
- };
-
- bool checkPermission();
- void closeCamera_impl(const std::shared_ptr<evs::IEvsCamera>& pCamera,
- const std::string& cameraId);
-
- static bool qualifyCaptureDevice(const char* deviceName);
- static CameraRecord* findCameraById(const std::string& cameraId);
- static void enumerateCameras();
- static bool addCaptureDevice(const std::string& deviceName);
- static bool removeCaptureDevice(const std::string& deviceName);
- // Enumerate available displays and return an id of the internal display
- static uint64_t enumerateDisplays();
-
- static ActiveDisplays& mutableActiveDisplays();
-
- // NOTE: All members values are static so that all clients operate on the same state
- // That is to say, this is effectively a singleton despite the fact that HIDL
- // constructs a new instance for each client.
- // Because our server has a single thread in the thread pool, these values are
- // never accessed concurrently despite potentially having multiple instance objects
- // using them.
- static std::unordered_map<std::string, CameraRecord> sCameraList;
- // Object destructs if client dies.
- static std::mutex sLock; // Mutex on shared camera device list.
- static std::condition_variable sCameraSignal; // Signal on camera device addition.
- static std::unique_ptr<ConfigManager> sConfigManager; // ConfigManager
- static std::shared_ptr<::aidl::android::frameworks::automotive::display::ICarDisplayProxy>
- sDisplayProxy;
- static std::unordered_map<uint8_t, uint64_t> sDisplayPortList;
-
- uint64_t mInternalDisplayId;
- std::shared_ptr<evs::IEvsEnumeratorStatusCallback> mCallback;
-};
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/include/EvsGlDisplay.h b/automotive/evs/aidl/impl/default/include/EvsGlDisplay.h
deleted file mode 100644
index ceabd9e..0000000
--- a/automotive/evs/aidl/impl/default/include/EvsGlDisplay.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#pragma once
-
-#include "GlWrapper.h"
-
-#include <aidl/android/frameworks/automotive/display/ICarDisplayProxy.h>
-#include <aidl/android/hardware/automotive/evs/BnEvsDisplay.h>
-#include <aidl/android/hardware/automotive/evs/BufferDesc.h>
-#include <aidl/android/hardware/automotive/evs/DisplayDesc.h>
-#include <aidl/android/hardware/automotive/evs/DisplayState.h>
-
-#include <thread>
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-class EvsGlDisplay final : public BnEvsDisplay {
- public:
- // Methods from ::aidl::android::hardware::automotive::evs::IEvsDisplay
- // follow.
- ndk::ScopedAStatus getDisplayInfo(evs::DisplayDesc* _aidl_return) override;
- ndk::ScopedAStatus getDisplayState(evs::DisplayState* _aidl_return) override;
- ndk::ScopedAStatus getTargetBuffer(evs::BufferDesc* _aidl_return) override;
- ndk::ScopedAStatus returnTargetBufferForDisplay(const evs::BufferDesc& buffer) override;
- ndk::ScopedAStatus setDisplayState(evs::DisplayState state) override;
-
- // Implementation details
- EvsGlDisplay(const std::shared_ptr<automotivedisplay::ICarDisplayProxy>& service,
- uint64_t displayId);
- virtual ~EvsGlDisplay() override;
-
- // This gets called if another caller "steals" ownership of the display
- void forceShutdown();
-
- private:
- // A graphics buffer into which we'll store images. This member variable
- // will be protected by semaphores.
- struct BufferRecord {
- ::aidl::android::hardware::graphics::common::HardwareBufferDescription description;
- buffer_handle_t handle;
- int fingerprint;
- } mBuffer;
-
- // State of a rendering thread
- enum RenderThreadStates {
- STOPPED = 0,
- STOPPING = 1,
- RUN = 2,
- };
-
- uint64_t mDisplayId;
- evs::DisplayDesc mInfo;
- evs::DisplayState mRequestedState GUARDED_BY(mLock) = evs::DisplayState::NOT_VISIBLE;
- std::shared_ptr<automotivedisplay::ICarDisplayProxy> mDisplayProxy;
-
- GlWrapper mGlWrapper;
- mutable std::mutex mLock;
-
- // This tells us whether or not our buffer is in use. Protected by
- // semaphores.
- bool mBufferBusy = false;
-
- // Variables to synchronize a rendering thread w/ main and binder threads
- std::thread mRenderThread;
- RenderThreadStates mState GUARDED_BY(mLock) = STOPPED;
- bool mBufferReady = false;
- void renderFrames();
- bool initializeGlContextLocked() REQUIRES(mLock);
-
- std::condition_variable mBufferReadyToUse;
- std::condition_variable mBufferReadyToRender;
- std::condition_variable mBufferDone;
-};
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/include/EvsMockCamera.h b/automotive/evs/aidl/impl/default/include/EvsMockCamera.h
deleted file mode 100644
index 46d47e7..0000000
--- a/automotive/evs/aidl/impl/default/include/EvsMockCamera.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#pragma once
-
-#include "ConfigManager.h"
-
-#include <aidl/android/hardware/automotive/evs/BnEvsCamera.h>
-#include <aidl/android/hardware/automotive/evs/BufferDesc.h>
-#include <aidl/android/hardware/automotive/evs/CameraDesc.h>
-#include <aidl/android/hardware/automotive/evs/CameraParam.h>
-#include <aidl/android/hardware/automotive/evs/EvsResult.h>
-#include <aidl/android/hardware/automotive/evs/IEvsCameraStream.h>
-#include <aidl/android/hardware/automotive/evs/IEvsDisplay.h>
-#include <aidl/android/hardware/automotive/evs/ParameterRange.h>
-#include <aidl/android/hardware/automotive/evs/Stream.h>
-// #include <android-base/result.h>
-#include <android/hardware_buffer.h>
-#include <ui/GraphicBuffer.h>
-
-#include <functional>
-#include <thread>
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-class EvsMockCamera : public evs::BnEvsCamera {
- // This prevents constructors from direct access while it allows this class to
- // be instantiated via ndk::SharedRefBase::make<>.
- private:
- struct Sigil {
- explicit Sigil() = default;
- };
-
- public:
- // Methods from ::android::hardware::automotive::evs::IEvsCamera follow.
- ndk::ScopedAStatus doneWithFrame(const std::vector<evs::BufferDesc>& buffers) override;
- ndk::ScopedAStatus forcePrimaryClient(
- const std::shared_ptr<evs::IEvsDisplay>& display) override;
- ndk::ScopedAStatus getCameraInfo(evs::CameraDesc* _aidl_return) override;
- ndk::ScopedAStatus getExtendedInfo(int32_t opaqueIdentifier,
- std::vector<uint8_t>* value) override;
- ndk::ScopedAStatus getIntParameter(evs::CameraParam id, std::vector<int32_t>* value) override;
- ndk::ScopedAStatus getIntParameterRange(evs::CameraParam id,
- evs::ParameterRange* _aidl_return) override;
- ndk::ScopedAStatus getParameterList(std::vector<evs::CameraParam>* _aidl_return) override;
- ndk::ScopedAStatus getPhysicalCameraInfo(const std::string& deviceId,
- evs::CameraDesc* _aidl_return) override;
- ndk::ScopedAStatus importExternalBuffers(const std::vector<evs::BufferDesc>& buffers,
- int32_t* _aidl_return) override;
- ndk::ScopedAStatus pauseVideoStream() override;
- ndk::ScopedAStatus resumeVideoStream() override;
- ndk::ScopedAStatus setExtendedInfo(int32_t opaqueIdentifier,
- const std::vector<uint8_t>& opaqueValue) override;
- ndk::ScopedAStatus setIntParameter(evs::CameraParam id, int32_t value,
- std::vector<int32_t>* effectiveValue) override;
- ndk::ScopedAStatus setPrimaryClient() override;
- ndk::ScopedAStatus setMaxFramesInFlight(int32_t bufferCount) override;
- ndk::ScopedAStatus startVideoStream(
- const std::shared_ptr<evs::IEvsCameraStream>& receiver) override;
- ndk::ScopedAStatus stopVideoStream() override;
- ndk::ScopedAStatus unsetPrimaryClient() override;
-
- static std::shared_ptr<EvsMockCamera> Create(const char* deviceName);
- static std::shared_ptr<EvsMockCamera> Create(
- const char* deviceName, std::unique_ptr<ConfigManager::CameraInfo>& camInfo,
- const evs::Stream* streamCfg = nullptr);
- EvsMockCamera(const EvsMockCamera&) = delete;
- EvsMockCamera& operator=(const EvsMockCamera&) = delete;
-
- virtual ~EvsMockCamera() override;
- void shutdown();
-
- const evs::CameraDesc& getDesc() { return mDescription; }
-
- // Constructors
- EvsMockCamera(Sigil sigil, const char* deviceName,
- std::unique_ptr<ConfigManager::CameraInfo>& camInfo);
-
- private:
- // These three functions are expected to be called while mAccessLock is held
- bool setAvailableFrames_Locked(unsigned bufferCount);
- unsigned increaseAvailableFrames_Locked(unsigned numToAdd);
- unsigned decreaseAvailableFrames_Locked(unsigned numToRemove);
-
- void generateFrames();
- void fillMockFrame(buffer_handle_t handle, const AHardwareBuffer_Desc* pDesc);
- void returnBufferLocked(const uint32_t bufferId);
- ndk::ScopedAStatus stopVideoStream_impl();
-
- CameraDesc mDescription = {}; // The properties of this camera
-
- std::thread mCaptureThread; // The thread we'll use to synthesize frames
-
- // The callback used to deliver each frame
- std::shared_ptr<evs::IEvsCameraStream> mStream;
-
- // Horizontal pixel count in the buffers
- uint32_t mWidth = 0;
- // Vertical pixel count in the buffers
- uint32_t mHeight = 0;
- // Values from android_pixel_format_t
- uint32_t mFormat = HAL_PIXEL_FORMAT_RGBA_8888;
- // Values from from Gralloc.h
- uint64_t mUsage =
- GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_SW_READ_RARELY | GRALLOC_USAGE_SW_WRITE_OFTEN;
- // Bytes per line in the buffers
- uint32_t mStride = 0;
-
- struct BufferRecord {
- buffer_handle_t handle;
- bool inUse;
-
- explicit BufferRecord(buffer_handle_t h) : handle(h), inUse(false){};
- };
-
- std::vector<BufferRecord> mBuffers; // Graphics buffers to transfer images
- unsigned mFramesAllowed; // How many buffers are we currently using
- unsigned mFramesInUse; // How many buffers are currently outstanding
-
- enum StreamStateValues {
- STOPPED,
- RUNNING,
- STOPPING,
- DEAD,
- };
- StreamStateValues mStreamState;
-
- // Synchronization necessary to deconflict mCaptureThread from the main service thread
- std::mutex mAccessLock;
-
- // Static camera module information
- std::unique_ptr<ConfigManager::CameraInfo>& mCameraInfo;
-
- // For the extended info
- std::unordered_map<uint32_t, std::vector<uint8_t>> mExtInfo;
- std::unordered_map<CameraParam, int32_t> mParams;
-};
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/include/GlWrapper.h b/automotive/evs/aidl/impl/default/include/GlWrapper.h
deleted file mode 100644
index adb250c..0000000
--- a/automotive/evs/aidl/impl/default/include/GlWrapper.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#pragma once
-
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-#include <GLES3/gl3.h>
-#include <GLES3/gl3ext.h>
-#include <aidl/android/frameworks/automotive/display/ICarDisplayProxy.h>
-#include <aidl/android/hardware/automotive/evs/BufferDesc.h>
-#include <android-base/logging.h>
-#include <bufferqueueconverter/BufferQueueConverter.h>
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-namespace automotivedisplay = ::aidl::android::frameworks::automotive::display;
-
-class GlWrapper {
- public:
- GlWrapper() : mSurfaceHolder(::android::SurfaceHolderUniquePtr(nullptr, nullptr)) {}
- bool initialize(const std::shared_ptr<automotivedisplay::ICarDisplayProxy>& svc,
- uint64_t displayId);
- void shutdown();
-
- bool updateImageTexture(
- buffer_handle_t handle,
- const ::aidl::android::hardware::graphics::common::HardwareBufferDescription&
- description);
- void renderImageToScreen();
-
- void showWindow(const std::shared_ptr<automotivedisplay::ICarDisplayProxy>& svc,
- uint64_t displayId);
- void hideWindow(const std::shared_ptr<automotivedisplay::ICarDisplayProxy>& svc,
- uint64_t displayId);
-
- unsigned getWidth() { return mWidth; };
- unsigned getHeight() { return mHeight; };
-
- private:
- ::android::sp<::android::hardware::graphics::bufferqueue::V2_0::IGraphicBufferProducer>
- mGfxBufferProducer;
-
- EGLDisplay mDisplay;
- EGLSurface mSurface;
- EGLContext mContext;
-
- unsigned mWidth = 0;
- unsigned mHeight = 0;
-
- EGLImageKHR mKHRimage = EGL_NO_IMAGE_KHR;
-
- GLuint mTextureMap = 0;
- GLuint mShaderProgram = 0;
-
- // Opaque handle for a native hardware buffer defined in
- // frameworks/native/opengl/include/EGL/eglplatform.h
- ANativeWindow* mWindow;
-
- // Pointer to a Surface wrapper.
- ::android::SurfaceHolderUniquePtr mSurfaceHolder;
-};
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/manifest_evs-default-service.xml b/automotive/evs/aidl/impl/default/manifest_evs-default-service.xml
deleted file mode 100644
index 8480651..0000000
--- a/automotive/evs/aidl/impl/default/manifest_evs-default-service.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<manifest version="1.0" type="device">
- <hal format="aidl">
- <name>android.hardware.automotive.evs</name>
- <fqname>IEvsEnumerator/hw/0</fqname>
- </hal>
-</manifest>
diff --git a/automotive/evs/aidl/impl/default/resources/evs_mock_configuration.xml b/automotive/evs/aidl/impl/default/resources/evs_mock_configuration.xml
deleted file mode 100644
index 6cbc18e..0000000
--- a/automotive/evs/aidl/impl/default/resources/evs_mock_configuration.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<!-- Copyright (C) 2019 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.
--->
-
-<!-- Exterior View System Example Configuration
-
- Android Automotive axes are used to define coordinates.
- See https://source.android.com/devices/sensors/sensor-types#auto_axes
-
- Use evs_configuration.dtd with xmllint tool, to validate XML configuration file
--->
-
-<configuration>
- <!-- system configuration -->
- <system>
- <!-- number of cameras available to EVS -->
- <num_cameras value='1'/>
- </system>
-
- <!-- camera information -->
- <camera>
- <!-- camera device starts -->
- <device id='/dev/video10' position='rear'>
- <caps>
- <!-- list of supported controls -->
- <supported_controls>
- <control name='BRIGHTNESS' min='0' max='255'/>
- <control name='CONTRAST' min='0' max='255'/>
- </supported_controls>
-
- <stream id='0' width='640' height='360' format='RGBA_8888' framerate='30'/>
- </caps>
-
- <!-- list of parameters -->
- <characteristics>
- <!-- Camera intrinsic calibration matrix. See
- https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
- -->
- <parameter
- name='LENS_INTRINSIC_CALIBRATION'
- type='float'
- size='5'
- value='0.0,0.0,0.0,0.0,0.0'
- />
- </characteristics>
- </device>
- </camera>
- <display>
- <device id='display0' position='driver'>
- <caps>
- <!-- list of supported inpu stream configurations -->
- <stream id='0' width='1280' height='720' format='RGBA_8888' framerate='30'/>
- </caps>
- </device>
- </display>
-</configuration>
-
diff --git a/automotive/evs/aidl/impl/default/src/ConfigManager.cpp b/automotive/evs/aidl/impl/default/src/ConfigManager.cpp
deleted file mode 100644
index da791ed..0000000
--- a/automotive/evs/aidl/impl/default/src/ConfigManager.cpp
+++ /dev/null
@@ -1,992 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#include "ConfigManager.h"
-
-#include <android-base/parseint.h>
-#include <hardware/gralloc.h>
-#include <utils/SystemClock.h>
-
-#include <fstream>
-#include <sstream>
-#include <string_view>
-#include <thread>
-
-namespace {
-
-using ::aidl::android::hardware::automotive::evs::CameraParam;
-using ::aidl::android::hardware::graphics::common::PixelFormat;
-using ::tinyxml2::XMLAttribute;
-using ::tinyxml2::XMLDocument;
-using ::tinyxml2::XMLElement;
-
-} // namespace
-
-std::string_view ConfigManager::sConfigDefaultPath =
- "/vendor/etc/automotive/evs/evs_mock_hal_configuration.xml";
-std::string_view ConfigManager::sConfigOverridePath =
- "/vendor/etc/automotive/evs/evs_configuration_override.xml";
-
-void ConfigManager::printElementNames(const XMLElement* rootElem, const std::string& prefix) const {
- const XMLElement* curElem = rootElem;
-
- while (curElem != nullptr) {
- LOG(VERBOSE) << "[ELEM] " << prefix << curElem->Name();
- const XMLAttribute* curAttr = curElem->FirstAttribute();
- while (curAttr) {
- LOG(VERBOSE) << "[ATTR] " << prefix << curAttr->Name() << ": " << curAttr->Value();
- curAttr = curAttr->Next();
- }
-
- /* recursively go down to descendants */
- printElementNames(curElem->FirstChildElement(), prefix + "\t");
-
- curElem = curElem->NextSiblingElement();
- }
-}
-
-void ConfigManager::readCameraInfo(const XMLElement* const aCameraElem) {
- if (aCameraElem == nullptr) {
- LOG(WARNING) << "XML file does not have required camera element";
- return;
- }
-
- const XMLElement* curElem = aCameraElem->FirstChildElement();
- while (curElem != nullptr) {
- if (!strcmp(curElem->Name(), "group")) {
- /* camera group identifier */
- const char* id = curElem->FindAttribute("id")->Value();
-
- /* create a camera group to be filled */
- CameraGroupInfo* aCamera = new CameraGroupInfo();
-
- /* read camera device information */
- if (!readCameraDeviceInfo(aCamera, curElem)) {
- LOG(WARNING) << "Failed to read a camera information of " << id;
- delete aCamera;
- continue;
- }
-
- /* camera group synchronization */
- const char* sync = curElem->FindAttribute("synchronized")->Value();
- if (!strcmp(sync, "CALIBRATED")) {
- aCamera->synchronized = ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED;
- } else if (!strcmp(sync, "APPROXIMATE")) {
- aCamera->synchronized = ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE;
- } else {
- aCamera->synchronized = 0; // Not synchronized
- }
-
- /* add a group to hash map */
- mCameraGroups.insert_or_assign(id, std::unique_ptr<CameraGroupInfo>(aCamera));
- } else if (!std::strcmp(curElem->Name(), "device")) {
- /* camera unique identifier */
- const char* id = curElem->FindAttribute("id")->Value();
-
- /* camera mount location */
- const char* pos = curElem->FindAttribute("position")->Value();
-
- /* create a camera device to be filled */
- CameraInfo* aCamera = new CameraInfo();
-
- /* read camera device information */
- if (!readCameraDeviceInfo(aCamera, curElem)) {
- LOG(WARNING) << "Failed to read a camera information of " << id;
- delete aCamera;
- continue;
- }
-
- /* store read camera module information */
- mCameraInfo.insert_or_assign(id, std::unique_ptr<CameraInfo>(aCamera));
-
- /* assign a camera device to a position group */
- mCameraPosition[pos].insert(id);
- } else {
- /* ignore other device types */
- LOG(DEBUG) << "Unknown element " << curElem->Name() << " is ignored";
- }
-
- curElem = curElem->NextSiblingElement();
- }
-}
-
-bool ConfigManager::readCameraDeviceInfo(CameraInfo* aCamera, const XMLElement* aDeviceElem) {
- if (aCamera == nullptr || aDeviceElem == nullptr) {
- return false;
- }
-
- /* size information to allocate camera_metadata_t */
- size_t totalEntries = 0;
- size_t totalDataSize = 0;
-
- /* read device capabilities */
- totalEntries +=
- readCameraCapabilities(aDeviceElem->FirstChildElement("caps"), aCamera, totalDataSize);
-
- /* read camera metadata */
- totalEntries += readCameraMetadata(aDeviceElem->FirstChildElement("characteristics"), aCamera,
- totalDataSize);
-
- /* construct camera_metadata_t */
- if (!constructCameraMetadata(aCamera, totalEntries, totalDataSize)) {
- LOG(WARNING) << "Either failed to allocate memory or "
- << "allocated memory was not large enough";
- }
-
- return true;
-}
-
-size_t ConfigManager::readCameraCapabilities(const XMLElement* const aCapElem, CameraInfo* aCamera,
- size_t& dataSize) {
- if (aCapElem == nullptr || aCamera == nullptr) {
- return 0;
- }
-
- std::string token;
- const XMLElement* curElem = nullptr;
-
- /* a list of supported camera parameters/controls */
- curElem = aCapElem->FirstChildElement("supported_controls");
- if (curElem != nullptr) {
- const XMLElement* ctrlElem = curElem->FirstChildElement("control");
- while (ctrlElem != nullptr) {
- const char* nameAttr = ctrlElem->FindAttribute("name")->Value();
- int32_t minVal = INT32_MIN, maxVal = INT32_MAX;
- if (!android::base::ParseInt(ctrlElem->FindAttribute("min")->Value(), &minVal)) {
- LOG(WARNING) << "Failed to parse " << ctrlElem->FindAttribute("min")->Value();
- }
-
- if (!android::base::ParseInt(ctrlElem->FindAttribute("max")->Value(), &maxVal)) {
- LOG(WARNING) << "Failed to parse " << ctrlElem->FindAttribute("max")->Value();
- }
-
- int32_t stepVal = 1;
- const XMLAttribute* stepAttr = ctrlElem->FindAttribute("step");
- if (stepAttr != nullptr) {
- if (!android::base::ParseInt(stepAttr->Value(), &stepVal)) {
- LOG(WARNING) << "Failed to parse " << stepAttr->Value();
- }
- }
-
- CameraParam aParam;
- if (ConfigManagerUtil::convertToEvsCameraParam(nameAttr, aParam)) {
- aCamera->controls.insert_or_assign(
- aParam, std::move(std::make_tuple(minVal, maxVal, stepVal)));
- }
-
- ctrlElem = ctrlElem->NextSiblingElement("control");
- }
- }
-
- /* a list of camera stream configurations */
- curElem = aCapElem->FirstChildElement("stream");
- while (curElem != nullptr) {
- /* read 5 attributes */
- const XMLAttribute* idAttr = curElem->FindAttribute("id");
- const XMLAttribute* widthAttr = curElem->FindAttribute("width");
- const XMLAttribute* heightAttr = curElem->FindAttribute("height");
- const XMLAttribute* fmtAttr = curElem->FindAttribute("format");
- const XMLAttribute* fpsAttr = curElem->FindAttribute("framerate");
-
- int32_t id = -1;
- int32_t framerate = 0;
- if (!android::base::ParseInt(idAttr->Value(), &id)) {
- LOG(WARNING) << "Failed to parse " << idAttr->Value();
- }
- if (fpsAttr != nullptr) {
- if (!android::base::ParseInt(fpsAttr->Value(), &framerate)) {
- LOG(WARNING) << "Failed to parse " << fpsAttr->Value();
- }
- }
-
- PixelFormat format = PixelFormat::UNSPECIFIED;
- if (ConfigManagerUtil::convertToPixelFormat(fmtAttr->Value(), format)) {
- StreamConfiguration cfg = {
- .id = id,
- .format = format,
- .type = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
- .framerate = framerate,
- };
-
- if (!android::base::ParseInt(widthAttr->Value(), &cfg.width) ||
- !android::base::ParseInt(heightAttr->Value(), &cfg.height)) {
- LOG(WARNING) << "Failed to parse " << widthAttr->Value() << " and "
- << heightAttr->Value();
- }
- aCamera->streamConfigurations.insert_or_assign(id, cfg);
- }
-
- curElem = curElem->NextSiblingElement("stream");
- }
-
- dataSize = calculate_camera_metadata_entry_data_size(
- get_camera_metadata_tag_type(ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS),
- aCamera->streamConfigurations.size() * sizeof(StreamConfiguration));
-
- /* a single camera metadata entry contains multiple stream configurations */
- return dataSize > 0 ? 1 : 0;
-}
-
-size_t ConfigManager::readCameraMetadata(const XMLElement* const aParamElem, CameraInfo* aCamera,
- size_t& dataSize) {
- if (aParamElem == nullptr || aCamera == nullptr) {
- return 0;
- }
-
- const XMLElement* curElem = aParamElem->FirstChildElement("parameter");
- size_t numEntries = 0;
- camera_metadata_tag_t tag;
- while (curElem != nullptr) {
- if (ConfigManagerUtil::convertToMetadataTag(curElem->FindAttribute("name")->Value(), tag)) {
- switch (tag) {
- case ANDROID_LENS_DISTORTION:
- case ANDROID_LENS_POSE_ROTATION:
- case ANDROID_LENS_POSE_TRANSLATION:
- case ANDROID_LENS_INTRINSIC_CALIBRATION: {
- /* float[] */
- size_t count = 0;
- void* data = ConfigManagerUtil::convertFloatArray(
- curElem->FindAttribute("size")->Value(),
- curElem->FindAttribute("value")->Value(), count);
-
- aCamera->cameraMetadata.insert_or_assign(tag, std::make_pair(data, count));
-
- ++numEntries;
- dataSize += calculate_camera_metadata_entry_data_size(
- get_camera_metadata_tag_type(tag), count);
-
- break;
- }
-
- case ANDROID_REQUEST_AVAILABLE_CAPABILITIES: {
- camera_metadata_enum_android_request_available_capabilities_t* data =
- new camera_metadata_enum_android_request_available_capabilities_t[1];
- if (ConfigManagerUtil::convertToCameraCapability(
- curElem->FindAttribute("value")->Value(), *data)) {
- aCamera->cameraMetadata.insert_or_assign(tag,
- std::make_pair((void*)data, 1));
-
- ++numEntries;
- dataSize += calculate_camera_metadata_entry_data_size(
- get_camera_metadata_tag_type(tag), 1);
- }
- break;
- }
-
- case ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS: {
- /* a comma-separated list of physical camera devices */
- size_t len = strlen(curElem->FindAttribute("value")->Value());
- char* data = new char[len + 1];
- memcpy(data, curElem->FindAttribute("value")->Value(), len * sizeof(char));
-
- /* replace commas with null char */
- char* p = data;
- while (*p != '\0') {
- if (*p == ',') {
- *p = '\0';
- }
- ++p;
- }
-
- aCamera->cameraMetadata.insert_or_assign(tag,
- std::make_pair((void*)data, len + 1));
-
- ++numEntries;
- dataSize += calculate_camera_metadata_entry_data_size(
- get_camera_metadata_tag_type(tag), len);
- break;
- }
-
- /* TODO(b/140416878): add vendor-defined/custom tag support */
- default:
- LOG(WARNING) << "Parameter " << curElem->FindAttribute("name")->Value()
- << " is not supported";
- break;
- }
- } else {
- LOG(WARNING) << "Unsupported metadata tag " << curElem->FindAttribute("name")->Value()
- << " is found.";
- }
-
- curElem = curElem->NextSiblingElement("parameter");
- }
-
- return numEntries;
-}
-
-bool ConfigManager::constructCameraMetadata(CameraInfo* aCamera, size_t totalEntries,
- size_t totalDataSize) {
- if (aCamera == nullptr || !aCamera->allocate(totalEntries, totalDataSize)) {
- LOG(ERROR) << "Failed to allocate memory for camera metadata";
- return false;
- }
-
- const size_t numStreamConfigs = aCamera->streamConfigurations.size();
- std::unique_ptr<int32_t[]> data(new int32_t[sizeof(StreamConfiguration) * numStreamConfigs]);
- int32_t* ptr = data.get();
- for (auto& cfg : aCamera->streamConfigurations) {
- memcpy(ptr, &cfg.second, sizeof(StreamConfiguration));
- ptr += sizeof(StreamConfiguration);
- }
- int32_t err = add_camera_metadata_entry(
- aCamera->characteristics, ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS, data.get(),
- numStreamConfigs * sizeof(StreamConfiguration));
-
- if (err) {
- LOG(ERROR) << "Failed to add stream configurations to metadata, ignored";
- return false;
- }
-
- bool success = true;
- for (auto& [tag, entry] : aCamera->cameraMetadata) {
- /* try to add new camera metadata entry */
- int32_t err =
- add_camera_metadata_entry(aCamera->characteristics, tag, entry.first, entry.second);
- if (err) {
- LOG(ERROR) << "Failed to add an entry with a tag, " << std::hex << tag;
-
- /* may exceed preallocated capacity */
- LOG(ERROR) << "Camera metadata has "
- << get_camera_metadata_entry_count(aCamera->characteristics) << " / "
- << get_camera_metadata_entry_capacity(aCamera->characteristics)
- << " entries and "
- << get_camera_metadata_data_count(aCamera->characteristics) << " / "
- << get_camera_metadata_data_capacity(aCamera->characteristics)
- << " bytes are filled.";
- LOG(ERROR) << "\tCurrent metadata entry requires "
- << calculate_camera_metadata_entry_data_size(tag, entry.second) << " bytes.";
-
- success = false;
- }
- }
-
- LOG(VERBOSE) << "Camera metadata has "
- << get_camera_metadata_entry_count(aCamera->characteristics) << " / "
- << get_camera_metadata_entry_capacity(aCamera->characteristics) << " entries and "
- << get_camera_metadata_data_count(aCamera->characteristics) << " / "
- << get_camera_metadata_data_capacity(aCamera->characteristics)
- << " bytes are filled.";
- return success;
-}
-
-void ConfigManager::readSystemInfo(const XMLElement* const aSysElem) {
- if (aSysElem == nullptr) {
- return;
- }
-
- /*
- * Please note that this function assumes that a given system XML element
- * and its child elements follow DTD. If it does not, it will cause a
- * segmentation fault due to the failure of finding expected attributes.
- */
-
- /* read number of cameras available in the system */
- const XMLElement* xmlElem = aSysElem->FirstChildElement("num_cameras");
- if (xmlElem != nullptr) {
- if (!android::base::ParseInt(xmlElem->FindAttribute("value")->Value(),
- &mSystemInfo.numCameras)) {
- LOG(WARNING) << "Failed to parse " << xmlElem->FindAttribute("value")->Value();
- }
- }
-}
-
-void ConfigManager::readDisplayInfo(const XMLElement* const aDisplayElem) {
- if (aDisplayElem == nullptr) {
- LOG(WARNING) << "XML file does not have required camera element";
- return;
- }
-
- const XMLElement* curDev = aDisplayElem->FirstChildElement("device");
- while (curDev != nullptr) {
- const char* id = curDev->FindAttribute("id")->Value();
- std::unique_ptr<DisplayInfo> dpy(new DisplayInfo());
- if (dpy == nullptr) {
- LOG(ERROR) << "Failed to allocate memory for DisplayInfo";
- return;
- }
-
- const XMLElement* cap = curDev->FirstChildElement("caps");
- if (cap != nullptr) {
- const XMLElement* curStream = cap->FirstChildElement("stream");
- while (curStream != nullptr) {
- /* read 4 attributes */
- const XMLAttribute* idAttr = curStream->FindAttribute("id");
- const XMLAttribute* widthAttr = curStream->FindAttribute("width");
- const XMLAttribute* heightAttr = curStream->FindAttribute("height");
- const XMLAttribute* fmtAttr = curStream->FindAttribute("format");
-
- int32_t id = -1;
- if (!android::base::ParseInt(idAttr->Value(), &id)) {
- LOG(WARNING) << "Failed to parse " << idAttr->Value();
- }
- PixelFormat format = PixelFormat::UNSPECIFIED;
- if (ConfigManagerUtil::convertToPixelFormat(fmtAttr->Value(), format)) {
- StreamConfiguration cfg = {
- .id = id,
- .format = format,
- .type = ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT,
- };
- if (!android::base::ParseInt(widthAttr->Value(), &cfg.width) ||
- !android::base::ParseInt(heightAttr->Value(), &cfg.height)) {
- LOG(WARNING) << "Failed to parse " << widthAttr->Value() << " and "
- << heightAttr->Value();
- }
- dpy->streamConfigurations.insert_or_assign(id, cfg);
- }
-
- curStream = curStream->NextSiblingElement("stream");
- }
- }
-
- mDisplayInfo.insert_or_assign(id, std::move(dpy));
- curDev = curDev->NextSiblingElement("device");
- }
-
- return;
-}
-
-bool ConfigManager::readConfigDataFromXML() noexcept {
- XMLDocument xmlDoc;
-
- const int64_t parsingStart = android::elapsedRealtimeNano();
-
- /* load and parse a configuration file */
- xmlDoc.LoadFile(sConfigOverridePath.data());
- if (xmlDoc.ErrorID() != tinyxml2::XML_SUCCESS) {
- xmlDoc.LoadFile(sConfigDefaultPath.data());
- if (xmlDoc.ErrorID() != tinyxml2::XML_SUCCESS) {
- LOG(ERROR) << "Failed to load and/or parse a configuration file, " << xmlDoc.ErrorStr();
- return false;
- }
- }
-
- /* retrieve the root element */
- const XMLElement* rootElem = xmlDoc.RootElement();
- if (std::strcmp(rootElem->Name(), "configuration") != 0) {
- LOG(ERROR) << "A configuration file is not in the required format. "
- << "See /etc/automotive/evs/evs_configuration.dtd";
- return false;
- }
-
- std::unique_lock<std::mutex> lock(mConfigLock);
-
- /*
- * parse camera information; this needs to be done before reading system
- * information
- */
- readCameraInfo(rootElem->FirstChildElement("camera"));
-
- /* parse system information */
- readSystemInfo(rootElem->FirstChildElement("system"));
-
- /* parse display information */
- readDisplayInfo(rootElem->FirstChildElement("display"));
-
- /* configuration data is ready to be consumed */
- mIsReady = true;
-
- /* notify that configuration data is ready */
- lock.unlock();
- mConfigCond.notify_all();
-
- const int64_t parsingEnd = android::elapsedRealtimeNano();
- LOG(INFO) << "Parsing configuration file takes " << std::scientific
- << (double)(parsingEnd - parsingStart) / 1000000.0 << " ms.";
-
- return true;
-}
-
-bool ConfigManager::readConfigDataFromBinary() {
- /* Temporary buffer to hold configuration data read from a binary file */
- char mBuffer[1024];
-
- std::fstream srcFile;
- const int64_t readStart = android::elapsedRealtimeNano();
-
- srcFile.open(mBinaryFilePath, std::fstream::in | std::fstream::binary);
- if (!srcFile) {
- LOG(ERROR) << "Failed to open a source binary file, " << mBinaryFilePath;
- return false;
- }
-
- std::unique_lock<std::mutex> lock(mConfigLock);
- mIsReady = false;
-
- /* read configuration data into the internal buffer */
- srcFile.read(mBuffer, sizeof(mBuffer));
- LOG(VERBOSE) << __FUNCTION__ << ": " << srcFile.gcount() << " bytes are read.";
- char* p = mBuffer;
- size_t sz = 0;
-
- /* read number of camera group information entries */
- const size_t ngrps = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
-
- /* read each camera information entry */
- for (size_t cidx = 0; cidx < ngrps; ++cidx) {
- /* read camera identifier */
- std::string cameraId = *(reinterpret_cast<std::string*>(p));
- p += sizeof(std::string);
-
- /* size of camera_metadata_t */
- const size_t num_entry = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
- const size_t num_data = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
-
- /* create CameraInfo and add it to hash map */
- std::unique_ptr<ConfigManager::CameraGroupInfo> aCamera;
- if (aCamera == nullptr || !aCamera->allocate(num_entry, num_data)) {
- LOG(ERROR) << "Failed to create new CameraInfo object";
- mCameraInfo.clear();
- return false;
- }
-
- /* controls */
- typedef struct {
- CameraParam cid;
- int32_t min;
- int32_t max;
- int32_t step;
- } CameraCtrl;
- sz = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
- CameraCtrl* ptr = reinterpret_cast<CameraCtrl*>(p);
- for (size_t idx = 0; idx < sz; ++idx) {
- CameraCtrl temp = *ptr++;
- aCamera->controls.insert_or_assign(
- temp.cid, std::move(std::make_tuple(temp.min, temp.max, temp.step)));
- }
- p = reinterpret_cast<char*>(ptr);
-
- /* stream configurations */
- sz = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
- int32_t* i32_ptr = reinterpret_cast<int32_t*>(p);
- for (size_t idx = 0; idx < sz; ++idx) {
- const int32_t id = *i32_ptr++;
-
- StreamConfiguration temp;
- memcpy(&temp, i32_ptr, sizeof(StreamConfiguration));
- i32_ptr += sizeof(StreamConfiguration);
- aCamera->streamConfigurations.insert_or_assign(id, temp);
- }
- p = reinterpret_cast<char*>(i32_ptr);
-
- /* synchronization */
- aCamera->synchronized = *(reinterpret_cast<int32_t*>(p));
- p += sizeof(int32_t);
-
- for (size_t idx = 0; idx < num_entry; ++idx) {
- /* Read camera metadata entries */
- camera_metadata_tag_t tag = *reinterpret_cast<camera_metadata_tag_t*>(p);
- p += sizeof(camera_metadata_tag_t);
- const size_t count = *reinterpret_cast<size_t*>(p);
- p += sizeof(size_t);
-
- const int32_t type = get_camera_metadata_tag_type(tag);
- switch (type) {
- case TYPE_BYTE: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(uint8_t);
- break;
- }
- case TYPE_INT32: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(int32_t);
- break;
- }
- case TYPE_FLOAT: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(float);
- break;
- }
- case TYPE_INT64: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(int64_t);
- break;
- }
- case TYPE_DOUBLE: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(double);
- break;
- }
- case TYPE_RATIONAL:
- p += count * sizeof(camera_metadata_rational_t);
- break;
- default:
- LOG(WARNING) << "Type " << type << " is unknown; "
- << "data may be corrupted.";
- break;
- }
- }
-
- mCameraInfo.insert_or_assign(cameraId, std::move(aCamera));
- }
-
- /* read number of camera information entries */
- const size_t ncams = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
-
- /* read each camera information entry */
- for (size_t cidx = 0; cidx < ncams; ++cidx) {
- /* read camera identifier */
- std::string cameraId = *(reinterpret_cast<std::string*>(p));
- p += sizeof(std::string);
-
- /* size of camera_metadata_t */
- const size_t num_entry = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
- const size_t num_data = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
-
- /* create CameraInfo and add it to hash map */
- std::unique_ptr<ConfigManager::CameraInfo> aCamera;
- if (aCamera == nullptr || !aCamera->allocate(num_entry, num_data)) {
- LOG(ERROR) << "Failed to create new CameraInfo object";
- mCameraInfo.clear();
- return false;
- }
-
- /* controls */
- typedef struct {
- CameraParam cid;
- int32_t min;
- int32_t max;
- int32_t step;
- } CameraCtrl;
- sz = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
- CameraCtrl* ptr = reinterpret_cast<CameraCtrl*>(p);
- for (size_t idx = 0; idx < sz; ++idx) {
- CameraCtrl temp = *ptr++;
- aCamera->controls.insert_or_assign(
- temp.cid, std::move(std::make_tuple(temp.min, temp.max, temp.step)));
- }
- p = reinterpret_cast<char*>(ptr);
-
- /* stream configurations */
- sz = *(reinterpret_cast<size_t*>(p));
- p += sizeof(size_t);
- int32_t* i32_ptr = reinterpret_cast<int32_t*>(p);
- for (size_t idx = 0; idx < sz; ++idx) {
- const int32_t id = *i32_ptr++;
-
- StreamConfiguration temp;
- memcpy(&temp, i32_ptr, sizeof(StreamConfiguration));
- i32_ptr += sizeof(StreamConfiguration);
- aCamera->streamConfigurations.insert_or_assign(id, temp);
- }
- p = reinterpret_cast<char*>(i32_ptr);
-
- for (size_t idx = 0; idx < num_entry; ++idx) {
- /* Read camera metadata entries */
- camera_metadata_tag_t tag = *reinterpret_cast<camera_metadata_tag_t*>(p);
- p += sizeof(camera_metadata_tag_t);
- const size_t count = *reinterpret_cast<size_t*>(p);
- p += sizeof(size_t);
-
- const int32_t type = get_camera_metadata_tag_type(tag);
- switch (type) {
- case TYPE_BYTE: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(uint8_t);
- break;
- }
- case TYPE_INT32: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(int32_t);
- break;
- }
- case TYPE_FLOAT: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(float);
- break;
- }
- case TYPE_INT64: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(int64_t);
- break;
- }
- case TYPE_DOUBLE: {
- add_camera_metadata_entry(aCamera->characteristics, tag, p, count);
- p += count * sizeof(double);
- break;
- }
- case TYPE_RATIONAL:
- p += count * sizeof(camera_metadata_rational_t);
- break;
- default:
- LOG(WARNING) << "Type " << type << " is unknown; "
- << "data may be corrupted.";
- break;
- }
- }
-
- mCameraInfo.insert_or_assign(cameraId, std::move(aCamera));
- }
-
- mIsReady = true;
-
- /* notify that configuration data is ready */
- lock.unlock();
- mConfigCond.notify_all();
-
- int64_t readEnd = android::elapsedRealtimeNano();
- LOG(INFO) << __FUNCTION__ << " takes " << std::scientific
- << (double)(readEnd - readStart) / 1000000.0 << " ms.";
-
- return true;
-}
-
-bool ConfigManager::writeConfigDataToBinary() {
- std::fstream outFile;
-
- const int64_t writeStart = android::elapsedRealtimeNano();
-
- outFile.open(mBinaryFilePath, std::fstream::out | std::fstream::binary);
- if (!outFile) {
- LOG(ERROR) << "Failed to open a destination binary file, " << mBinaryFilePath;
- return false;
- }
-
- /* lock a configuration data while it's being written to the filesystem */
- std::lock_guard<std::mutex> lock(mConfigLock);
-
- /* write camera group information */
- size_t sz = mCameraGroups.size();
- outFile.write(reinterpret_cast<const char*>(&sz), sizeof(size_t));
- for (auto&& [camId, camInfo] : mCameraGroups) {
- LOG(INFO) << "Storing camera group " << camId;
-
- /* write a camera identifier string */
- outFile.write(reinterpret_cast<const char*>(&camId), sizeof(std::string));
-
- /* controls */
- sz = camInfo->controls.size();
- outFile.write(reinterpret_cast<const char*>(&sz), sizeof(size_t));
- for (auto&& [ctrl, range] : camInfo->controls) {
- outFile.write(reinterpret_cast<const char*>(&ctrl), sizeof(CameraParam));
- outFile.write(reinterpret_cast<const char*>(&std::get<0>(range)), sizeof(int32_t));
- outFile.write(reinterpret_cast<const char*>(&std::get<1>(range)), sizeof(int32_t));
- outFile.write(reinterpret_cast<const char*>(&std::get<2>(range)), sizeof(int32_t));
- }
-
- /* stream configurations */
- sz = camInfo->streamConfigurations.size();
- outFile.write(reinterpret_cast<const char*>(&sz), sizeof(size_t));
- for (auto&& [sid, cfg] : camInfo->streamConfigurations) {
- outFile.write(reinterpret_cast<const char*>(sid), sizeof(int32_t));
- outFile.write(reinterpret_cast<const char*>(&cfg), sizeof(cfg));
- }
-
- /* synchronization */
- outFile.write(reinterpret_cast<const char*>(&camInfo->synchronized), sizeof(int32_t));
-
- /* size of camera_metadata_t */
- size_t num_entry = 0;
- size_t num_data = 0;
- if (camInfo->characteristics != nullptr) {
- num_entry = get_camera_metadata_entry_count(camInfo->characteristics);
- num_data = get_camera_metadata_data_count(camInfo->characteristics);
- }
- outFile.write(reinterpret_cast<const char*>(&num_entry), sizeof(size_t));
- outFile.write(reinterpret_cast<const char*>(&num_data), sizeof(size_t));
-
- /* write each camera metadata entry */
- if (num_entry > 0) {
- camera_metadata_entry_t entry;
- for (size_t idx = 0; idx < num_entry; ++idx) {
- if (get_camera_metadata_entry(camInfo->characteristics, idx, &entry)) {
- LOG(ERROR) << "Failed to retrieve camera metadata entry " << idx;
- outFile.close();
- return false;
- }
-
- outFile.write(reinterpret_cast<const char*>(&entry.tag), sizeof(entry.tag));
- outFile.write(reinterpret_cast<const char*>(&entry.count), sizeof(entry.count));
-
- int32_t type = get_camera_metadata_tag_type(entry.tag);
- switch (type) {
- case TYPE_BYTE:
- outFile.write(reinterpret_cast<const char*>(entry.data.u8),
- sizeof(uint8_t) * entry.count);
- break;
- case TYPE_INT32:
- outFile.write(reinterpret_cast<const char*>(entry.data.i32),
- sizeof(int32_t) * entry.count);
- break;
- case TYPE_FLOAT:
- outFile.write(reinterpret_cast<const char*>(entry.data.f),
- sizeof(float) * entry.count);
- break;
- case TYPE_INT64:
- outFile.write(reinterpret_cast<const char*>(entry.data.i64),
- sizeof(int64_t) * entry.count);
- break;
- case TYPE_DOUBLE:
- outFile.write(reinterpret_cast<const char*>(entry.data.d),
- sizeof(double) * entry.count);
- break;
- case TYPE_RATIONAL:
- [[fallthrough]];
- default:
- LOG(WARNING) << "Type " << type << " is not supported.";
- break;
- }
- }
- }
- }
-
- /* write camera device information */
- sz = mCameraInfo.size();
- outFile.write(reinterpret_cast<const char*>(&sz), sizeof(size_t));
- for (auto&& [camId, camInfo] : mCameraInfo) {
- LOG(INFO) << "Storing camera " << camId;
-
- /* write a camera identifier string */
- outFile.write(reinterpret_cast<const char*>(&camId), sizeof(std::string));
-
- /* controls */
- sz = camInfo->controls.size();
- outFile.write(reinterpret_cast<const char*>(&sz), sizeof(size_t));
- for (auto& [ctrl, range] : camInfo->controls) {
- outFile.write(reinterpret_cast<const char*>(&ctrl), sizeof(CameraParam));
- outFile.write(reinterpret_cast<const char*>(&std::get<0>(range)), sizeof(int32_t));
- outFile.write(reinterpret_cast<const char*>(&std::get<1>(range)), sizeof(int32_t));
- outFile.write(reinterpret_cast<const char*>(&std::get<2>(range)), sizeof(int32_t));
- }
-
- /* stream configurations */
- sz = camInfo->streamConfigurations.size();
- outFile.write(reinterpret_cast<const char*>(&sz), sizeof(size_t));
- for (auto&& [sid, cfg] : camInfo->streamConfigurations) {
- outFile.write(reinterpret_cast<const char*>(sid), sizeof(int32_t));
- outFile.write(reinterpret_cast<const char*>(&cfg), sizeof(cfg));
- }
-
- /* size of camera_metadata_t */
- size_t num_entry = 0;
- size_t num_data = 0;
- if (camInfo->characteristics != nullptr) {
- num_entry = get_camera_metadata_entry_count(camInfo->characteristics);
- num_data = get_camera_metadata_data_count(camInfo->characteristics);
- }
- outFile.write(reinterpret_cast<const char*>(&num_entry), sizeof(size_t));
- outFile.write(reinterpret_cast<const char*>(&num_data), sizeof(size_t));
-
- /* write each camera metadata entry */
- if (num_entry > 0) {
- camera_metadata_entry_t entry;
- for (size_t idx = 0; idx < num_entry; ++idx) {
- if (get_camera_metadata_entry(camInfo->characteristics, idx, &entry)) {
- LOG(ERROR) << "Failed to retrieve camera metadata entry " << idx;
- outFile.close();
- return false;
- }
-
- outFile.write(reinterpret_cast<const char*>(&entry.tag), sizeof(entry.tag));
- outFile.write(reinterpret_cast<const char*>(&entry.count), sizeof(entry.count));
-
- int32_t type = get_camera_metadata_tag_type(entry.tag);
- switch (type) {
- case TYPE_BYTE:
- outFile.write(reinterpret_cast<const char*>(entry.data.u8),
- sizeof(uint8_t) * entry.count);
- break;
- case TYPE_INT32:
- outFile.write(reinterpret_cast<const char*>(entry.data.i32),
- sizeof(int32_t) * entry.count);
- break;
- case TYPE_FLOAT:
- outFile.write(reinterpret_cast<const char*>(entry.data.f),
- sizeof(float) * entry.count);
- break;
- case TYPE_INT64:
- outFile.write(reinterpret_cast<const char*>(entry.data.i64),
- sizeof(int64_t) * entry.count);
- break;
- case TYPE_DOUBLE:
- outFile.write(reinterpret_cast<const char*>(entry.data.d),
- sizeof(double) * entry.count);
- break;
- case TYPE_RATIONAL:
- [[fallthrough]];
- default:
- LOG(WARNING) << "Type " << type << " is not supported.";
- break;
- }
- }
- }
- }
-
- outFile.close();
- int64_t writeEnd = android::elapsedRealtimeNano();
- LOG(INFO) << __FUNCTION__ << " takes " << std::scientific
- << (double)(writeEnd - writeStart) / 1000000.0 << " ms.";
-
- return true;
-}
-
-std::unique_ptr<ConfigManager> ConfigManager::Create() {
- std::unique_ptr<ConfigManager> cfgMgr(new ConfigManager());
-
- /*
- * Read a configuration from XML file
- *
- * If this is too slow, ConfigManager::readConfigDataFromBinary() and
- * ConfigManager::writeConfigDataToBinary()can serialize CameraInfo object
- * to the filesystem and construct CameraInfo instead; this was
- * evaluated as 10x faster.
- */
- if (!cfgMgr->readConfigDataFromXML()) {
- return nullptr;
- } else {
- return cfgMgr;
- }
-}
-
-ConfigManager::CameraInfo::~CameraInfo() {
- free_camera_metadata(characteristics);
-
- for (auto&& [tag, val] : cameraMetadata) {
- switch (tag) {
- case ANDROID_LENS_DISTORTION:
- case ANDROID_LENS_POSE_ROTATION:
- case ANDROID_LENS_POSE_TRANSLATION:
- case ANDROID_LENS_INTRINSIC_CALIBRATION: {
- delete[] reinterpret_cast<float*>(val.first);
- break;
- }
-
- case ANDROID_REQUEST_AVAILABLE_CAPABILITIES: {
- delete[] reinterpret_cast<
- camera_metadata_enum_android_request_available_capabilities_t*>(val.first);
- break;
- }
-
- case ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS: {
- delete[] reinterpret_cast<char*>(val.first);
- break;
- }
-
- default:
- LOG(WARNING) << "Tag " << std::hex << tag << " is not supported. "
- << "Data may be corrupted?";
- break;
- }
- }
-}
diff --git a/automotive/evs/aidl/impl/default/src/ConfigManagerUtil.cpp b/automotive/evs/aidl/impl/default/src/ConfigManagerUtil.cpp
deleted file mode 100644
index e5fe6ef..0000000
--- a/automotive/evs/aidl/impl/default/src/ConfigManagerUtil.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#include "ConfigManagerUtil.h"
-
-#include <android-base/logging.h>
-#include <android-base/parsedouble.h>
-#include <android-base/parseint.h>
-#include <linux/videodev2.h>
-
-#include <sstream>
-#include <string>
-
-#include <system/graphics-base-v1.0.h>
-
-using ::aidl::android::hardware::automotive::evs::CameraParam;
-using ::aidl::android::hardware::graphics::common::PixelFormat;
-
-bool ConfigManagerUtil::convertToEvsCameraParam(const std::string& id, CameraParam& camParam) {
- std::string trimmed = ConfigManagerUtil::trimString(id);
- bool success = true;
-
- if (!trimmed.compare("BRIGHTNESS")) {
- camParam = CameraParam::BRIGHTNESS;
- } else if (!trimmed.compare("CONTRAST")) {
- camParam = CameraParam::CONTRAST;
- } else if (!trimmed.compare("AUTOGAIN")) {
- camParam = CameraParam::AUTOGAIN;
- } else if (!trimmed.compare("GAIN")) {
- camParam = CameraParam::GAIN;
- } else if (!trimmed.compare("AUTO_WHITE_BALANCE")) {
- camParam = CameraParam::AUTO_WHITE_BALANCE;
- } else if (!trimmed.compare("WHITE_BALANCE_TEMPERATURE")) {
- camParam = CameraParam::WHITE_BALANCE_TEMPERATURE;
- } else if (!trimmed.compare("SHARPNESS")) {
- camParam = CameraParam::SHARPNESS;
- } else if (!trimmed.compare("AUTO_EXPOSURE")) {
- camParam = CameraParam::AUTO_EXPOSURE;
- } else if (!trimmed.compare("ABSOLUTE_EXPOSURE")) {
- camParam = CameraParam::ABSOLUTE_EXPOSURE;
- } else if (!trimmed.compare("ABSOLUTE_FOCUS")) {
- camParam = CameraParam::ABSOLUTE_FOCUS;
- } else if (!trimmed.compare("AUTO_FOCUS")) {
- camParam = CameraParam::AUTO_FOCUS;
- } else if (!trimmed.compare("ABSOLUTE_ZOOM")) {
- camParam = CameraParam::ABSOLUTE_ZOOM;
- } else {
- success = false;
- }
-
- return success;
-}
-
-bool ConfigManagerUtil::convertToPixelFormat(const std::string& in, PixelFormat& out) {
- std::string trimmed = ConfigManagerUtil::trimString(in);
- bool success = true;
-
- if (!trimmed.compare("RGBA_8888")) {
- out = PixelFormat::RGBA_8888;
- } else if (!trimmed.compare("YCRCB_420_SP")) {
- out = PixelFormat::YCRCB_420_SP;
- } else if (!trimmed.compare("YCBCR_422_I")) {
- out = PixelFormat::YCBCR_422_I;
- } else {
- out = PixelFormat::UNSPECIFIED;
- success = false;
- }
-
- return success;
-}
-
-bool ConfigManagerUtil::convertToMetadataTag(const char* name, camera_metadata_tag& aTag) {
- if (!std::strcmp(name, "LENS_DISTORTION")) {
- aTag = ANDROID_LENS_DISTORTION;
- } else if (!std::strcmp(name, "LENS_INTRINSIC_CALIBRATION")) {
- aTag = ANDROID_LENS_INTRINSIC_CALIBRATION;
- } else if (!std::strcmp(name, "LENS_POSE_ROTATION")) {
- aTag = ANDROID_LENS_POSE_ROTATION;
- } else if (!std::strcmp(name, "LENS_POSE_TRANSLATION")) {
- aTag = ANDROID_LENS_POSE_TRANSLATION;
- } else if (!std::strcmp(name, "REQUEST_AVAILABLE_CAPABILITIES")) {
- aTag = ANDROID_REQUEST_AVAILABLE_CAPABILITIES;
- } else if (!std::strcmp(name, "LOGICAL_MULTI_CAMERA_PHYSICAL_IDS")) {
- aTag = ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS;
- } else {
- return false;
- }
-
- return true;
-}
-
-bool ConfigManagerUtil::convertToCameraCapability(
- const char* name, camera_metadata_enum_android_request_available_capabilities_t& cap) {
- if (!std::strcmp(name, "DEPTH_OUTPUT")) {
- cap = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT;
- } else if (!std::strcmp(name, "LOGICAL_MULTI_CAMERA")) {
- cap = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA;
- } else if (!std::strcmp(name, "MONOCHROME")) {
- cap = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME;
- } else if (!std::strcmp(name, "SECURE_IMAGE_DATA")) {
- cap = ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA;
- } else {
- return false;
- }
-
- return true;
-}
-
-float* ConfigManagerUtil::convertFloatArray(const char* sz, const char* vals, size_t& count,
- const char delimiter) {
- std::string size_string(sz);
- std::string value_string(vals);
-
- if (!android::base::ParseUint(size_string, &count)) {
- LOG(ERROR) << "Failed to parse " << size_string;
- return nullptr;
- }
- float* result = new float[count];
- std::stringstream values(value_string);
-
- int32_t idx = 0;
- std::string token;
- while (getline(values, token, delimiter)) {
- if (!android::base::ParseFloat(token, &result[idx++])) {
- LOG(WARNING) << "Failed to parse " << token;
- }
- }
-
- return result;
-}
-
-std::string ConfigManagerUtil::trimString(const std::string& src, const std::string& ws) {
- const auto s = src.find_first_not_of(ws);
- if (s == std::string::npos) {
- return "";
- }
-
- const auto e = src.find_last_not_of(ws);
- const auto r = e - s + 1;
-
- return src.substr(s, r);
-}
diff --git a/automotive/evs/aidl/impl/default/src/DefaultEvsEnumerator.cpp b/automotive/evs/aidl/impl/default/src/DefaultEvsEnumerator.cpp
new file mode 100644
index 0000000..5a81d05
--- /dev/null
+++ b/automotive/evs/aidl/impl/default/src/DefaultEvsEnumerator.cpp
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+// TODO(b/203661081): Remove below lines to disable compiler warnings.
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-parameter"
+
+#define LOG_TAG "DefaultEvsEnumerator"
+
+#include <DefaultEvsEnumerator.h>
+
+namespace aidl::android::hardware::automotive::evs::implementation {
+
+using ::ndk::ScopedAStatus;
+
+ScopedAStatus DefaultEvsEnumerator::isHardware(bool* flag) {
+ // This returns true always.
+ *flag = true;
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::openCamera(const std::string& cameraId,
+ const Stream& streamConfig,
+ std::shared_ptr<IEvsCamera>* obj) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::closeCamera(const std::shared_ptr<IEvsCamera>& obj) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::getCameraList(std::vector<CameraDesc>* list) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::getStreamList(const CameraDesc& desc,
+ std::vector<Stream>* _aidl_return) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::openDisplay(int32_t displayId,
+ std::shared_ptr<IEvsDisplay>* obj) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::closeDisplay(const std::shared_ptr<IEvsDisplay>& state) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::getDisplayIdList(std::vector<uint8_t>* list) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::getDisplayState(DisplayState* state) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::registerStatusCallback(
+ const std::shared_ptr<IEvsEnumeratorStatusCallback>& callback) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::openUltrasonicsArray(
+ const std::string& id, std::shared_ptr<IEvsUltrasonicsArray>* obj) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::closeUltrasonicsArray(
+ const std::shared_ptr<IEvsUltrasonicsArray>& obj) {
+ return ScopedAStatus::ok();
+}
+
+ScopedAStatus DefaultEvsEnumerator::getUltrasonicsArrayList(
+ std::vector<UltrasonicsArrayDesc>* list) {
+ return ScopedAStatus::ok();
+}
+
+} // namespace aidl::android::hardware::automotive::evs::implementation
+
+#pragma clang diagnostic pop
diff --git a/automotive/evs/aidl/impl/default/src/EvsEnumerator.cpp b/automotive/evs/aidl/impl/default/src/EvsEnumerator.cpp
deleted file mode 100644
index 6e2405d..0000000
--- a/automotive/evs/aidl/impl/default/src/EvsEnumerator.cpp
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#include "EvsEnumerator.h"
-
-#include "ConfigManager.h"
-#include "EvsGlDisplay.h"
-#include "EvsMockCamera.h"
-
-#include <aidl/android/hardware/automotive/evs/EvsResult.h>
-#include <aidl/android/hardware/graphics/common/BufferUsage.h>
-#include <aidl/android/hardware/graphics/common/PixelFormat.h>
-#include <cutils/android_filesystem_config.h>
-
-#include <set>
-#include <string_view>
-
-namespace {
-
-using ::aidl::android::frameworks::automotive::display::ICarDisplayProxy;
-using ::aidl::android::hardware::graphics::common::BufferUsage;
-using ::ndk::ScopedAStatus;
-using std::chrono_literals::operator""s;
-
-// Constants
-constexpr std::chrono::seconds kEnumerationTimeout = 10s;
-constexpr uint64_t kInvalidDisplayId = std::numeric_limits<uint64_t>::max();
-const std::set<uid_t> kAllowedUids = {AID_AUTOMOTIVE_EVS, AID_SYSTEM, AID_ROOT};
-
-} // namespace
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-// NOTE: All members values are static so that all clients operate on the same state
-// That is to say, this is effectively a singleton despite the fact that HIDL
-// constructs a new instance for each client.
-std::unordered_map<std::string, EvsEnumerator::CameraRecord> EvsEnumerator::sCameraList;
-std::mutex EvsEnumerator::sLock;
-std::condition_variable EvsEnumerator::sCameraSignal;
-std::unique_ptr<ConfigManager> EvsEnumerator::sConfigManager;
-std::shared_ptr<ICarDisplayProxy> EvsEnumerator::sDisplayProxy;
-std::unordered_map<uint8_t, uint64_t> EvsEnumerator::sDisplayPortList;
-
-EvsEnumerator::ActiveDisplays& EvsEnumerator::mutableActiveDisplays() {
- static ActiveDisplays active_displays;
- return active_displays;
-}
-
-EvsEnumerator::EvsEnumerator(const std::shared_ptr<ICarDisplayProxy>& proxyService) {
- LOG(DEBUG) << "EvsEnumerator is created.";
-
- if (!sConfigManager) {
- /* loads and initializes ConfigManager in a separate thread */
- sConfigManager = ConfigManager::Create();
- }
-
- if (!sDisplayProxy) {
- /* sets a car-window service handle */
- sDisplayProxy = proxyService;
- }
-
- // Enumerate existing devices
- enumerateCameras();
- mInternalDisplayId = enumerateDisplays();
-}
-
-bool EvsEnumerator::checkPermission() {
- const auto uid = AIBinder_getCallingUid();
- if (kAllowedUids.find(uid) == kAllowedUids.end()) {
- LOG(ERROR) << "EVS access denied: "
- << "pid = " << AIBinder_getCallingPid() << ", uid = " << uid;
- return false;
- }
-
- return true;
-}
-
-void EvsEnumerator::enumerateCameras() {
- if (!sConfigManager) {
- return;
- }
-
- for (auto id : sConfigManager->getCameraIdList()) {
- CameraRecord rec(id.data());
- std::unique_ptr<ConfigManager::CameraInfo>& pInfo = sConfigManager->getCameraInfo(id);
- if (pInfo) {
- uint8_t* ptr = reinterpret_cast<uint8_t*>(pInfo->characteristics);
- const size_t len = get_camera_metadata_size(pInfo->characteristics);
- rec.desc.metadata.insert(rec.desc.metadata.end(), ptr, ptr + len);
- }
- sCameraList.insert_or_assign(id, std::move(rec));
- }
-}
-
-uint64_t EvsEnumerator::enumerateDisplays() {
- LOG(INFO) << __FUNCTION__ << ": Starting display enumeration";
- uint64_t internalDisplayId = kInvalidDisplayId;
- if (!sDisplayProxy) {
- LOG(ERROR) << "ICarDisplayProxy is not available!";
- return internalDisplayId;
- }
-
- std::vector<int64_t> displayIds;
- if (auto status = sDisplayProxy->getDisplayIdList(&displayIds); !status.isOk()) {
- LOG(ERROR) << "Failed to retrieve a display id list"
- << ::android::statusToString(status.getStatus());
- return internalDisplayId;
- }
-
- if (displayIds.size() > 0) {
- // The first entry of the list is the internal display. See
- // SurfaceFlinger::getPhysicalDisplayIds() implementation.
- internalDisplayId = displayIds[0];
- for (const auto& id : displayIds) {
- const auto port = id & 0xFF;
- LOG(INFO) << "Display " << std::hex << id << " is detected on the port, " << port;
- sDisplayPortList.insert_or_assign(port, id);
- }
- }
-
- LOG(INFO) << "Found " << sDisplayPortList.size() << " displays";
- return internalDisplayId;
-}
-
-// Methods from ::android::hardware::automotive::evs::IEvsEnumerator follow.
-ScopedAStatus EvsEnumerator::getCameraList(std::vector<CameraDesc>* _aidl_return) {
- LOG(DEBUG) << __FUNCTION__;
- if (!checkPermission()) {
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::PERMISSION_DENIED));
- }
-
- {
- std::unique_lock<std::mutex> lock(sLock);
- if (sCameraList.size() < 1) {
- // No qualified device has been found. Wait until new device is ready,
- // for 10 seconds.
- if (!sCameraSignal.wait_for(lock, kEnumerationTimeout,
- [] { return sCameraList.size() > 0; })) {
- LOG(DEBUG) << "Timer expired. No new device has been added.";
- }
- }
- }
-
- // Build up a packed array of CameraDesc for return
- _aidl_return->resize(sCameraList.size());
- unsigned i = 0;
- for (const auto& [key, cam] : sCameraList) {
- (*_aidl_return)[i++] = cam.desc;
- }
-
- if (sConfigManager) {
- // Adding camera groups that represent logical camera devices
- auto camGroups = sConfigManager->getCameraGroupIdList();
- for (auto&& id : camGroups) {
- if (sCameraList.find(id) != sCameraList.end()) {
- // Already exists in the _aidl_return
- continue;
- }
-
- std::unique_ptr<ConfigManager::CameraGroupInfo>& tempInfo =
- sConfigManager->getCameraGroupInfo(id);
- CameraRecord cam(id.data());
- if (tempInfo) {
- uint8_t* ptr = reinterpret_cast<uint8_t*>(tempInfo->characteristics);
- const size_t len = get_camera_metadata_size(tempInfo->characteristics);
- cam.desc.metadata.insert(cam.desc.metadata.end(), ptr, ptr + len);
- }
-
- sCameraList.insert_or_assign(id, cam);
- _aidl_return->push_back(cam.desc);
- }
- }
-
- // Send back the results
- LOG(DEBUG) << "Reporting " << sCameraList.size() << " cameras available";
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::getStreamList(const CameraDesc& desc,
- std::vector<Stream>* _aidl_return) {
- using AidlPixelFormat = ::aidl::android::hardware::graphics::common::PixelFormat;
-
- camera_metadata_t* pMetadata = const_cast<camera_metadata_t*>(
- reinterpret_cast<const camera_metadata_t*>(desc.metadata.data()));
- camera_metadata_entry_t streamConfig;
- if (!find_camera_metadata_entry(pMetadata, ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,
- &streamConfig)) {
- const unsigned numStreamConfigs = streamConfig.count / sizeof(StreamConfiguration);
- _aidl_return->resize(numStreamConfigs);
- const StreamConfiguration* pCurrentConfig =
- reinterpret_cast<StreamConfiguration*>(streamConfig.data.i32);
- for (unsigned i = 0; i < numStreamConfigs; ++i, ++pCurrentConfig) {
- // Build ::aidl::android::hardware::automotive::evs::Stream from
- // StreamConfiguration.
- Stream current = {
- .id = pCurrentConfig->id,
- .streamType =
- pCurrentConfig->type ==
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT
- ? StreamType::INPUT
- : StreamType::OUTPUT,
- .width = pCurrentConfig->width,
- .height = pCurrentConfig->height,
- .format = static_cast<AidlPixelFormat>(pCurrentConfig->format),
- .usage = BufferUsage::CAMERA_INPUT,
- .rotation = Rotation::ROTATION_0,
- };
-
- (*_aidl_return)[i] = current;
- }
- }
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::openCamera(const std::string& id, const Stream& cfg,
- std::shared_ptr<IEvsCamera>* obj) {
- LOG(DEBUG) << __FUNCTION__;
- if (!checkPermission()) {
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::PERMISSION_DENIED));
- }
-
- // Is this a recognized camera id?
- CameraRecord* pRecord = findCameraById(id);
- if (!pRecord) {
- LOG(ERROR) << id << " does not exist!";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
-
- // Has this camera already been instantiated by another caller?
- std::shared_ptr<EvsMockCamera> pActiveCamera = pRecord->activeInstance.lock();
- if (pActiveCamera) {
- LOG(WARNING) << "Killing previous camera because of new caller";
- closeCamera(pActiveCamera);
- }
-
- // Construct a camera instance for the caller
- if (!sConfigManager) {
- pActiveCamera = EvsMockCamera::Create(id.data());
- } else {
- pActiveCamera = EvsMockCamera::Create(id.data(), sConfigManager->getCameraInfo(id), &cfg);
- }
-
- pRecord->activeInstance = pActiveCamera;
- if (!pActiveCamera) {
- LOG(ERROR) << "Failed to create new EvsMockCamera object for " << id;
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::UNDERLYING_SERVICE_ERROR));
- }
-
- *obj = pActiveCamera;
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::closeCamera(const std::shared_ptr<IEvsCamera>& cameraObj) {
- LOG(DEBUG) << __FUNCTION__;
-
- if (!cameraObj) {
- LOG(ERROR) << "Ignoring call to closeCamera with null camera ptr";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
-
- // Get the camera id so we can find it in our list
- CameraDesc desc;
- auto status = cameraObj->getCameraInfo(&desc);
- if (!status.isOk()) {
- LOG(ERROR) << "Failed to read a camera descriptor";
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::UNDERLYING_SERVICE_ERROR));
- }
- auto cameraId = desc.id;
- closeCamera_impl(cameraObj, cameraId);
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::openDisplay(int32_t id, std::shared_ptr<IEvsDisplay>* displayObj) {
- LOG(DEBUG) << __FUNCTION__;
- if (!checkPermission()) {
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::PERMISSION_DENIED));
- }
-
- auto& displays = mutableActiveDisplays();
-
- if (auto existing_display_search = displays.popDisplay(id)) {
- // If we already have a display active, then we need to shut it down so we can
- // give exclusive access to the new caller.
- std::shared_ptr<EvsGlDisplay> pActiveDisplay = existing_display_search->displayWeak.lock();
- if (pActiveDisplay) {
- LOG(WARNING) << "Killing previous display because of new caller";
- pActiveDisplay->forceShutdown();
- }
- }
-
- // Create a new display interface and return it
- uint64_t targetDisplayId = mInternalDisplayId;
- auto it = sDisplayPortList.find(id);
- if (it != sDisplayPortList.end()) {
- targetDisplayId = it->second;
- } else {
- LOG(WARNING) << "No display is available on the port " << static_cast<int32_t>(id)
- << ". The main display " << mInternalDisplayId << " will be used instead";
- }
-
- // Create a new display interface and return it.
- std::shared_ptr<EvsGlDisplay> pActiveDisplay =
- ndk::SharedRefBase::make<EvsGlDisplay>(sDisplayProxy, targetDisplayId);
-
- if (auto insert_result = displays.tryInsert(id, pActiveDisplay); !insert_result) {
- LOG(ERROR) << "Display ID " << id << " has been used by another caller.";
- pActiveDisplay->forceShutdown();
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::RESOURCE_BUSY));
- }
-
- LOG(DEBUG) << "Returning new EvsGlDisplay object " << pActiveDisplay.get();
- *displayObj = pActiveDisplay;
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::closeDisplay(const std::shared_ptr<IEvsDisplay>& obj) {
- LOG(DEBUG) << __FUNCTION__;
-
- auto& displays = mutableActiveDisplays();
- const auto display_search = displays.popDisplay(obj);
-
- if (!display_search) {
- LOG(WARNING) << "Ignoring close of previously orphaned display - why did a client steal?";
- return ScopedAStatus::ok();
- }
-
- auto pActiveDisplay = display_search->displayWeak.lock();
-
- if (!pActiveDisplay) {
- LOG(ERROR) << "Somehow a display is being destroyed "
- << "when the enumerator didn't know one existed";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- pActiveDisplay->forceShutdown();
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::getDisplayState(DisplayState* state) {
- LOG(DEBUG) << __FUNCTION__;
- if (!checkPermission()) {
- *state = DisplayState::DEAD;
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::PERMISSION_DENIED));
- }
-
- // TODO(b/262779341): For now we can just return the state of the 1st display. Need to update
- // the API later.
-
- const auto& all_displays = mutableActiveDisplays().getAllDisplays();
-
- // Do we still have a display object we think should be active?
- if (all_displays.empty()) {
- *state = DisplayState::NOT_OPEN;
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- std::shared_ptr<IEvsDisplay> pActiveDisplay = all_displays.begin()->second.displayWeak.lock();
- if (pActiveDisplay) {
- return pActiveDisplay->getDisplayState(state);
- } else {
- *state = DisplayState::NOT_OPEN;
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-}
-
-ScopedAStatus EvsEnumerator::getDisplayIdList(std::vector<uint8_t>* list) {
- std::vector<uint8_t>& output = *list;
- if (sDisplayPortList.size() > 0) {
- output.resize(sDisplayPortList.size());
- unsigned i = 0;
- output[i++] = mInternalDisplayId & 0xFF;
- for (const auto& [port, id] : sDisplayPortList) {
- if (mInternalDisplayId != id) {
- output[i++] = port;
- }
- }
- }
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::isHardware(bool* flag) {
- *flag = true;
- return ScopedAStatus::ok();
-}
-
-void EvsEnumerator::notifyDeviceStatusChange(const std::string_view& deviceName,
- DeviceStatusType type) {
- std::lock_guard lock(sLock);
- if (!mCallback) {
- return;
- }
-
- std::vector<DeviceStatus> status{{.id = std::string(deviceName), .status = type}};
- if (!mCallback->deviceStatusChanged(status).isOk()) {
- LOG(WARNING) << "Failed to notify a device status change, name = " << deviceName
- << ", type = " << static_cast<int>(type);
- }
-}
-
-ScopedAStatus EvsEnumerator::registerStatusCallback(
- const std::shared_ptr<IEvsEnumeratorStatusCallback>& callback) {
- std::lock_guard lock(sLock);
- if (mCallback) {
- LOG(INFO) << "Replacing an existing device status callback";
- }
- mCallback = callback;
- return ScopedAStatus::ok();
-}
-
-void EvsEnumerator::closeCamera_impl(const std::shared_ptr<IEvsCamera>& pCamera,
- const std::string& cameraId) {
- // Find the named camera
- CameraRecord* pRecord = findCameraById(cameraId);
-
- // Is the display being destroyed actually the one we think is active?
- if (!pRecord) {
- LOG(ERROR) << "Asked to close a camera whose name isn't recognized";
- } else {
- std::shared_ptr<EvsMockCamera> pActiveCamera = pRecord->activeInstance.lock();
- if (!pActiveCamera) {
- LOG(WARNING) << "Somehow a camera is being destroyed "
- << "when the enumerator didn't know one existed";
- } else if (pActiveCamera != pCamera) {
- // This can happen if the camera was aggressively reopened,
- // orphaning this previous instance
- LOG(WARNING) << "Ignoring close of previously orphaned camera "
- << "- why did a client steal?";
- } else {
- // Shutdown the active camera
- pActiveCamera->shutdown();
- }
- }
-
- return;
-}
-
-EvsEnumerator::CameraRecord* EvsEnumerator::findCameraById(const std::string& cameraId) {
- // Find the named camera
- auto found = sCameraList.find(cameraId);
- if (found != sCameraList.end()) {
- // Found a match!
- return &found->second;
- }
-
- // We didn't find a match
- return nullptr;
-}
-
-std::optional<EvsEnumerator::ActiveDisplays::DisplayInfo> EvsEnumerator::ActiveDisplays::popDisplay(
- int32_t id) {
- std::lock_guard lck(mMutex);
- const auto search = mIdToDisplay.find(id);
- if (search == mIdToDisplay.end()) {
- return std::nullopt;
- }
- const auto display_info = search->second;
- mIdToDisplay.erase(search);
- mDisplayToId.erase(display_info.internalDisplayRawAddr);
- return display_info;
-}
-
-std::optional<EvsEnumerator::ActiveDisplays::DisplayInfo> EvsEnumerator::ActiveDisplays::popDisplay(
- const std::shared_ptr<IEvsDisplay>& display) {
- const auto display_ptr_val = reinterpret_cast<uintptr_t>(display.get());
- std::lock_guard lck(mMutex);
- const auto display_to_id_search = mDisplayToId.find(display_ptr_val);
- if (display_to_id_search == mDisplayToId.end()) {
- LOG(ERROR) << "Unknown display.";
- return std::nullopt;
- }
- const auto id = display_to_id_search->second;
- const auto id_to_display_search = mIdToDisplay.find(id);
- mDisplayToId.erase(display_to_id_search);
- if (id_to_display_search == mIdToDisplay.end()) {
- LOG(ERROR) << "No correspsonding ID for the display, probably orphaned.";
- return std::nullopt;
- }
- const auto display_info = id_to_display_search->second;
- mIdToDisplay.erase(id);
- return display_info;
-}
-
-std::unordered_map<int32_t, EvsEnumerator::ActiveDisplays::DisplayInfo>
-EvsEnumerator::ActiveDisplays::getAllDisplays() {
- std::lock_guard lck(mMutex);
- auto id_to_display_map_copy = mIdToDisplay;
- return id_to_display_map_copy;
-}
-
-bool EvsEnumerator::ActiveDisplays::tryInsert(int32_t id,
- const std::shared_ptr<EvsGlDisplay>& display) {
- std::lock_guard lck(mMutex);
- const auto display_ptr_val = reinterpret_cast<uintptr_t>(display.get());
-
- auto id_to_display_insert_result =
- mIdToDisplay.emplace(id, DisplayInfo{
- .id = id,
- .displayWeak = display,
- .internalDisplayRawAddr = display_ptr_val,
- });
- if (!id_to_display_insert_result.second) {
- return false;
- }
- auto display_to_id_insert_result = mDisplayToId.emplace(display_ptr_val, id);
- if (!display_to_id_insert_result.second) {
- mIdToDisplay.erase(id);
- return false;
- }
- return true;
-}
-
-ScopedAStatus EvsEnumerator::getUltrasonicsArrayList(
- [[maybe_unused]] std::vector<UltrasonicsArrayDesc>* list) {
- // TODO(b/149874793): Add implementation for EVS Manager and Sample driver
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::openUltrasonicsArray(
- [[maybe_unused]] const std::string& id,
- [[maybe_unused]] std::shared_ptr<IEvsUltrasonicsArray>* obj) {
- // TODO(b/149874793): Add implementation for EVS Manager and Sample driver
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsEnumerator::closeUltrasonicsArray(
- [[maybe_unused]] const std::shared_ptr<IEvsUltrasonicsArray>& obj) {
- // TODO(b/149874793): Add implementation for EVS Manager and Sample driver
- return ScopedAStatus::ok();
-}
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/src/EvsGlDisplay.cpp b/automotive/evs/aidl/impl/default/src/EvsGlDisplay.cpp
deleted file mode 100644
index e5f8e4c..0000000
--- a/automotive/evs/aidl/impl/default/src/EvsGlDisplay.cpp
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#include "EvsGlDisplay.h"
-
-#include <aidl/android/hardware/automotive/evs/EvsResult.h>
-#include <aidl/android/hardware/graphics/common/BufferUsage.h>
-#include <aidl/android/hardware/graphics/common/PixelFormat.h>
-#include <aidlcommonsupport/NativeHandle.h>
-#include <android-base/thread_annotations.h>
-#include <linux/time.h>
-#include <ui/DisplayMode.h>
-#include <ui/DisplayState.h>
-#include <ui/GraphicBufferAllocator.h>
-#include <ui/GraphicBufferMapper.h>
-#include <utils/SystemClock.h>
-
-#include <chrono>
-
-namespace {
-
-using ::aidl::android::frameworks::automotive::display::ICarDisplayProxy;
-using ::aidl::android::hardware::graphics::common::BufferUsage;
-using ::aidl::android::hardware::graphics::common::PixelFormat;
-using ::android::base::ScopedLockAssertion;
-using ::ndk::ScopedAStatus;
-
-constexpr auto kTimeout = std::chrono::seconds(1);
-
-bool debugFirstFrameDisplayed = false;
-
-int generateFingerPrint(buffer_handle_t handle) {
- return static_cast<int>(reinterpret_cast<long>(handle) & 0xFFFFFFFF);
-}
-
-} // namespace
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-EvsGlDisplay::EvsGlDisplay(const std::shared_ptr<ICarDisplayProxy>& pDisplayProxy,
- uint64_t displayId)
- : mDisplayId(displayId), mDisplayProxy(pDisplayProxy) {
- LOG(DEBUG) << "EvsGlDisplay instantiated";
-
- // Set up our self description
- // NOTE: These are arbitrary values chosen for testing
- mInfo.id = std::to_string(displayId);
- mInfo.vendorFlags = 3870;
-
- // Start a thread to render images on this display
- {
- std::lock_guard lock(mLock);
- mState = RUN;
- }
- mRenderThread = std::thread([this]() { renderFrames(); });
-}
-
-EvsGlDisplay::~EvsGlDisplay() {
- LOG(DEBUG) << "EvsGlDisplay being destroyed";
- forceShutdown();
-}
-
-/**
- * This gets called if another caller "steals" ownership of the display
- */
-void EvsGlDisplay::forceShutdown() {
- LOG(DEBUG) << "EvsGlDisplay forceShutdown";
- {
- std::lock_guard lock(mLock);
-
- // If the buffer isn't being held by a remote client, release it now as an
- // optimization to release the resources more quickly than the destructor might
- // get called.
- if (mBuffer.handle != nullptr) {
- // Report if we're going away while a buffer is outstanding
- if (mBufferBusy || mState == RUN) {
- LOG(ERROR) << "EvsGlDisplay going down while client is holding a buffer";
- }
- mState = STOPPING;
- }
-
- // Put this object into an unrecoverable error state since somebody else
- // is going to own the display now.
- mRequestedState = DisplayState::DEAD;
- }
- mBufferReadyToRender.notify_all();
-
- if (mRenderThread.joinable()) {
- mRenderThread.join();
- }
-}
-
-/**
- * Initialize GL in the context of a caller's thread and prepare a graphic
- * buffer to use.
- */
-bool EvsGlDisplay::initializeGlContextLocked() {
- // Initialize our display window
- // NOTE: This will cause the display to become "VISIBLE" before a frame is actually
- // returned, which is contrary to the spec and will likely result in a black frame being
- // (briefly) shown.
- if (!mGlWrapper.initialize(mDisplayProxy, mDisplayId)) {
- // Report the failure
- LOG(ERROR) << "Failed to initialize GL display";
- return false;
- }
-
- // Assemble the buffer description we'll use for our render target
- static_assert(::aidl::android::hardware::graphics::common::PixelFormat::RGBA_8888 ==
- static_cast<::aidl::android::hardware::graphics::common::PixelFormat>(
- HAL_PIXEL_FORMAT_RGBA_8888));
- mBuffer.description = {
- .width = static_cast<int>(mGlWrapper.getWidth()),
- .height = static_cast<int>(mGlWrapper.getHeight()),
- .layers = 1,
- .format = PixelFormat::RGBA_8888,
- // FIXME: Below line is not using
- // ::aidl::android::hardware::graphics::common::BufferUsage because
- // BufferUsage enum does not support a bitwise-OR operation; they
- // should be BufferUsage::GPU_RENDER_TARGET |
- // BufferUsage::COMPOSER_OVERLAY
- .usage = static_cast<BufferUsage>(GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_COMPOSER),
- };
-
- ::android::GraphicBufferAllocator& alloc(::android::GraphicBufferAllocator::get());
- uint32_t stride = static_cast<uint32_t>(mBuffer.description.stride);
- buffer_handle_t handle = nullptr;
- const ::android::status_t result =
- alloc.allocate(mBuffer.description.width, mBuffer.description.height,
- static_cast<::android::PixelFormat>(mBuffer.description.format),
- mBuffer.description.layers,
- static_cast<uint64_t>(mBuffer.description.usage), &handle, &stride,
- /* requestorName= */ "EvsGlDisplay");
- mBuffer.description.stride = stride;
- mBuffer.fingerprint = generateFingerPrint(mBuffer.handle);
- if (result != ::android::NO_ERROR) {
- LOG(ERROR) << "Error " << result << " allocating " << mBuffer.description.width << " x "
- << mBuffer.description.height << " graphics buffer.";
- mGlWrapper.shutdown();
- return false;
- }
-
- mBuffer.handle = handle;
- if (mBuffer.handle == nullptr) {
- LOG(ERROR) << "We didn't get a buffer handle back from the allocator";
- mGlWrapper.shutdown();
- return false;
- }
-
- LOG(DEBUG) << "Allocated new buffer " << mBuffer.handle << " with stride "
- << mBuffer.description.stride;
- return true;
-}
-
-/**
- * This method runs in a separate thread and renders the contents of the buffer.
- */
-void EvsGlDisplay::renderFrames() {
- {
- std::lock_guard lock(mLock);
-
- if (!initializeGlContextLocked()) {
- LOG(ERROR) << "Failed to initialize GL context";
- return;
- }
-
- // Display buffer is ready.
- mBufferBusy = false;
- }
- mBufferReadyToUse.notify_all();
-
- while (true) {
- {
- std::unique_lock lock(mLock);
- ScopedLockAssertion lock_assertion(mLock);
- mBufferReadyToRender.wait(
- lock, [this]() REQUIRES(mLock) { return mBufferReady || mState != RUN; });
- if (mState != RUN) {
- LOG(DEBUG) << "A rendering thread is stopping";
- break;
- }
- mBufferReady = false;
- }
-
- // Update the texture contents with the provided data
- if (!mGlWrapper.updateImageTexture(mBuffer.handle, mBuffer.description)) {
- LOG(WARNING) << "Failed to update the image texture";
- continue;
- }
-
- // Put the image on the screen
- mGlWrapper.renderImageToScreen();
- if (!debugFirstFrameDisplayed) {
- LOG(DEBUG) << "EvsFirstFrameDisplayTiming start time: " << ::android::elapsedRealtime()
- << " ms.";
- debugFirstFrameDisplayed = true;
- }
-
- // Mark current frame is consumed.
- {
- std::lock_guard lock(mLock);
- mBufferBusy = false;
- }
- mBufferDone.notify_all();
- }
-
- LOG(DEBUG) << "A rendering thread is stopped.";
-
- // Drop the graphics buffer we've been using
- ::android::GraphicBufferAllocator& alloc(::android::GraphicBufferAllocator::get());
- alloc.free(mBuffer.handle);
- mBuffer.handle = nullptr;
-
- mGlWrapper.hideWindow(mDisplayProxy, mDisplayId);
- mGlWrapper.shutdown();
-
- std::lock_guard lock(mLock);
- mState = STOPPED;
-}
-
-/**
- * Returns basic information about the EVS display provided by the system.
- * See the description of the DisplayDesc structure for details.
- */
-ScopedAStatus EvsGlDisplay::getDisplayInfo(DisplayDesc* _aidl_return) {
- if (!mDisplayProxy) {
- return ::ndk::ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::UNDERLYING_SERVICE_ERROR));
- }
-
- ::aidl::android::frameworks::automotive::display::DisplayDesc proxyDisplay;
- auto status = mDisplayProxy->getDisplayInfo(mDisplayId, &proxyDisplay);
- if (!status.isOk()) {
- return ::ndk::ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::UNDERLYING_SERVICE_ERROR));
- }
-
- _aidl_return->width = proxyDisplay.width;
- _aidl_return->height = proxyDisplay.height;
- _aidl_return->orientation = static_cast<Rotation>(proxyDisplay.orientation);
- _aidl_return->id = mInfo.id; // FIXME: what should be ID here?
- _aidl_return->vendorFlags = mInfo.vendorFlags;
- return ::ndk::ScopedAStatus::ok();
-}
-
-/**
- * Clients may set the display state to express their desired state.
- * The HAL implementation must gracefully accept a request for any state
- * while in any other state, although the response may be to ignore the request.
- * The display is defined to start in the NOT_VISIBLE state upon initialization.
- * The client is then expected to request the VISIBLE_ON_NEXT_FRAME state, and
- * then begin providing video. When the display is no longer required, the client
- * is expected to request the NOT_VISIBLE state after passing the last video frame.
- */
-ScopedAStatus EvsGlDisplay::setDisplayState(DisplayState state) {
- LOG(DEBUG) << __FUNCTION__;
- std::lock_guard lock(mLock);
-
- if (mRequestedState == DisplayState::DEAD) {
- // This object no longer owns the display -- it's been superceeded!
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- // Ensure we recognize the requested state so we don't go off the rails
- static constexpr ::ndk::enum_range<DisplayState> kDisplayStateRange;
- if (std::find(kDisplayStateRange.begin(), kDisplayStateRange.end(), state) ==
- kDisplayStateRange.end()) {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
-
- switch (state) {
- case DisplayState::NOT_VISIBLE:
- mGlWrapper.hideWindow(mDisplayProxy, mDisplayId);
- break;
- case DisplayState::VISIBLE:
- mGlWrapper.showWindow(mDisplayProxy, mDisplayId);
- break;
- default:
- break;
- }
-
- // Record the requested state
- mRequestedState = state;
-
- return ScopedAStatus::ok();
-}
-
-/**
- * The HAL implementation should report the actual current state, which might
- * transiently differ from the most recently requested state. Note, however, that
- * the logic responsible for changing display states should generally live above
- * the device layer, making it undesirable for the HAL implementation to
- * spontaneously change display states.
- */
-ScopedAStatus EvsGlDisplay::getDisplayState(DisplayState* _aidl_return) {
- LOG(DEBUG) << __FUNCTION__;
- std::lock_guard lock(mLock);
- *_aidl_return = mRequestedState;
- return ScopedAStatus::ok();
-}
-
-/**
- * This call returns a handle to a frame buffer associated with the display.
- * This buffer may be locked and written to by software and/or GL. This buffer
- * must be returned via a call to returnTargetBufferForDisplay() even if the
- * display is no longer visible.
- */
-ScopedAStatus EvsGlDisplay::getTargetBuffer(BufferDesc* _aidl_return) {
- LOG(DEBUG) << __FUNCTION__;
- std::unique_lock lock(mLock);
- ScopedLockAssertion lock_assertion(mLock);
- if (mRequestedState == DisplayState::DEAD) {
- LOG(ERROR) << "Rejecting buffer request from object that lost ownership of the display.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- // If we don't already have a buffer, allocate one now
- // mBuffer.memHandle is a type of buffer_handle_t, which is equal to
- // native_handle_t*.
- mBufferReadyToUse.wait(lock, [this]() REQUIRES(mLock) { return !mBufferBusy; });
-
- // Do we have a frame available?
- if (mBufferBusy) {
- // This means either we have a 2nd client trying to compete for buffers
- // (an unsupported mode of operation) or else the client hasn't returned
- // a previously issued buffer yet (they're behaving badly).
- // NOTE: We have to make the callback even if we have nothing to provide
- LOG(ERROR) << "getTargetBuffer called while no buffers available.";
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::BUFFER_NOT_AVAILABLE));
- }
-
- // Mark our buffer as busy
- mBufferBusy = true;
-
- // Send the buffer to the client
- LOG(VERBOSE) << "Providing display buffer handle " << mBuffer.handle;
-
- BufferDesc bufferDescToSend = {
- .buffer =
- {
- .handle = std::move(::android::dupToAidl(mBuffer.handle)),
- .description = mBuffer.description,
- },
- .pixelSizeBytes = 4, // RGBA_8888 is 4-byte-per-pixel format
- .bufferId = mBuffer.fingerprint,
- };
- *_aidl_return = std::move(bufferDescToSend);
-
- return ScopedAStatus::ok();
-}
-
-/**
- * This call tells the display that the buffer is ready for display.
- * The buffer is no longer valid for use by the client after this call.
- */
-ScopedAStatus EvsGlDisplay::returnTargetBufferForDisplay(const BufferDesc& buffer) {
- LOG(VERBOSE) << __FUNCTION__;
- std::unique_lock lock(mLock);
- ScopedLockAssertion lock_assertion(mLock);
-
- // Nobody should call us with a null handle
- if (buffer.buffer.handle.fds.size() < 1) {
- LOG(ERROR) << __FUNCTION__ << " called without a valid buffer handle.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
- if (buffer.bufferId != mBuffer.fingerprint) {
- LOG(ERROR) << "Got an unrecognized frame returned.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
- if (!mBufferBusy) {
- LOG(ERROR) << "A frame was returned with no outstanding frames.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
-
- // If we've been displaced by another owner of the display, then we can't do anything else
- if (mRequestedState == DisplayState::DEAD) {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- // If we were waiting for a new frame, this is it!
- if (mRequestedState == DisplayState::VISIBLE_ON_NEXT_FRAME) {
- mRequestedState = DisplayState::VISIBLE;
- mGlWrapper.showWindow(mDisplayProxy, mDisplayId);
- }
-
- // Validate we're in an expected state
- if (mRequestedState != DisplayState::VISIBLE) {
- // Not sure why a client would send frames back when we're not visible.
- LOG(WARNING) << "Got a frame returned while not visible - ignoring.";
- return ScopedAStatus::ok();
- }
- mBufferReady = true;
- mBufferReadyToRender.notify_all();
-
- if (!mBufferDone.wait_for(lock, kTimeout, [this]() REQUIRES(mLock) { return !mBufferBusy; })) {
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::UNDERLYING_SERVICE_ERROR));
- }
-
- return ScopedAStatus::ok();
-}
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/src/EvsMockCamera.cpp b/automotive/evs/aidl/impl/default/src/EvsMockCamera.cpp
deleted file mode 100644
index 4b46a5a..0000000
--- a/automotive/evs/aidl/impl/default/src/EvsMockCamera.cpp
+++ /dev/null
@@ -1,642 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#include "EvsMockCamera.h"
-#include "ConfigManager.h"
-#include "EvsEnumerator.h"
-
-#include <aidlcommonsupport/NativeHandle.h>
-#include <ui/GraphicBufferAllocator.h>
-#include <ui/GraphicBufferMapper.h>
-#include <utils/SystemClock.h>
-
-#include <memory>
-
-namespace {
-
-using ::aidl::android::hardware::graphics::common::BufferUsage;
-using ::ndk::ScopedAStatus;
-
-// Arbitrary limit on number of graphics buffers allowed to be allocated
-// Safeguards against unreasonable resource consumption and provides a testable limit
-constexpr unsigned kMaxBuffersInFlight = 100;
-
-// Minimum number of buffers to run a video stream
-constexpr int kMinimumBuffersInFlight = 1;
-
-// Colors for the colorbar test pattern in ABGR format
-constexpr uint32_t kColors[] = {
- 0xFFFFFFFF, // white
- 0xFF00FFFF, // yellow
- 0xFFFFFF00, // cyan
- 0xFF00FF00, // green
- 0xFFFF00FF, // fuchsia
- 0xFF0000FF, // red
- 0xFFFF0000, // blue
- 0xFF000000, // black
-};
-constexpr size_t kNumColors = sizeof(kColors) / sizeof(kColors[0]);
-
-} // namespace
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-EvsMockCamera::EvsMockCamera([[maybe_unused]] Sigil sigil, const char* id,
- std::unique_ptr<ConfigManager::CameraInfo>& camInfo)
- : mFramesAllowed(0), mFramesInUse(0), mStreamState(STOPPED), mCameraInfo(camInfo) {
- LOG(DEBUG) << __FUNCTION__;
-
- /* set a camera id */
- mDescription.id = id;
-
- /* set camera metadata */
- if (camInfo) {
- uint8_t* ptr = reinterpret_cast<uint8_t*>(camInfo->characteristics);
- const size_t len = get_camera_metadata_size(camInfo->characteristics);
- mDescription.metadata.insert(mDescription.metadata.end(), ptr, ptr + len);
- }
-}
-
-EvsMockCamera::~EvsMockCamera() {
- LOG(DEBUG) << __FUNCTION__;
- shutdown();
-}
-
-// This gets called if another caller "steals" ownership of the camera
-void EvsMockCamera::shutdown() {
- LOG(DEBUG) << __FUNCTION__;
-
- // Make sure our output stream is cleaned up
- // (It really should be already)
- stopVideoStream_impl();
-
- // Claim the lock while we work on internal state
- std::lock_guard lock(mAccessLock);
-
- // Drop all the graphics buffers we've been using
- if (mBuffers.size() > 0) {
- ::android::GraphicBufferAllocator& alloc(::android::GraphicBufferAllocator::get());
- for (auto&& rec : mBuffers) {
- if (rec.inUse) {
- LOG(WARNING) << "WARNING: releasing a buffer remotely owned.";
- }
- alloc.free(rec.handle);
- rec.handle = nullptr;
- }
- mBuffers.clear();
- }
-
- // Put this object into an unrecoverable error state since somebody else
- // is going to own the underlying camera now
- mStreamState = DEAD;
-}
-
-// Methods from ::aidl::android::hardware::automotive::evs::IEvsCamera follow.
-ScopedAStatus EvsMockCamera::getCameraInfo(CameraDesc* _aidl_return) {
- LOG(DEBUG) << __FUNCTION__;
-
- // Send back our self description
- *_aidl_return = mDescription;
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::setMaxFramesInFlight(int32_t bufferCount) {
- LOG(DEBUG) << __FUNCTION__ << ", bufferCount = " << bufferCount;
- ;
-
- std::lock_guard lock(mAccessLock);
-
- // If we've been displaced by another owner of the camera, then we can't do anything else
- if (mStreamState == DEAD) {
- LOG(ERROR) << "Ignoring setMaxFramesInFlight call when camera has been lost.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- // We cannot function without at least one video buffer to send data
- if (bufferCount < 1) {
- LOG(ERROR) << "Ignoring setMaxFramesInFlight with less than one buffer requested.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
-
- // Update our internal state
- if (!setAvailableFrames_Locked(bufferCount)) {
- LOG(ERROR) << "Failed to adjust the maximum number of frames in flight.";
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::BUFFER_NOT_AVAILABLE));
- }
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::startVideoStream(const std::shared_ptr<IEvsCameraStream>& cb) {
- LOG(DEBUG) << __FUNCTION__;
-
- if (!cb) {
- LOG(ERROR) << "A given stream callback is invalid.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- }
-
- std::lock_guard lock(mAccessLock);
-
- // If we've been displaced by another owner of the camera, then we can't do anything else
- if (mStreamState == DEAD) {
- LOG(ERROR) << "Ignoring startVideoStream call when camera has been lost.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::OWNERSHIP_LOST));
- }
-
- if (mStreamState != STOPPED) {
- LOG(ERROR) << "Ignoring startVideoStream call when a stream is already running.";
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::STREAM_ALREADY_RUNNING));
- }
-
- // If the client never indicated otherwise, configure ourselves for a single streaming buffer
- if (mFramesAllowed < kMinimumBuffersInFlight &&
- !setAvailableFrames_Locked(kMinimumBuffersInFlight)) {
- LOG(ERROR) << "Failed to start stream because we couldn't get a graphics buffer";
- return ScopedAStatus::fromServiceSpecificError(
- static_cast<int>(EvsResult::BUFFER_NOT_AVAILABLE));
- }
-
- // Record the user's callback for use when we have a frame ready
- mStream = cb;
-
- // Start the frame generation thread
- mStreamState = RUNNING;
- mCaptureThread = std::thread([this]() { generateFrames(); });
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::doneWithFrame(const std::vector<BufferDesc>& list) {
- std::lock_guard lock(mAccessLock);
- for (const auto& desc : list) {
- returnBufferLocked(desc.bufferId);
- }
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::stopVideoStream() {
- LOG(DEBUG) << __FUNCTION__;
- return stopVideoStream_impl();
-}
-
-ScopedAStatus EvsMockCamera::stopVideoStream_impl() {
- std::unique_lock lock(mAccessLock);
-
- if (mStreamState != RUNNING) {
- // Safely return here because a stream is not running.
- return ScopedAStatus::ok();
- }
-
- // Tell the GenerateFrames loop we want it to stop
- mStreamState = STOPPING;
-
- // Block outside the mutex until the "stop" flag has been acknowledged
- // We won't send any more frames, but the client might still get some already in flight
- LOG(DEBUG) << "Waiting for stream thread to end...";
- lock.unlock();
- if (mCaptureThread.joinable()) {
- mCaptureThread.join();
- }
- lock.lock();
-
- mStreamState = STOPPED;
- mStream = nullptr;
- LOG(DEBUG) << "Stream marked STOPPED.";
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::getExtendedInfo(int32_t opaqueIdentifier,
- std::vector<uint8_t>* opaqueValue) {
- const auto it = mExtInfo.find(opaqueIdentifier);
- if (it == mExtInfo.end()) {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::INVALID_ARG));
- } else {
- *opaqueValue = mExtInfo[opaqueIdentifier];
- }
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::setExtendedInfo(int32_t opaqueIdentifier,
- const std::vector<uint8_t>& opaqueValue) {
- mExtInfo.insert_or_assign(opaqueIdentifier, opaqueValue);
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::getPhysicalCameraInfo([[maybe_unused]] const std::string& id,
- CameraDesc* _aidl_return) {
- LOG(DEBUG) << __FUNCTION__;
-
- // This method works exactly same as getCameraInfo() in EVS HW module.
- *_aidl_return = mDescription;
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::pauseVideoStream() {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::NOT_SUPPORTED));
-}
-
-ScopedAStatus EvsMockCamera::resumeVideoStream() {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::NOT_SUPPORTED));
-}
-
-ScopedAStatus EvsMockCamera::setPrimaryClient() {
- /* Because EVS HW module reference implementation expects a single client at
- * a time, this returns a success code always.
- */
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::forcePrimaryClient(const std::shared_ptr<IEvsDisplay>&) {
- /* Because EVS HW module reference implementation expects a single client at
- * a time, this returns a success code always.
- */
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::unsetPrimaryClient() {
- /* Because EVS HW module reference implementation expects a single client at
- * a time, there is no chance that this is called by the secondary client and
- * therefore returns a success code always.
- */
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::getParameterList(std::vector<CameraParam>* _aidl_return) {
- if (mCameraInfo) {
- _aidl_return->resize(mCameraInfo->controls.size());
- auto idx = 0;
- for (auto& [name, range] : mCameraInfo->controls) {
- (*_aidl_return)[idx++] = name;
- }
- }
-
- return ScopedAStatus::ok();
-}
-
-ScopedAStatus EvsMockCamera::getIntParameterRange([[maybe_unused]] CameraParam id,
- [[maybe_unused]] ParameterRange* _aidl_return) {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::NOT_SUPPORTED));
-}
-
-ScopedAStatus EvsMockCamera::setIntParameter(
- [[maybe_unused]] CameraParam id, [[maybe_unused]] int32_t value,
- [[maybe_unused]] std::vector<int32_t>* effectiveValue) {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::NOT_SUPPORTED));
-}
-
-ScopedAStatus EvsMockCamera::getIntParameter([[maybe_unused]] CameraParam id,
- [[maybe_unused]] std::vector<int32_t>* value) {
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::NOT_SUPPORTED));
-}
-
-ScopedAStatus EvsMockCamera::importExternalBuffers(
- [[maybe_unused]] const std::vector<BufferDesc>& buffers,
- [[maybe_unused]] int32_t* _aidl_return) {
- LOG(DEBUG) << "This implementation does not support an external buffer import.";
- return ScopedAStatus::fromServiceSpecificError(static_cast<int>(EvsResult::NOT_SUPPORTED));
-}
-
-bool EvsMockCamera::setAvailableFrames_Locked(unsigned bufferCount) {
- if (bufferCount < 1) {
- LOG(ERROR) << "Ignoring request to set buffer count to zero";
- return false;
- }
- if (bufferCount > kMaxBuffersInFlight) {
- LOG(ERROR) << "Rejecting buffer request in excess of internal limit";
- return false;
- }
-
- // Is an increase required?
- if (mFramesAllowed < bufferCount) {
- // An increase is required
- auto needed = bufferCount - mFramesAllowed;
- LOG(INFO) << "Allocating " << needed << " buffers for camera frames";
-
- auto added = increaseAvailableFrames_Locked(needed);
- if (added != needed) {
- // If we didn't add all the frames we needed, then roll back to the previous state
- LOG(ERROR) << "Rolling back to previous frame queue size";
- decreaseAvailableFrames_Locked(added);
- return false;
- }
- } else if (mFramesAllowed > bufferCount) {
- // A decrease is required
- auto framesToRelease = mFramesAllowed - bufferCount;
- LOG(INFO) << "Returning " << framesToRelease << " camera frame buffers";
-
- auto released = decreaseAvailableFrames_Locked(framesToRelease);
- if (released != framesToRelease) {
- // This shouldn't happen with a properly behaving client because the client
- // should only make this call after returning sufficient outstanding buffers
- // to allow a clean resize.
- LOG(ERROR) << "Buffer queue shrink failed -- too many buffers currently in use?";
- }
- }
-
- return true;
-}
-
-unsigned EvsMockCamera::increaseAvailableFrames_Locked(unsigned numToAdd) {
- // Acquire the graphics buffer allocator
- ::android::GraphicBufferAllocator& alloc(::android::GraphicBufferAllocator::get());
-
- unsigned added = 0;
- while (added < numToAdd) {
- unsigned pixelsPerLine = 0;
- buffer_handle_t memHandle = nullptr;
- auto result = alloc.allocate(mWidth, mHeight, mFormat, 1, mUsage, &memHandle,
- &pixelsPerLine, 0, "EvsMockCamera");
- if (result != ::android::NO_ERROR) {
- LOG(ERROR) << "Error " << result << " allocating " << mWidth << " x " << mHeight
- << " graphics buffer";
- break;
- }
- if (memHandle == nullptr) {
- LOG(ERROR) << "We didn't get a buffer handle back from the allocator";
- break;
- }
- if (mStride > 0) {
- if (mStride != pixelsPerLine) {
- LOG(ERROR) << "We did not expect to get buffers with different strides!";
- }
- } else {
- // Gralloc defines stride in terms of pixels per line
- mStride = pixelsPerLine;
- }
-
- // Find a place to store the new buffer
- auto stored = false;
- for (auto&& rec : mBuffers) {
- if (rec.handle == nullptr) {
- // Use this existing entry
- rec.handle = memHandle;
- rec.inUse = false;
- stored = true;
- break;
- }
- }
- if (!stored) {
- // Add a BufferRecord wrapping this handle to our set of available buffers
- mBuffers.push_back(BufferRecord(memHandle));
- }
-
- ++mFramesAllowed;
- ++added;
- }
-
- return added;
-}
-
-unsigned EvsMockCamera::decreaseAvailableFrames_Locked(unsigned numToRemove) {
- // Acquire the graphics buffer allocator
- ::android::GraphicBufferAllocator& alloc(::android::GraphicBufferAllocator::get());
-
- unsigned removed = 0;
- for (auto&& rec : mBuffers) {
- // Is this record not in use, but holding a buffer that we can free?
- if ((rec.inUse == false) && (rec.handle != nullptr)) {
- // Release buffer and update the record so we can recognize it as "empty"
- alloc.free(rec.handle);
- rec.handle = nullptr;
-
- --mFramesAllowed;
- ++removed;
-
- if (removed == numToRemove) {
- break;
- }
- }
- }
-
- return removed;
-}
-
-// This is the asynchronous frame generation thread that runs in parallel with the
-// main serving thread. There is one for each active camera instance.
-void EvsMockCamera::generateFrames() {
- LOG(DEBUG) << "Frame generation loop started.";
-
- unsigned idx = 0;
- while (true) {
- bool timeForFrame = false;
- const nsecs_t startTime = systemTime(SYSTEM_TIME_MONOTONIC);
-
- // Lock scope for updating shared state
- {
- std::lock_guard lock(mAccessLock);
-
- if (mStreamState != RUNNING) {
- // Break out of our main thread loop
- break;
- }
-
- // Are we allowed to issue another buffer?
- if (mFramesInUse >= mFramesAllowed) {
- // Can't do anything right now -- skip this frame
- LOG(WARNING) << "Skipped a frame because too many are in flight.";
- } else {
- // Identify an available buffer to fill
- for (idx = 0; idx < mBuffers.size(); idx++) {
- if (!mBuffers[idx].inUse) {
- if (mBuffers[idx].handle != nullptr) {
- // Found an available record, so stop looking
- break;
- }
- }
- }
- if (idx >= mBuffers.size()) {
- // This shouldn't happen since we already checked mFramesInUse vs mFramesAllowed
- ALOGE("Failed to find an available buffer slot\n");
- } else {
- // We're going to make the frame busy
- mBuffers[idx].inUse = true;
- mFramesInUse++;
- timeForFrame = true;
- }
- }
- }
-
- if (timeForFrame) {
- using AidlPixelFormat = ::aidl::android::hardware::graphics::common::PixelFormat;
-
- // Assemble the buffer description we'll transmit below
- buffer_handle_t memHandle = mBuffers[idx].handle;
- BufferDesc newBuffer = {
- .buffer =
- {
- .description =
- {
- .width = static_cast<int32_t>(mWidth),
- .height = static_cast<int32_t>(mHeight),
- .layers = 1,
- .format = static_cast<AidlPixelFormat>(mFormat),
- .usage = static_cast<BufferUsage>(mUsage),
- .stride = static_cast<int32_t>(mStride),
- },
- .handle = ::android::dupToAidl(memHandle),
- },
- .bufferId = static_cast<int32_t>(idx),
- .deviceId = mDescription.id,
- .timestamp = static_cast<int64_t>(::android::elapsedRealtimeNano() *
- 1e+3), // timestamps is in microseconds
- };
-
- // Write test data into the image buffer
- fillMockFrame(memHandle, reinterpret_cast<const AHardwareBuffer_Desc*>(
- &newBuffer.buffer.description));
-
- // Issue the (asynchronous) callback to the client -- can't be holding the lock
- auto flag = false;
- if (mStream) {
- std::vector<BufferDesc> frames;
- frames.push_back(std::move(newBuffer));
- flag = mStream->deliverFrame(frames).isOk();
- }
-
- if (flag) {
- LOG(DEBUG) << "Delivered " << memHandle << ", id = " << mBuffers[idx].handle;
- } else {
- // This can happen if the client dies and is likely unrecoverable.
- // To avoid consuming resources generating failing calls, we stop sending
- // frames. Note, however, that the stream remains in the "STREAMING" state
- // until cleaned up on the main thread.
- LOG(ERROR) << "Frame delivery call failed in the transport layer.";
-
- // Since we didn't actually deliver it, mark the frame as available
- std::lock_guard<std::mutex> lock(mAccessLock);
- mBuffers[idx].inUse = false;
- mFramesInUse--;
- }
- }
-
- // We arbitrarily choose to generate frames at 15 fps to ensure we pass the 10fps test
- // requirement
- static const int kTargetFrameRate = 15;
- static const nsecs_t kTargetFrameIntervalUs = 1000 * 1000 / kTargetFrameRate;
- const nsecs_t now = systemTime(SYSTEM_TIME_MONOTONIC);
- const nsecs_t elapsedTimeUs = (now - startTime) / 1000;
- const nsecs_t sleepDurationUs = kTargetFrameIntervalUs - elapsedTimeUs;
- if (sleepDurationUs > 0) {
- usleep(sleepDurationUs);
- }
- }
-
- // If we've been asked to stop, send an event to signal the actual end of stream
- EvsEventDesc event = {
- .aType = EvsEventType::STREAM_STOPPED,
- };
- if (!mStream->notify(event).isOk()) {
- ALOGE("Error delivering end of stream marker");
- }
-
- return;
-}
-
-void EvsMockCamera::fillMockFrame(buffer_handle_t handle, const AHardwareBuffer_Desc* pDesc) {
- // Lock our output buffer for writing
- uint32_t* pixels = nullptr;
- ::android::GraphicBufferMapper& mapper = ::android::GraphicBufferMapper::get();
- mapper.lock(handle, GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_NEVER,
- ::android::Rect(pDesc->width, pDesc->height), (void**)&pixels);
-
- // If we failed to lock the pixel buffer, we're about to crash, but log it first
- if (!pixels) {
- ALOGE("Camera failed to gain access to image buffer for writing");
- return;
- }
-
- // Fill in the test pixels; the colorbar in ABGR format
- for (unsigned row = 0; row < pDesc->height; row++) {
- for (unsigned col = 0; col < pDesc->width; col++) {
- const uint32_t index = col * kNumColors / pDesc->width;
- pixels[col] = kColors[index];
- }
- // Point to the next row
- // NOTE: stride retrieved from gralloc is in units of pixels
- pixels = pixels + pDesc->stride;
- }
-
- // Release our output buffer
- mapper.unlock(handle);
-}
-
-void EvsMockCamera::returnBufferLocked(const uint32_t bufferId) {
- if (bufferId >= mBuffers.size()) {
- ALOGE("ignoring doneWithFrame called with invalid bufferId %d (max is %zu)", bufferId,
- mBuffers.size() - 1);
- return;
- }
-
- if (!mBuffers[bufferId].inUse) {
- ALOGE("ignoring doneWithFrame called on frame %d which is already free", bufferId);
- return;
- }
-
- // Mark the frame as available
- mBuffers[bufferId].inUse = false;
- mFramesInUse--;
-
- // If this frame's index is high in the array, try to move it down
- // to improve locality after mFramesAllowed has been reduced.
- if (bufferId >= mFramesAllowed) {
- // Find an empty slot lower in the array (which should always exist in this case)
- for (auto&& rec : mBuffers) {
- if (rec.handle == nullptr) {
- rec.handle = mBuffers[bufferId].handle;
- mBuffers[bufferId].handle = nullptr;
- break;
- }
- }
- }
-}
-
-std::shared_ptr<EvsMockCamera> EvsMockCamera::Create(const char* deviceName) {
- std::unique_ptr<ConfigManager::CameraInfo> nullCamInfo = nullptr;
-
- return Create(deviceName, nullCamInfo);
-}
-
-std::shared_ptr<EvsMockCamera> EvsMockCamera::Create(
- const char* deviceName, std::unique_ptr<ConfigManager::CameraInfo>& camInfo,
- [[maybe_unused]] const Stream* streamCfg) {
- std::shared_ptr<EvsMockCamera> c =
- ndk::SharedRefBase::make<EvsMockCamera>(Sigil{}, deviceName, camInfo);
- if (!c) {
- LOG(ERROR) << "Failed to instantiate EvsMockCamera.";
- return nullptr;
- }
-
- // Use the first resolution from the list for the testing
- // TODO(b/214835237): Uses a given Stream configuration to choose the best
- // stream configuration.
- auto it = camInfo->streamConfigurations.begin();
- c->mWidth = it->second.width;
- c->mHeight = it->second.height;
- c->mDescription.vendorFlags = 0xFFFFFFFF; // Arbitrary test value
-
- c->mFormat = HAL_PIXEL_FORMAT_RGBA_8888;
- c->mUsage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_CAMERA_WRITE |
- GRALLOC_USAGE_SW_READ_RARELY | GRALLOC_USAGE_SW_WRITE_RARELY;
-
- return c;
-}
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/src/GlWrapper.cpp b/automotive/evs/aidl/impl/default/src/GlWrapper.cpp
deleted file mode 100644
index 0ee5ecb..0000000
--- a/automotive/evs/aidl/impl/default/src/GlWrapper.cpp
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-#include "GlWrapper.h"
-
-#include <aidl/android/frameworks/automotive/display/DisplayDesc.h>
-#include <aidl/android/hardware/graphics/common/HardwareBufferDescription.h>
-#include <aidlcommonsupport/NativeHandle.h>
-#include <ui/DisplayMode.h>
-#include <ui/DisplayState.h>
-#include <ui/GraphicBuffer.h>
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <sys/ioctl.h>
-
-#include <utility>
-
-namespace {
-
-using ::aidl::android::frameworks::automotive::display::DisplayDesc;
-using ::aidl::android::frameworks::automotive::display::ICarDisplayProxy;
-using ::aidl::android::frameworks::automotive::display::Rotation;
-using ::aidl::android::hardware::common::NativeHandle;
-using ::aidl::android::hardware::graphics::common::HardwareBufferDescription;
-using ::android::GraphicBuffer;
-using ::android::sp;
-
-constexpr const char vertexShaderSource[] =
- "attribute vec4 pos; \n"
- "attribute vec2 tex; \n"
- "varying vec2 uv; \n"
- "void main() \n"
- "{ \n"
- " gl_Position = pos; \n"
- " uv = tex; \n"
- "} \n";
-
-constexpr const char pixelShaderSource[] =
- "precision mediump float; \n"
- "uniform sampler2D tex; \n"
- "varying vec2 uv; \n"
- "void main() \n"
- "{ \n"
- " gl_FragColor = texture2D(tex, uv);\n"
- "} \n";
-
-const char* getEGLError(void) {
- switch (eglGetError()) {
- case EGL_SUCCESS:
- return "EGL_SUCCESS";
- case EGL_NOT_INITIALIZED:
- return "EGL_NOT_INITIALIZED";
- case EGL_BAD_ACCESS:
- return "EGL_BAD_ACCESS";
- case EGL_BAD_ALLOC:
- return "EGL_BAD_ALLOC";
- case EGL_BAD_ATTRIBUTE:
- return "EGL_BAD_ATTRIBUTE";
- case EGL_BAD_CONTEXT:
- return "EGL_BAD_CONTEXT";
- case EGL_BAD_CONFIG:
- return "EGL_BAD_CONFIG";
- case EGL_BAD_CURRENT_SURFACE:
- return "EGL_BAD_CURRENT_SURFACE";
- case EGL_BAD_DISPLAY:
- return "EGL_BAD_DISPLAY";
- case EGL_BAD_SURFACE:
- return "EGL_BAD_SURFACE";
- case EGL_BAD_MATCH:
- return "EGL_BAD_MATCH";
- case EGL_BAD_PARAMETER:
- return "EGL_BAD_PARAMETER";
- case EGL_BAD_NATIVE_PIXMAP:
- return "EGL_BAD_NATIVE_PIXMAP";
- case EGL_BAD_NATIVE_WINDOW:
- return "EGL_BAD_NATIVE_WINDOW";
- case EGL_CONTEXT_LOST:
- return "EGL_CONTEXT_LOST";
- default:
- return "Unknown error";
- }
-}
-
-// Given shader source, load and compile it
-GLuint loadShader(GLenum type, const char* shaderSrc) {
- // Create the shader object
- GLuint shader = glCreateShader(type);
- if (shader == 0) {
- return 0;
- }
-
- // Load and compile the shader
- glShaderSource(shader, 1, &shaderSrc, nullptr);
- glCompileShader(shader);
-
- // Verify the compilation worked as expected
- GLint compiled = 0;
- glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
- if (!compiled) {
- LOG(ERROR) << "Error compiling shader";
-
- GLint size = 0;
- glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &size);
- if (size > 0) {
- // Get and report the error message
- char* infoLog = (char*)malloc(size);
- glGetShaderInfoLog(shader, size, nullptr, infoLog);
- LOG(ERROR) << " msg:" << std::endl << infoLog;
- free(infoLog);
- }
-
- glDeleteShader(shader);
- return 0;
- }
-
- return shader;
-}
-
-// Create a program object given vertex and pixels shader source
-GLuint buildShaderProgram(const char* vtxSrc, const char* pxlSrc) {
- GLuint program = glCreateProgram();
- if (program == 0) {
- LOG(ERROR) << "Failed to allocate program object";
- return 0;
- }
-
- // Compile the shaders and bind them to this program
- GLuint vertexShader = loadShader(GL_VERTEX_SHADER, vtxSrc);
- if (vertexShader == 0) {
- LOG(ERROR) << "Failed to load vertex shader";
- glDeleteProgram(program);
- return 0;
- }
- GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pxlSrc);
- if (pixelShader == 0) {
- LOG(ERROR) << "Failed to load pixel shader";
- glDeleteProgram(program);
- glDeleteShader(vertexShader);
- return 0;
- }
- glAttachShader(program, vertexShader);
- glAttachShader(program, pixelShader);
-
- glBindAttribLocation(program, 0, "pos");
- glBindAttribLocation(program, 1, "tex");
-
- // Link the program
- glLinkProgram(program);
- GLint linked = 0;
- glGetProgramiv(program, GL_LINK_STATUS, &linked);
- if (!linked) {
- LOG(ERROR) << "Error linking program";
- GLint size = 0;
- glGetProgramiv(program, GL_INFO_LOG_LENGTH, &size);
- if (size > 0) {
- // Get and report the error message
- char* infoLog = (char*)malloc(size);
- glGetProgramInfoLog(program, size, nullptr, infoLog);
- LOG(ERROR) << " msg: " << infoLog;
- free(infoLog);
- }
-
- glDeleteProgram(program);
- glDeleteShader(vertexShader);
- glDeleteShader(pixelShader);
- return 0;
- }
-
- return program;
-}
-
-::android::sp<HGraphicBufferProducer> convertNativeHandleToHGBP(const NativeHandle& aidlHandle) {
- native_handle_t* handle = ::android::dupFromAidl(aidlHandle);
- if (handle->numFds != 0 || handle->numInts < std::ceil(sizeof(size_t) / sizeof(int))) {
- LOG(ERROR) << "Invalid native handle";
- return nullptr;
- }
- ::android::hardware::hidl_vec<uint8_t> halToken;
- halToken.setToExternal(reinterpret_cast<uint8_t*>(const_cast<int*>(&(handle->data[1]))),
- handle->data[0]);
- ::android::sp<HGraphicBufferProducer> hgbp =
- HGraphicBufferProducer::castFrom(::android::retrieveHalInterface(halToken));
- return std::move(hgbp);
-}
-
-} // namespace
-
-namespace aidl::android::hardware::automotive::evs::implementation {
-
-// Main entry point
-bool GlWrapper::initialize(const std::shared_ptr<ICarDisplayProxy>& pWindowProxy,
- uint64_t displayId) {
- LOG(DEBUG) << __FUNCTION__;
-
- if (!pWindowProxy) {
- LOG(ERROR) << "Could not get ICarDisplayProxy.";
- return false;
- }
-
- DisplayDesc displayDesc;
- auto status = pWindowProxy->getDisplayInfo(displayId, &displayDesc);
- if (!status.isOk()) {
- LOG(ERROR) << "Failed to read the display information";
- return false;
- }
-
- mWidth = displayDesc.width;
- mHeight = displayDesc.height;
- if ((displayDesc.orientation != Rotation::ROTATION_0) &&
- (displayDesc.orientation != Rotation::ROTATION_180)) {
- std::swap(mWidth, mHeight);
- }
- LOG(INFO) << "Display resolution is " << mWidth << "x" << mHeight;
-
- NativeHandle aidlHandle;
- status = pWindowProxy->getHGraphicBufferProducer(displayId, &aidlHandle);
- if (!status.isOk()) {
- LOG(ERROR) << "Failed to get IGraphicBufferProducer from ICarDisplayProxy.";
- return false;
- }
-
- mGfxBufferProducer = convertNativeHandleToHGBP(aidlHandle);
- if (!mGfxBufferProducer) {
- LOG(ERROR) << "Failed to convert a NativeHandle to HGBP.";
- return false;
- }
-
- mSurfaceHolder = getSurfaceFromHGBP(mGfxBufferProducer);
- if (mSurfaceHolder == nullptr) {
- LOG(ERROR) << "Failed to get a Surface from HGBP.";
- return false;
- }
-
- mWindow = getNativeWindow(mSurfaceHolder.get());
- if (mWindow == nullptr) {
- LOG(ERROR) << "Failed to get a native window from Surface.";
- return false;
- }
-
- // Set up our OpenGL ES context associated with the default display
- mDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- if (mDisplay == EGL_NO_DISPLAY) {
- LOG(ERROR) << "Failed to get egl display";
- return false;
- }
-
- EGLint major = 2;
- EGLint minor = 0;
- if (!eglInitialize(mDisplay, &major, &minor)) {
- LOG(ERROR) << "Failed to initialize EGL: " << getEGLError();
- return false;
- }
-
- const EGLint config_attribs[] = {
- // clang-format off
- // Tag Value
- EGL_RED_SIZE, 8,
- EGL_GREEN_SIZE, 8,
- EGL_BLUE_SIZE, 8,
- EGL_DEPTH_SIZE, 0,
- EGL_NONE
- // clang-format on
- };
-
- // Pick the default configuration without constraints (is this good enough?)
- EGLConfig egl_config = {0};
- EGLint numConfigs = -1;
- eglChooseConfig(mDisplay, config_attribs, &egl_config, 1, &numConfigs);
- if (numConfigs != 1) {
- LOG(ERROR) << "Didn't find a suitable format for our display window, " << getEGLError();
- return false;
- }
-
- // Create the EGL render target surface
- mSurface = eglCreateWindowSurface(mDisplay, egl_config, mWindow, nullptr);
- if (mSurface == EGL_NO_SURFACE) {
- LOG(ERROR) << "eglCreateWindowSurface failed, " << getEGLError();
- return false;
- }
-
- // Create the EGL context
- // NOTE: Our shader is (currently at least) written to require version 3, so this
- // is required.
- const EGLint context_attribs[] = {EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE};
- mContext = eglCreateContext(mDisplay, egl_config, EGL_NO_CONTEXT, context_attribs);
- if (mContext == EGL_NO_CONTEXT) {
- LOG(ERROR) << "Failed to create OpenGL ES Context: " << getEGLError();
- return false;
- }
-
- // Activate our render target for drawing
- if (!eglMakeCurrent(mDisplay, mSurface, mSurface, mContext)) {
- LOG(ERROR) << "Failed to make the OpenGL ES Context current: " << getEGLError();
- return false;
- }
-
- // Create the shader program for our simple pipeline
- mShaderProgram = buildShaderProgram(vertexShaderSource, pixelShaderSource);
- if (!mShaderProgram) {
- LOG(ERROR) << "Failed to build shader program: " << getEGLError();
- return false;
- }
-
- // Create a GL texture that will eventually wrap our externally created texture surface(s)
- glGenTextures(1, &mTextureMap);
- if (mTextureMap <= 0) {
- LOG(ERROR) << "Didn't get a texture handle allocated: " << getEGLError();
- return false;
- }
-
- // Turn off mip-mapping for the created texture surface
- // (the inbound camera imagery doesn't have MIPs)
- glBindTexture(GL_TEXTURE_2D, mTextureMap);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glBindTexture(GL_TEXTURE_2D, 0);
-
- return true;
-}
-
-void GlWrapper::shutdown() {
- // Drop our device textures
- if (mKHRimage != EGL_NO_IMAGE_KHR) {
- eglDestroyImageKHR(mDisplay, mKHRimage);
- mKHRimage = EGL_NO_IMAGE_KHR;
- }
-
- // Release all GL resources
- if (eglGetCurrentContext() == mContext) {
- eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
- }
- eglDestroySurface(mDisplay, mSurface);
- eglDestroyContext(mDisplay, mContext);
- eglTerminate(mDisplay);
- mSurface = EGL_NO_SURFACE;
- mContext = EGL_NO_CONTEXT;
- mDisplay = EGL_NO_DISPLAY;
-
- // Release the window
- mSurfaceHolder = nullptr;
-}
-
-void GlWrapper::showWindow(const std::shared_ptr<ICarDisplayProxy>& pWindowProxy, uint64_t id) {
- if (pWindowProxy) {
- pWindowProxy->showWindow(id);
- } else {
- LOG(ERROR) << "ICarDisplayProxy is not available.";
- }
-}
-
-void GlWrapper::hideWindow(const std::shared_ptr<ICarDisplayProxy>& pWindowProxy, uint64_t id) {
- if (pWindowProxy) {
- pWindowProxy->hideWindow(id);
- } else {
- LOG(ERROR) << "ICarDisplayProxy is not available.";
- }
-}
-
-bool GlWrapper::updateImageTexture(buffer_handle_t handle,
- const HardwareBufferDescription& description) {
- if (mKHRimage != EGL_NO_IMAGE_KHR) {
- return true;
- }
-
- // Create a temporary GraphicBuffer to wrap the provided handle.
- sp<GraphicBuffer> pGfxBuffer =
- new GraphicBuffer(description.width, description.height,
- static_cast<::android::PixelFormat>(description.format),
- description.layers, static_cast<uint32_t>(description.usage),
- description.stride, const_cast<native_handle_t*>(handle),
- /* keepOwnership= */ false);
- if (!pGfxBuffer) {
- LOG(ERROR) << "Failed to allocate GraphicBuffer to wrap our native handle";
- return false;
- }
-
- // Get a GL compatible reference to the graphics buffer we've been given
- EGLint eglImageAttributes[] = {EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE};
- EGLClientBuffer cbuf = static_cast<EGLClientBuffer>(pGfxBuffer->getNativeBuffer());
- mKHRimage = eglCreateImageKHR(mDisplay, EGL_NO_CONTEXT, EGL_NATIVE_BUFFER_ANDROID, cbuf,
- eglImageAttributes);
- if (mKHRimage == EGL_NO_IMAGE_KHR) {
- LOG(ERROR) << "Error creating EGLImage: " << getEGLError();
- return false;
- }
-
- // Update the texture handle we already created to refer to this gralloc buffer
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, mTextureMap);
- glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, static_cast<GLeglImageOES>(mKHRimage));
-
- return true;
-}
-
-void GlWrapper::renderImageToScreen() {
- // Set the viewport
- glViewport(0, 0, mWidth, mHeight);
-
- // Clear the color buffer
- glClearColor(0.1f, 0.5f, 0.1f, 1.0f);
- glClear(GL_COLOR_BUFFER_BIT);
-
- // Select our screen space simple texture shader
- glUseProgram(mShaderProgram);
-
- // Bind the texture and assign it to the shader's sampler
- glActiveTexture(GL_TEXTURE0);
- glBindTexture(GL_TEXTURE_2D, mTextureMap);
- GLint sampler = glGetUniformLocation(mShaderProgram, "tex");
- glUniform1i(sampler, 0);
-
- // We want our image to show up opaque regardless of alpha values
- glDisable(GL_BLEND);
-
- // Draw a rectangle on the screen
- GLfloat vertsCarPos[] = {
- // clang-format off
- -0.8, 0.8, 0.0f, // left top in window space
- 0.8, 0.8, 0.0f, // right top
- -0.8, -0.8, 0.0f, // left bottom
- 0.8, -0.8, 0.0f // right bottom
- // clang-format on
- };
-
- // NOTE: We didn't flip the image in the texture, so V=0 is actually the top of the image
- GLfloat vertsCarTex[] = {
- // clang-format off
- 0.0f, 0.0f, // left top
- 1.0f, 0.0f, // right top
- 0.0f, 1.0f, // left bottom
- 1.0f, 1.0f // right bottom
- // clang-format on
- };
- glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vertsCarPos);
- glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, vertsCarTex);
- glEnableVertexAttribArray(0);
- glEnableVertexAttribArray(1);
-
- glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
-
- // Clean up and flip the rendered result to the front so it is visible
- glDisableVertexAttribArray(0);
- glDisableVertexAttribArray(1);
-
- glFinish();
-
- if (eglSwapBuffers(mDisplay, mSurface) == EGL_FALSE) {
- LOG(WARNING) << "Failed to swap EGL buffers, " << getEGLError();
- }
-}
-
-} // namespace aidl::android::hardware::automotive::evs::implementation
diff --git a/automotive/evs/aidl/impl/default/src/service.cpp b/automotive/evs/aidl/impl/default/src/service.cpp
index 7532d87..0a0913f 100644
--- a/automotive/evs/aidl/impl/default/src/service.cpp
+++ b/automotive/evs/aidl/impl/default/src/service.cpp
@@ -14,75 +14,38 @@
* limitations under the License.
*/
-#include "EvsEnumerator.h"
-#include "EvsGlDisplay.h"
+#define LOG_TAG "EvsService"
+
+#include <DefaultEvsEnumerator.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include <utils/Log.h>
-#include <unistd.h>
+using ::aidl::android::hardware::automotive::evs::implementation::DefaultEvsEnumerator;
-#include <atomic>
-#include <cstdlib>
-#include <string_view>
+int main([[maybe_unused]] int argc, [[maybe_unused]] char* argv[]) {
+ std::shared_ptr<DefaultEvsEnumerator> vhal = ndk::SharedRefBase::make<DefaultEvsEnumerator>();
-namespace {
-
-using ::aidl::android::frameworks::automotive::display::ICarDisplayProxy;
-using ::aidl::android::hardware::automotive::evs::implementation::EvsEnumerator;
-
-constexpr std::string_view kDisplayServiceInstanceName = "/default";
-constexpr std::string_view kHwInstanceName = "/hw/0";
-constexpr int kNumBinderThreads = 1;
-
-} // namespace
-
-int main() {
- LOG(INFO) << "EVS Hardware Enumerator service is starting";
-
- const std::string displayServiceInstanceName =
- std::string(ICarDisplayProxy::descriptor) + std::string(kDisplayServiceInstanceName);
- if (!AServiceManager_isDeclared(displayServiceInstanceName.data())) {
- // TODO: We may just want to disable EVS display.
- LOG(ERROR) << displayServiceInstanceName << " is required.";
- return EXIT_FAILURE;
- }
-
- std::shared_ptr<ICarDisplayProxy> displayService = ICarDisplayProxy::fromBinder(
- ::ndk::SpAIBinder(AServiceManager_waitForService(displayServiceInstanceName.data())));
- if (!displayService) {
- LOG(ERROR) << "Cannot use " << displayServiceInstanceName << ". Exiting.";
- return EXIT_FAILURE;
- }
-
- // Register our service -- if somebody is already registered by our name,
- // they will be killed (their thread pool will throw an exception).
- std::shared_ptr<EvsEnumerator> service =
- ndk::SharedRefBase::make<EvsEnumerator>(displayService);
- if (!service) {
- LOG(ERROR) << "Failed to instantiate the service";
- return EXIT_FAILURE;
- }
-
- const std::string instanceName =
- std::string(EvsEnumerator::descriptor) + std::string(kHwInstanceName);
- auto err = AServiceManager_addService(service->asBinder().get(), instanceName.data());
+ ALOGI("Registering as service...");
+ binder_exception_t err =
+ AServiceManager_addService(vhal->asBinder().get(), "android.hardware.automotive.evs");
if (err != EX_NONE) {
- LOG(ERROR) << "Failed to register " << instanceName << ", exception = " << err;
- return EXIT_FAILURE;
+ ALOGE("failed to register android.hardware.automotive.evs service, exception: %d", err);
+ return 1;
}
- if (!ABinderProcess_setThreadPoolMaxThreadCount(kNumBinderThreads)) {
- LOG(ERROR) << "Failed to set thread pool";
- return EXIT_FAILURE;
+ if (!ABinderProcess_setThreadPoolMaxThreadCount(1)) {
+ ALOGE("%s", "failed to set thread pool max thread count");
+ return 1;
}
-
ABinderProcess_startThreadPool();
- LOG(INFO) << "EVS Hardware Enumerator is ready";
+
+ ALOGI("Evs Service Ready");
ABinderProcess_joinThreadPool();
- // In normal operation, we don't expect the thread pool to exit
- LOG(INFO) << "EVS Hardware Enumerator is shutting down";
- return EXIT_SUCCESS;
+
+ ALOGI("Evs Service Exiting");
+
+ return 0;
}
diff --git a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl
index 7a1616f..2cd7a5d 100644
--- a/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl
+++ b/automotive/remoteaccess/android/hardware/automotive/remoteaccess/IRemoteTaskCallback.aidl
@@ -24,6 +24,10 @@
/**
* A callback that is called when a remote task is requested.
*
+ * The data is passed down from the remote server to the remote task client
+ * which is an Android application, and is not interpreted/parsed by the
+ * Android system.
+ *
* @param clientId An ID to uniquely identify a remote task client.
* @param data Opaque task data passed to the remote task client.
*/
diff --git a/automotive/vehicle/2.0/types.hal b/automotive/vehicle/2.0/types.hal
index 00d0452..d75b046 100644
--- a/automotive/vehicle/2.0/types.hal
+++ b/automotive/vehicle/2.0/types.hal
@@ -1810,11 +1810,11 @@
*
* This parameter selects the memory preset to use to select the seat
* position. The minValue is always 0, and the maxValue determines the
- * number of seat positions available.
+ * number of seat positions available (i.e. numSeatPositions - 1).
*
* For instance, if the driver's seat has 3 memory presets, the maxValue
- * will be 3. When the user wants to select a preset, the desired preset
- * number (1, 2, or 3) is set.
+ * will be 2. When the user wants to select a preset, the desired preset
+ * number (0, 1, or 2) is set.
*
* @change_mode VehiclePropertyChangeMode:ON_CHANGE
* @access VehiclePropertyAccess:WRITE
diff --git a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/RawPropValues.aidl b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/RawPropValues.aidl
index 9c6875b..28ccc1d 100644
--- a/automotive/vehicle/aidl/android/hardware/automotive/vehicle/RawPropValues.aidl
+++ b/automotive/vehicle/aidl/android/hardware/automotive/vehicle/RawPropValues.aidl
@@ -20,8 +20,8 @@
@JavaDerive(equals=true, toString=true)
parcelable RawPropValues {
/**
- * This is used for properties of types VehiclePropertyType#INT
- * and VehiclePropertyType#INT_VEC
+ * This is used for properties of types VehiclePropertyType#INT32,
+ * VehiclePropertyType#BOOLEAN and VehiclePropertyType#INT32_VEC
*/
int[] int32Values = {};
@@ -31,7 +31,10 @@
*/
float[] floatValues;
- /** This is used for properties of type VehiclePropertyType#INT64 */
+ /**
+ * This is used for properties of type VehiclePropertyType#INT64 and
+ * VehiclePropertyType#INT64_VEC
+ */
long[] int64Values;
/** This is used for properties of type VehiclePropertyType#BYTES */
diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h
index c8a36b8..d0c6e83 100644
--- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h
+++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h
@@ -272,9 +272,6 @@
{VehicleProperty::HANDS_ON_DETECTION_ENABLED, VehiclePropertyAccess::READ_WRITE},
{VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyAccess::READ},
{VehicleProperty::HANDS_ON_DETECTION_WARNING, VehiclePropertyAccess::READ},
- {VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyAccess::READ_WRITE},
- {VehicleProperty::DRIVER_ATTENTION_MONITORING_STATE, VehiclePropertyAccess::READ},
- {VehicleProperty::DRIVER_ATTENTION_MONITORING_WARNING, VehiclePropertyAccess::READ},
};
} // namespace vehicle
diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h
index bea5002..48532c9 100644
--- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h
+++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h
@@ -272,9 +272,6 @@
{VehicleProperty::HANDS_ON_DETECTION_ENABLED, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HANDS_ON_DETECTION_WARNING, VehiclePropertyChangeMode::ON_CHANGE},
- {VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE},
- {VehicleProperty::DRIVER_ATTENTION_MONITORING_STATE, VehiclePropertyChangeMode::ON_CHANGE},
- {VehicleProperty::DRIVER_ATTENTION_MONITORING_WARNING, VehiclePropertyChangeMode::ON_CHANGE},
};
} // namespace vehicle
diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java
index ee214ef..758670d 100644
--- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java
+++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java
@@ -263,10 +263,7 @@
Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, VehiclePropertyAccess.READ_WRITE),
Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyAccess.READ),
- Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, VehiclePropertyAccess.READ),
- Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyAccess.READ_WRITE),
- Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_STATE, VehiclePropertyAccess.READ),
- Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_WARNING, VehiclePropertyAccess.READ)
+ Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, VehiclePropertyAccess.READ)
);
}
diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java
index d3cf71e..29069f8 100644
--- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java
+++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java
@@ -263,10 +263,7 @@
Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, VehiclePropertyChangeMode.CONTINUOUS),
Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyChangeMode.ON_CHANGE),
- Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, VehiclePropertyChangeMode.ON_CHANGE),
- Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE),
- Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_STATE, VehiclePropertyChangeMode.ON_CHANGE),
- Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_WARNING, VehiclePropertyChangeMode.ON_CHANGE)
+ Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, VehiclePropertyChangeMode.ON_CHANGE)
);
}
diff --git a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
index d921079..ec0d310 100644
--- a/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
+++ b/automotive/vehicle/aidl/impl/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
@@ -41,8 +41,6 @@
using ::aidl::android::hardware::automotive::vehicle::CruiseControlCommand;
using ::aidl::android::hardware::automotive::vehicle::CruiseControlState;
using ::aidl::android::hardware::automotive::vehicle::CruiseControlType;
-using ::aidl::android::hardware::automotive::vehicle::DriverAttentionMonitoringState;
-using ::aidl::android::hardware::automotive::vehicle::DriverAttentionMonitoringWarning;
using ::aidl::android::hardware::automotive::vehicle::EmergencyLaneKeepAssistState;
using ::aidl::android::hardware::automotive::vehicle::ErrorState;
using ::aidl::android::hardware::automotive::vehicle::EvConnectorType;
@@ -245,10 +243,6 @@
std::make_unique<ConstantParser<HandsOnDetectionDriverState>>();
mConstantParsersByType["HandsOnDetectionWarning"] =
std::make_unique<ConstantParser<HandsOnDetectionWarning>>();
- mConstantParsersByType["DriverAttentionMonitoringState"] =
- std::make_unique<ConstantParser<DriverAttentionMonitoringState>>();
- mConstantParsersByType["DriverAttentionMonitoringWarning"] =
- std::make_unique<ConstantParser<DriverAttentionMonitoringWarning>>();
mConstantParsersByType["ErrorState"] = std::make_unique<ConstantParser<ErrorState>>();
mConstantParsersByType["AutomaticEmergencyBrakingState"] =
std::make_unique<ConstantParser<AutomaticEmergencyBrakingState>>();
diff --git a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json
index 5d15f32..28790e2 100644
--- a/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json
+++ b/automotive/vehicle/aidl/impl/default_config/config/DefaultProperties.json
@@ -80,7 +80,7 @@
"property": "VehicleProperty::INFO_MODEL_YEAR",
"defaultValue": {
"int32Values": [
- 2020
+ 2023
]
}
},
@@ -1329,22 +1329,26 @@
},
{
"property": "VehicleProperty::SEAT_OCCUPANCY",
+ "defaultValue": {
+ "int32Values": [
+ "VehicleSeatOccupancyState::VACANT"
+ ]
+ },
"areas": [
{
- "defaultValue": {
- "int32Values": [
- "VehicleSeatOccupancyState::VACANT"
- ]
- },
"areaId": "Constants::SEAT_1_LEFT"
},
{
- "defaultValue": {
- "int32Values": [
- "VehicleSeatOccupancyState::VACANT"
- ]
- },
"areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1854,7 +1858,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1867,7 +1883,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
],
"configArray": [
@@ -1918,7 +1946,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1931,7 +1971,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1944,7 +1996,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1957,7 +2021,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1970,7 +2046,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -1983,7 +2071,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -2009,7 +2109,27 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL",
+ "areaId": "Constants::SEAT_1_LEFT",
+ "minInt32Value": 1,
+ "maxInt32Value": 7
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT",
+ "minInt32Value": 1,
+ "maxInt32Value": 7
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT",
+ "minInt32Value": 1,
+ "maxInt32Value": 7
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT",
+ "minInt32Value": 1,
+ "maxInt32Value": 7
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER",
"minInt32Value": 1,
"maxInt32Value": 7
}
@@ -2024,7 +2144,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -2043,7 +2175,19 @@
},
"areas": [
{
- "areaId": "Constants::HVAC_ALL"
+ "areaId": "Constants::SEAT_1_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
@@ -2064,6 +2208,21 @@
"areaId": "Constants::SEAT_1_RIGHT",
"minInt32Value": 0,
"maxInt32Value": 3
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT",
+ "minInt32Value": 0,
+ "maxInt32Value": 3
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT",
+ "minInt32Value": 0,
+ "maxInt32Value": 3
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER",
+ "minInt32Value": 0,
+ "maxInt32Value": 3
}
],
"comment": "0 is off and +ve values indicate ventilation level."
@@ -2101,6 +2260,21 @@
"areaId": "Constants::SEAT_1_RIGHT",
"minInt32Value": -2,
"maxInt32Value": 2
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT",
+ "minInt32Value": -2,
+ "maxInt32Value": 2
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT",
+ "minInt32Value": -2,
+ "maxInt32Value": 2
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER",
+ "minInt32Value": -2,
+ "maxInt32Value": 2
}
],
"comment": "+ve values for heating and -ve for cooling"
@@ -2122,45 +2296,59 @@
},
{
"property": "VehicleProperty::HVAC_TEMPERATURE_CURRENT",
+ "defaultValue": {
+ "floatValues": [
+ 19.1
+ ]
+ },
"areas": [
{
- "defaultValue": {
- "floatValues": [
- 17.3
- ]
- },
- "areaId": 49
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "defaultValue": {
- "floatValues": [
- 19.1
- ]
- },
- "areaId": 68
+ "areaId": "Constants::SEAT_1_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT"
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER"
}
]
},
{
"property": "VehicleProperty::HVAC_TEMPERATURE_SET",
+ "defaultValue": {
+ "floatValues": [
+ 17.0
+ ]
+ },
"areas": [
{
- "defaultValue": {
- "floatValues": [
- 16.0
- ]
- },
- "areaId": 49,
+ "areaId": "Constants::SEAT_1_LEFT",
"minFloatValue": 16.0,
"maxFloatValue": 28.0
},
{
- "defaultValue": {
- "floatValues": [
- 20.0
- ]
- },
- "areaId": 68,
+ "areaId": "Constants::SEAT_1_RIGHT",
+ "minFloatValue": 16.0,
+ "maxFloatValue": 28.0
+ },
+ {
+ "areaId": "Constants::SEAT_2_LEFT",
+ "minFloatValue": 16.0,
+ "maxFloatValue": 28.0
+ },
+ {
+ "areaId": "Constants::SEAT_2_RIGHT",
+ "minFloatValue": 16.0,
+ "maxFloatValue": 28.0
+ },
+ {
+ "areaId": "Constants::SEAT_2_CENTER",
"minFloatValue": 16.0,
"maxFloatValue": 28.0
}
@@ -3349,50 +3537,6 @@
]
},
{
- "property": "VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED",
- "defaultValue": {
- "int32Values": [
- 1
- ]
- }
- },
- {
- "property": "VehicleProperty::DRIVER_ATTENTION_MONITORING_STATE",
- "defaultValue": {
- "int32Values": [
- "DriverAttentionMonitoringState::NOT_DISTRACTED"
- ]
- },
- "areas": [
- {
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "DriverAttentionMonitoringState::DISTRACTED",
- "DriverAttentionMonitoringState::NOT_DISTRACTED"
- ]
- }
- ]
- },
- {
- "property": "VehicleProperty::DRIVER_ATTENTION_MONITORING_WARNING",
- "defaultValue": {
- "int32Values": [
- "DriverAttentionMonitoringWarning::NO_WARNING"
- ]
- },
- "areas": [
- {
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "DriverAttentionMonitoringWarning::NO_WARNING",
- "DriverAttentionMonitoringWarning::WARNING"
- ]
- }
- ]
- },
- {
"property": "VehicleProperty::INITIAL_USER_INFO"
},
{
diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h
index 956c7c0..6fd2367 100644
--- a/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h
+++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/include/FakeVehicleHardware.h
@@ -194,7 +194,7 @@
const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const;
ValueResultType getEchoReverseBytes(
const aidl::android::hardware::automotive::vehicle::VehiclePropValue& value) const;
- bool isHvacPropAndHvacNotAvailable(int32_t propId) const;
+ bool isHvacPropAndHvacNotAvailable(int32_t propId, int32_t areaId) const;
std::unordered_map<int32_t, ConfigDeclaration> loadConfigDeclarations();
@@ -236,7 +236,7 @@
const aidl::android::hardware::automotive::vehicle::SetValueRequest& request);
std::string genFakeDataCommand(const std::vector<std::string>& options);
- void sendHvacPropertiesCurrentValues();
+ void sendHvacPropertiesCurrentValues(int32_t areaId);
static aidl::android::hardware::automotive::vehicle::VehiclePropValue createHwInputKeyProp(
aidl::android::hardware::automotive::vehicle::VehicleHwKeyInputAction action,
diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp
index 7b4fa16..78c21e9 100644
--- a/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp
+++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/src/FakeVehicleHardware.cpp
@@ -298,16 +298,27 @@
return {};
}
-bool FakeVehicleHardware::isHvacPropAndHvacNotAvailable(int32_t propId) const {
+bool FakeVehicleHardware::isHvacPropAndHvacNotAvailable(int32_t propId, int32_t areaId) const {
std::unordered_set<int32_t> powerProps(std::begin(HVAC_POWER_PROPERTIES),
std::end(HVAC_POWER_PROPERTIES));
if (powerProps.count(propId)) {
- auto hvacPowerOnResult =
- mServerSidePropStore->readValue(toInt(VehicleProperty::HVAC_POWER_ON), HVAC_ALL);
-
- if (hvacPowerOnResult.ok() && hvacPowerOnResult.value()->value.int32Values.size() == 1 &&
- hvacPowerOnResult.value()->value.int32Values[0] == 0) {
- return true;
+ auto hvacPowerOnResults =
+ mServerSidePropStore->readValuesForProperty(toInt(VehicleProperty::HVAC_POWER_ON));
+ if (!hvacPowerOnResults.ok()) {
+ ALOGW("failed to get HVAC_POWER_ON 0x%x, error: %s",
+ toInt(VehicleProperty::HVAC_POWER_ON), getErrorMsg(hvacPowerOnResults).c_str());
+ return false;
+ }
+ auto& hvacPowerOnValues = hvacPowerOnResults.value();
+ for (size_t j = 0; j < hvacPowerOnValues.size(); j++) {
+ auto hvacPowerOnValue = std::move(hvacPowerOnValues[j]);
+ if ((hvacPowerOnValue->areaId & areaId) == areaId) {
+ if (hvacPowerOnValue->value.int32Values.size() == 1 &&
+ hvacPowerOnValue->value.int32Values[0] == 0) {
+ return true;
+ }
+ break;
+ }
}
}
return false;
@@ -369,7 +380,7 @@
return getUserHalProp(value);
}
- if (isHvacPropAndHvacNotAvailable(propId)) {
+ if (isHvacPropAndHvacNotAvailable(propId, value.areaId)) {
*isSpecialValue = true;
return StatusError(StatusCode::NOT_AVAILABLE) << "hvac not available";
}
@@ -419,7 +430,7 @@
return std::move(gotValue);
}
-void FakeVehicleHardware::sendHvacPropertiesCurrentValues() {
+void FakeVehicleHardware::sendHvacPropertiesCurrentValues(int32_t areaId) {
for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
int powerPropId = HVAC_POWER_PROPERTIES[i];
auto powerPropResults = mServerSidePropStore->readValuesForProperty(powerPropId);
@@ -431,11 +442,13 @@
auto& powerPropValues = powerPropResults.value();
for (size_t j = 0; j < powerPropValues.size(); j++) {
auto powerPropValue = std::move(powerPropValues[j]);
- powerPropValue->status = VehiclePropertyStatus::AVAILABLE;
- powerPropValue->timestamp = elapsedRealtimeNano();
- // This will trigger a property change event for the current hvac property value.
- mServerSidePropStore->writeValue(std::move(powerPropValue), /*updateStatus=*/true,
- VehiclePropertyStore::EventMode::ALWAYS);
+ if ((powerPropValue->areaId & areaId) == powerPropValue->areaId) {
+ powerPropValue->status = VehiclePropertyStatus::AVAILABLE;
+ powerPropValue->timestamp = elapsedRealtimeNano();
+ // This will trigger a property change event for the current hvac property value.
+ mServerSidePropStore->writeValue(std::move(powerPropValue), /*updateStatus=*/true,
+ VehiclePropertyStore::EventMode::ALWAYS);
+ }
}
}
}
@@ -455,10 +468,10 @@
value.value.int32Values[0] == 1) {
// If we are turning HVAC power on, send current hvac property values through on change
// event.
- sendHvacPropertiesCurrentValues();
+ sendHvacPropertiesCurrentValues(value.areaId);
}
- if (isHvacPropAndHvacNotAvailable(propId)) {
+ if (isHvacPropAndHvacNotAvailable(propId, value.areaId)) {
*isSpecialValue = true;
return StatusError(StatusCode::NOT_AVAILABLE) << "hvac not available";
}
diff --git a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp
index f3593aa..93a63ad 100644
--- a/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp
+++ b/automotive/vehicle/aidl/impl/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp
@@ -1147,67 +1147,100 @@
}
TEST_F(FakeVehicleHardwareTest, testGetHvacPropNotAvailable) {
- StatusCode status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
- .areaId = HVAC_ALL,
- .value.int32Values = {0}});
+ int seatAreaIds[5] = {SEAT_1_LEFT, SEAT_1_RIGHT, SEAT_2_LEFT, SEAT_2_CENTER, SEAT_2_RIGHT};
+ for (int areaId : seatAreaIds) {
+ StatusCode status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
+ .areaId = areaId,
+ .value.int32Values = {0}});
- ASSERT_EQ(status, StatusCode::OK);
+ ASSERT_EQ(status, StatusCode::OK);
- for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
- int powerPropId = HVAC_POWER_PROPERTIES[i];
- auto getValueResult = getValue(VehiclePropValue{
- .prop = powerPropId,
- .areaId = HVAC_ALL,
- });
+ for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
+ int powerPropId = HVAC_POWER_PROPERTIES[i];
+ for (int powerDependentAreaId : seatAreaIds) {
+ auto getValueResult = getValue(VehiclePropValue{
+ .prop = powerPropId,
+ .areaId = powerDependentAreaId,
+ });
- EXPECT_FALSE(getValueResult.ok());
- EXPECT_EQ(getValueResult.error(), StatusCode::NOT_AVAILABLE);
+ if (areaId == powerDependentAreaId) {
+ EXPECT_FALSE(getValueResult.ok());
+ EXPECT_EQ(getValueResult.error(), StatusCode::NOT_AVAILABLE);
+ } else {
+ EXPECT_TRUE(getValueResult.ok());
+ }
+ }
+ }
+
+ // Resetting HVAC_POWER_ON at areaId back to ON state to ensure that there's no dependence
+ // on this value from any power dependent property values other than those with the same
+ // areaId.
+ setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
+ .areaId = areaId,
+ .value.int32Values = {1}});
}
}
TEST_F(FakeVehicleHardwareTest, testSetHvacPropNotAvailable) {
- StatusCode status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
- .areaId = HVAC_ALL,
- .value.int32Values = {0}});
+ int seatAreaIds[5] = {SEAT_1_LEFT, SEAT_1_RIGHT, SEAT_2_LEFT, SEAT_2_CENTER, SEAT_2_RIGHT};
+ for (int areaId : seatAreaIds) {
+ StatusCode status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
+ .areaId = areaId,
+ .value.int32Values = {0}});
- ASSERT_EQ(status, StatusCode::OK);
+ ASSERT_EQ(status, StatusCode::OK);
- for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
- int powerPropId = HVAC_POWER_PROPERTIES[i];
- status = setValue(VehiclePropValue{
- .prop = powerPropId,
- .areaId = HVAC_ALL,
- });
+ for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
+ int powerPropId = HVAC_POWER_PROPERTIES[i];
+ for (int powerDependentAreaId : seatAreaIds) {
+ StatusCode status = setValue(VehiclePropValue{.prop = powerPropId,
+ .areaId = powerDependentAreaId,
+ .value.int32Values = {1}});
- EXPECT_EQ(status, StatusCode::NOT_AVAILABLE);
+ if (areaId == powerDependentAreaId) {
+ EXPECT_EQ(status, StatusCode::NOT_AVAILABLE);
+ } else {
+ EXPECT_EQ(status, StatusCode::OK);
+ }
+ }
+ }
+
+ // Resetting HVAC_POWER_ON at areaId back to ON state to ensure that there's no dependence
+ // on this value from any power dependent property values other than those with the same
+ // areaId.
+ setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
+ .areaId = areaId,
+ .value.int32Values = {1}});
}
}
TEST_F(FakeVehicleHardwareTest, testHvacPowerOnSendCurrentHvacPropValues) {
- StatusCode status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
- .areaId = HVAC_ALL,
- .value.int32Values = {0}});
+ int seatAreaIds[5] = {SEAT_1_LEFT, SEAT_1_RIGHT, SEAT_2_LEFT, SEAT_2_CENTER, SEAT_2_RIGHT};
+ for (int areaId : seatAreaIds) {
+ StatusCode status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
+ .areaId = areaId,
+ .value.int32Values = {0}});
- ASSERT_EQ(status, StatusCode::OK);
+ ASSERT_EQ(status, StatusCode::OK);
- clearChangedProperties();
+ clearChangedProperties();
+ setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
+ .areaId = areaId,
+ .value.int32Values = {1}});
- status = setValue(VehiclePropValue{.prop = toInt(VehicleProperty::HVAC_POWER_ON),
- .areaId = HVAC_ALL,
- .value.int32Values = {1}});
+ auto events = getChangedProperties();
+ // If we turn HVAC power on, we expect to receive one property event for every HVAC prop
+ // areas plus one event for HVAC_POWER_ON.
+ std::vector<int32_t> changedPropIds;
+ for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
+ changedPropIds.push_back(HVAC_POWER_PROPERTIES[i]);
+ }
+ changedPropIds.push_back(toInt(VehicleProperty::HVAC_POWER_ON));
- auto events = getChangedProperties();
- // If we turn HVAC power on, we expect to receive one property event for every HVAC prop areas
- // plus one event for HVAC_POWER_ON.
- std::vector<int32_t> changedPropIds;
- for (size_t i = 0; i < sizeof(HVAC_POWER_PROPERTIES) / sizeof(int32_t); i++) {
- changedPropIds.push_back(HVAC_POWER_PROPERTIES[i]);
- }
- changedPropIds.push_back(toInt(VehicleProperty::HVAC_POWER_ON));
- ASSERT_EQ(events.size(), changedPropIds.size());
- for (const auto& event : events) {
- EXPECT_EQ(event.areaId, HVAC_ALL);
- EXPECT_THAT(event.prop, AnyOfArray(changedPropIds));
+ for (const auto& event : events) {
+ EXPECT_EQ(event.areaId, areaId);
+ EXPECT_THAT(event.prop, AnyOfArray(changedPropIds));
+ }
}
}
diff --git a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h
index 7db4246..e6d657d 100644
--- a/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h
+++ b/automotive/vehicle/aidl/impl/utils/common/include/VehicleHalTypes.h
@@ -24,8 +24,6 @@
#include <aidl/android/hardware/automotive/vehicle/CruiseControlType.h>
#include <aidl/android/hardware/automotive/vehicle/DiagnosticFloatSensorIndex.h>
#include <aidl/android/hardware/automotive/vehicle/DiagnosticIntegerSensorIndex.h>
-#include <aidl/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.h>
-#include <aidl/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.h>
#include <aidl/android/hardware/automotive/vehicle/EmergencyLaneKeepAssistState.h>
#include <aidl/android/hardware/automotive/vehicle/ErrorState.h>
#include <aidl/android/hardware/automotive/vehicle/EvConnectorType.h>
diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl
index e0267f3..ba75e7b 100644
--- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl
+++ b/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/VehicleProperty.aidl
@@ -270,7 +270,4 @@
HANDS_ON_DETECTION_ENABLED = (((0x1016 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313942 */,
HANDS_ON_DETECTION_DRIVER_STATE = (((0x1017 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411095 */,
HANDS_ON_DETECTION_WARNING = (((0x1018 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411096 */,
- DRIVER_ATTENTION_MONITORING_ENABLED = (((0x1019 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313945 */,
- DRIVER_ATTENTION_MONITORING_STATE = (((0x101A + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411098 */,
- DRIVER_ATTENTION_MONITORING_WARNING = (((0x101B + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411099 */,
}
diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.aidl
deleted file mode 100644
index 7ebf844..0000000
--- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.aidl
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-package android.hardware.automotive.vehicle;
-
-/**
- * Used to enumerate the current driver state of Driver Attention Monitoring.
- *
- * This enum could be extended in future releases to include additional feature states.
- */
-@VintfStability
-@Backing(type="int")
-enum DriverAttentionMonitoringState {
- /**
- * This state is used as an alternative for any DriverAttentionMonitoringState value that is
- * not defined in the platform. Ideally, implementations of
- * VehicleProperty#DRIVER_ATTENTION_MONITORING_STATE should not use this state. The
- * framework can use this field to remain backwards compatible if DriverAttentionMonitoringState
- * is extended to include additional states.
- */
- OTHER = 0,
- /**
- * The system detects that the driver is distracted.
- */
- DISTRACTED = 1,
- /**
- * The system detects that the driver is attentive / not distracted.
- */
- NOT_DISTRACTED = 2,
-}
diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.aidl
deleted file mode 100644
index 373dd7f..0000000
--- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.aidl
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2023 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.
- */
-
-package android.hardware.automotive.vehicle;
-
-/**
- * Used to enumerate the current warning state of Driver Attention Monitoring.
- */
-@VintfStability
-@Backing(type="int")
-enum DriverAttentionMonitoringWarning {
- /**
- * This state is used as an alternative for any DriverAttentionMonitoringWarning value that is
- * defined in the platform. Ideally, implementations of
- * VehicleProperty#DRIVER_ATTENTION_MONITORING_WARNING should not use this state. The framework
- * can use this field to remain backwards compatible if DriverAttentionMonitoringWarning is
- * extended to include additional states.
- */
- OTHER = 0,
- /**
- * Driver Attention Monitoring is enabled and the driver's current state does not warrant
- * sending a warning.
- */
- NO_WARNING = 1,
- /**
- * Driver Attention Monitoring is enabled and the driver has been distracted for too long of a
- * duration, and the vehicle is sending a warning to the driver as a consequence of this.
- */
- WARNING = 2,
-}
diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl
index 7137883..7cd020b 100644
--- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl
+++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehicleProperty.aidl
@@ -43,6 +43,8 @@
enum VehicleProperty {
/**
* Undefined property.
+ *
+ * This property must never be used/supported.
*/
INVALID = 0x00000000,
/**
@@ -405,6 +407,10 @@
* all energy sources in a vehicle. For example, a hybrid car's range will
* be the sum of the ranges based on fuel and battery.
*
+ * This property may be writable because a navigation app could update the range if it has a
+ * more accurate estimate based on the upcoming route. However, this property can be set to
+ * VehiclePropertyAccess.READ only at the OEM's discretion.
+ *
* @change_mode VehiclePropertyChangeMode.CONTINUOUS
* @access VehiclePropertyAccess.READ_WRITE
* @unit VehicleUnit:METER
@@ -887,6 +893,9 @@
* Values must be one of VehicleUnit::CELSIUS or VehicleUnit::FAHRENHEIT
* Note that internally, all temperatures are represented in floating point Celsius.
*
+ * If updating HVAC_TEMPERATURE_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS
+ * properties, then their values must be updated and communicated to the AAOS framework as well.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ_WRITE
* @data_enum VehicleUnit
@@ -1048,6 +1057,10 @@
* For example: configArray[0] = METER
* configArray[1] = KILOMETER
* configArray[2] = MILE
+ *
+ * If updating DISTANCE_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS properties,
+ * then their values must be updated and communicated to the AAOS framework as well.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ_WRITE
* @data_enum VehicleUnit
@@ -1064,6 +1077,10 @@
* Volume units are defined in VehicleUnit.
* For example: configArray[0] = LITER
* configArray[1] = GALLON
+ *
+ * If updating FUEL_VOLUME_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS properties,
+ * then their values must be updated and communicated to the AAOS framework as well.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ_WRITE
* @data_enum VehicleUnit
@@ -1081,6 +1098,10 @@
* For example: configArray[0] = KILOPASCAL
* configArray[1] = PSI
* configArray[2] = BAR
+ *
+ * If updating TIRE_PRESSURE_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS
+ * properties, then their values must be updated and communicated to the AAOS framework as well.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ_WRITE
* @data_enum VehicleUnit
@@ -1098,6 +1119,10 @@
* For example: configArray[0] = WATT_HOUR
* configArray[1] = AMPERE_HOURS
* configArray[2] = KILOWATT_HOUR
+ *
+ * If updating EV_BATTERY_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS properties,
+ * then their values must be updated and communicated to the AAOS framework as well.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ_WRITE
* @data_enum VehicleUnit
@@ -1126,6 +1151,10 @@
* For example: configArray[0] = METER_PER_SEC
* configArray[1] = MILES_PER_HOUR
* configArray[2] = KILOMETERS_PER_HOUR
+ *
+ * If updating VEHICLE_SPEED_DISPLAY_UNITS affects the values of other *_DISPLAY_UNITS
+ * properties, then their values must be updated and communicated to the AAOS framework as well.
+ *
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ_WRITE
*/
@@ -1594,11 +1623,11 @@
*
* This parameter selects the memory preset to use to select the seat
* position. The minValue is always 0, and the maxValue determines the
- * number of seat positions available.
+ * number of seat preset memory slots available (i.e. numSeatPresets - 1).
*
* For instance, if the driver's seat has 3 memory presets, the maxValue
- * will be 3. When the user wants to select a preset, the desired preset
- * number (1, 2, or 3) is set.
+ * will be 2. When the user wants to select a preset, the desired preset
+ * number (0, 1, or 2) is set.
*
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.WRITE
@@ -4163,72 +4192,6 @@
HANDS_ON_DETECTION_WARNING =
0x1018 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32,
- /**
- * Enable or disable driver attention monitoring.
- *
- * Set true to enable driver attention monitoring and false to disable driver attention
- * monitoring. When driver attention monitoring is enabled, a system inside the vehicle should
- * be monitoring the attention level of the driver and should send a warning if it detects that
- * the driver is distracted.
- *
- * In general, DRIVER_ATTENTION_MONITORING_ENABLED should always return true or false. If the
- * feature is not available due to some temporary state, that information must be conveyed
- * through the ErrorState values in the DRIVER_ATTENTION_MONITORING_STATE property.
- *
- * This property is defined as read_write, but OEMs have the option to implement it as read
- * only.
- *
- * @change_mode VehiclePropertyChangeMode.ON_CHANGE
- * @access VehiclePropertyAccess.READ_WRITE
- */
- DRIVER_ATTENTION_MONITORING_ENABLED =
- 0x1019 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN,
-
- /**
- * Driver attention monitoring state.
- *
- * Returns whether the driver is currently attentive or distracted. Generally, this property
- * should return a valid state defined in the DriverAttentionMonitoringState or ErrorState. For
- * example, if the feature is not available due to some temporary state, that information should
- * be conveyed through an ErrorState.
- *
- * If the vehicle wants to send a warning to the user because the driver has been distracted for
- * too long, the warning should be surfaced through DRIVER_ATTENTION_MONITORING_WARNING.
- *
- * The VehicleAreaConfig#configArray array must define all states from
- * DriverAttentionMonitoringState (including OTHER, which is not recommended) and ErrorState
- * that are supported.
- *
- * @change_mode VehiclePropertyChangeMode.ON_CHANGE
- * @access VehiclePropertyAccess.READ
- * @data_enum DriverAttentionMonitoringState
- * @data_enum ErrorState
- */
- DRIVER_ATTENTION_MONITORING_STATE =
- 0x101A + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32,
-
- /**
- * Driver attention monitoring warning.
- *
- * Returns whether a warning is being sent to the driver for being distracted for too long a
- * duration.
- *
- * Generally, this property should return a valid state defined in the
- * DriverAttentionMonitoringWarning or ErrorState. For example, if the feature is not available
- * due to some temporary state, that information should be conveyed through an ErrorState.
- *
- * For the global area ID (0), the VehicleAreaConfig#supportedEnumValues array must be defined
- * unless all states of both DriverAttentionMonitoringWarning (including OTHER, which is not
- * recommended) and ErrorState are supported.
- *
- * @change_mode VehiclePropertyChangeMode.ON_CHANGE
- * @access VehiclePropertyAccess.READ
- * @data_enum DriverAttentionMonitoringWarning
- * @data_enum ErrorState
- */
- DRIVER_ATTENTION_MONITORING_WARNING =
- 0x101B + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32,
-
/***************************************************************************
* End of ADAS Properties
**************************************************************************/
diff --git a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehiclePropertyType.aidl b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehiclePropertyType.aidl
index 62d26de..7a68b4a 100644
--- a/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehiclePropertyType.aidl
+++ b/automotive/vehicle/aidl_property/android/hardware/automotive/vehicle/VehiclePropertyType.aidl
@@ -25,6 +25,10 @@
@Backing(type="int")
enum VehiclePropertyType {
STRING = 0x00100000,
+ /**
+ * Boolean values should be specified through the int32Values in RawPropValues.
+ * int32Value = {0} represents false and int32Value = {1} represents true.
+ */
BOOLEAN = 0x00200000,
INT32 = 0x00400000,
INT32_VEC = 0x00410000,
diff --git a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp
index 2da8179..8bcad1e 100644
--- a/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp
+++ b/automotive/vehicle/vts/src/VtsHalAutomotiveVehicle_TargetTest.cpp
@@ -296,6 +296,30 @@
ASSERT_EQ(setValueResult.error().code(), ErrorCode::ACCESS_DENIED_FROM_VHAL);
}
+// Test get(), set() and getAllPropConfigs() on VehicleProperty::INVALID.
+TEST_P(VtsHalAutomotiveVehicleTargetTest, getSetPropertyIdInvalid) {
+ ALOGD("VtsHalAutomotiveVehicleTargetTest::getSetPropertyIdInvalid");
+
+ int32_t propId = toInt(VehicleProperty::INVALID);
+ auto getValueResult = mVhalClient->getValueSync(*mVhalClient->createHalPropValue(propId));
+ ASSERT_FALSE(getValueResult.ok()) << "Expect get on VehicleProperty::INVALID to fail";
+ ASSERT_EQ(getValueResult.error().code(), ErrorCode::INVALID_ARG);
+
+ auto propToSet = mVhalClient->createHalPropValue(propId);
+ propToSet->setInt32Values({0});
+ auto setValueResult = mVhalClient->setValueSync(*propToSet);
+ ASSERT_FALSE(setValueResult.ok()) << "Expect set on VehicleProperty::INVALID to fail";
+ ASSERT_EQ(setValueResult.error().code(), ErrorCode::INVALID_ARG);
+
+ auto result = mVhalClient->getAllPropConfigs();
+ ASSERT_TRUE(result.ok());
+ for (const auto& cfgPtr : result.value()) {
+ const IHalPropConfig& cfg = *cfgPtr;
+ ASSERT_FALSE(cfg.getPropId() == propId) << "Expect VehicleProperty::INVALID to not be "
+ "included in propConfigs";
+ }
+}
+
// Test subscribe() and unsubscribe().
TEST_P(VtsHalAutomotiveVehicleTargetTest, subscribeAndUnsubscribe) {
ALOGD("VtsHalAutomotiveVehicleTargetTest::subscribeAndUnsubscribe");
@@ -577,24 +601,6 @@
VehicleArea::GLOBAL, VehiclePropertyType::INT32);
}
-TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyDriverAttentionMonitoringEnabledConfig) {
- verifyProperty(VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED,
- VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE,
- VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::BOOLEAN);
-}
-
-TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyDriverAttentionMonitoringStateConfig) {
- verifyProperty(VehicleProperty::DRIVER_ATTENTION_MONITORING_STATE, VehiclePropertyAccess::READ,
- VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM,
- VehicleArea::GLOBAL, VehiclePropertyType::INT32);
-}
-
-TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyDriverAttentionMonitoringWarningConfig) {
- verifyProperty(VehicleProperty::DRIVER_ATTENTION_MONITORING_WARNING,
- VehiclePropertyAccess::READ, VehiclePropertyChangeMode::ON_CHANGE,
- VehiclePropertyGroup::SYSTEM, VehicleArea::GLOBAL, VehiclePropertyType::INT32);
-}
-
TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyEvBrakeRegenerationLevelConfig) {
verifyProperty(VehicleProperty::EV_BRAKE_REGENERATION_LEVEL,
VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE,
diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/CameraBlobId.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/CameraBlobId.aidl
index 632499d..24083ad 100644
--- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/CameraBlobId.aidl
+++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/CameraBlobId.aidl
@@ -34,6 +34,6 @@
package android.hardware.camera.device;
@Backing(type="int") @VintfStability
enum CameraBlobId {
- JPEG = 255,
- JPEG_APP_SEGMENTS = 256,
+ JPEG = 0x00FF,
+ JPEG_APP_SEGMENTS = 0x100,
}
diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/RequestTemplate.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/RequestTemplate.aidl
index b70b899..1f87aa3 100644
--- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/RequestTemplate.aidl
+++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/RequestTemplate.aidl
@@ -40,5 +40,5 @@
VIDEO_SNAPSHOT = 4,
ZERO_SHUTTER_LAG = 5,
MANUAL = 6,
- VENDOR_TEMPLATE_START = 1073741824,
+ VENDOR_TEMPLATE_START = 0x40000000,
}
diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfiguration.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfiguration.aidl
index f340578..97fd067 100644
--- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfiguration.aidl
+++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfiguration.aidl
@@ -39,4 +39,5 @@
android.hardware.camera.device.CameraMetadata sessionParams;
int streamConfigCounter;
boolean multiResolutionInputImage;
+ long logId = 0;
}
diff --git a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfigurationMode.aidl b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfigurationMode.aidl
index bdef412..ef7ec25 100644
--- a/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfigurationMode.aidl
+++ b/camera/device/aidl/aidl_api/android.hardware.camera.device/current/android/hardware/camera/device/StreamConfigurationMode.aidl
@@ -36,12 +36,12 @@
enum StreamConfigurationMode {
NORMAL_MODE = 0,
CONSTRAINED_HIGH_SPEED_MODE = 1,
- VENDOR_MODE_0 = 32768,
- VENDOR_MODE_1 = 32769,
- VENDOR_MODE_2 = 32770,
- VENDOR_MODE_3 = 32771,
- VENDOR_MODE_4 = 32772,
- VENDOR_MODE_5 = 32773,
- VENDOR_MODE_6 = 32774,
- VENDOR_MODE_7 = 32775,
+ VENDOR_MODE_0 = 0x8000,
+ VENDOR_MODE_1,
+ VENDOR_MODE_2,
+ VENDOR_MODE_3,
+ VENDOR_MODE_4,
+ VENDOR_MODE_5,
+ VENDOR_MODE_6,
+ VENDOR_MODE_7,
}
diff --git a/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl b/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl
index cacd32c..197d9af 100644
--- a/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl
+++ b/camera/device/aidl/android/hardware/camera/device/StreamConfiguration.aidl
@@ -62,7 +62,7 @@
*/
CameraMetadata sessionParams;
- /**
+ /**
* An incrementing counter used for HAL to keep track of the stream
* configuration and the paired oneway signalStreamFlush call. When the
* counter in signalStreamFlush call is less than the counter here, that
@@ -83,4 +83,13 @@
* any one of the supported multi-resolution input stream sizes.
*/
boolean multiResolutionInputImage;
+
+ /**
+ * Logging identifier to join HAL logs to logs collected by cameraservice. This field has no
+ * functional purpose.
+ *
+ * See documentation of 'mLogId' in frameworks/av/camera/include/camera/CameraSessionStats.h
+ * for specifics of this identifier and how it can be used to join with cameraservice logs.
+ */
+ long logId = 0;
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLensFacing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLensFacing.aidl
index 14ad26e..18917f7 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLensFacing.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLensFacing.aidl
@@ -38,19 +38,19 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum AutomotiveLensFacing {
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER = 0,
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT = 1,
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR = 2,
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT = 3,
- ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT = 4,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER = 5,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT = 6,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER = 7,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT = 8,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT = 9,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER = 10,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT = 11,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT = 12,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER = 13,
- ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT = 14,
+ ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER,
+ ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR,
+ ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER,
+ ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLocation.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLocation.aidl
index 5417bdb..ad6003f 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLocation.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/AutomotiveLocation.aidl
@@ -38,15 +38,15 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum AutomotiveLocation {
- ANDROID_AUTOMOTIVE_LOCATION_INTERIOR = 0,
- ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER = 1,
- ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT = 2,
- ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR = 3,
- ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT = 4,
- ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT = 5,
- ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER = 6,
- ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT = 7,
- ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR = 8,
- ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT = 9,
- ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT = 10,
+ ANDROID_AUTOMOTIVE_LOCATION_INTERIOR,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT,
+ ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/BlackLevelLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/BlackLevelLock.aidl
index dcefa2f..1f3e76f 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/BlackLevelLock.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/BlackLevelLock.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum BlackLevelLock {
- ANDROID_BLACK_LEVEL_LOCK_OFF = 0,
- ANDROID_BLACK_LEVEL_LOCK_ON = 1,
+ ANDROID_BLACK_LEVEL_LOCK_OFF,
+ ANDROID_BLACK_LEVEL_LOCK_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSection.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSection.aidl
index d99f16e..138101b 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSection.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSection.aidl
@@ -38,39 +38,39 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum CameraMetadataSection {
- ANDROID_COLOR_CORRECTION = 0,
- ANDROID_CONTROL = 1,
- ANDROID_DEMOSAIC = 2,
- ANDROID_EDGE = 3,
- ANDROID_FLASH = 4,
- ANDROID_FLASH_INFO = 5,
- ANDROID_HOT_PIXEL = 6,
- ANDROID_JPEG = 7,
- ANDROID_LENS = 8,
- ANDROID_LENS_INFO = 9,
- ANDROID_NOISE_REDUCTION = 10,
- ANDROID_QUIRKS = 11,
- ANDROID_REQUEST = 12,
- ANDROID_SCALER = 13,
- ANDROID_SENSOR = 14,
- ANDROID_SENSOR_INFO = 15,
- ANDROID_SHADING = 16,
- ANDROID_STATISTICS = 17,
- ANDROID_STATISTICS_INFO = 18,
- ANDROID_TONEMAP = 19,
- ANDROID_LED = 20,
- ANDROID_INFO = 21,
- ANDROID_BLACK_LEVEL = 22,
- ANDROID_SYNC = 23,
- ANDROID_REPROCESS = 24,
- ANDROID_DEPTH = 25,
- ANDROID_LOGICAL_MULTI_CAMERA = 26,
- ANDROID_DISTORTION_CORRECTION = 27,
- ANDROID_HEIC = 28,
- ANDROID_HEIC_INFO = 29,
- ANDROID_AUTOMOTIVE = 30,
- ANDROID_AUTOMOTIVE_LENS = 31,
- ANDROID_EXTENSION = 32,
- ANDROID_JPEGR = 33,
- VENDOR_SECTION = 32768,
+ ANDROID_COLOR_CORRECTION,
+ ANDROID_CONTROL,
+ ANDROID_DEMOSAIC,
+ ANDROID_EDGE,
+ ANDROID_FLASH,
+ ANDROID_FLASH_INFO,
+ ANDROID_HOT_PIXEL,
+ ANDROID_JPEG,
+ ANDROID_LENS,
+ ANDROID_LENS_INFO,
+ ANDROID_NOISE_REDUCTION,
+ ANDROID_QUIRKS,
+ ANDROID_REQUEST,
+ ANDROID_SCALER,
+ ANDROID_SENSOR,
+ ANDROID_SENSOR_INFO,
+ ANDROID_SHADING,
+ ANDROID_STATISTICS,
+ ANDROID_STATISTICS_INFO,
+ ANDROID_TONEMAP,
+ ANDROID_LED,
+ ANDROID_INFO,
+ ANDROID_BLACK_LEVEL,
+ ANDROID_SYNC,
+ ANDROID_REPROCESS,
+ ANDROID_DEPTH,
+ ANDROID_LOGICAL_MULTI_CAMERA,
+ ANDROID_DISTORTION_CORRECTION,
+ ANDROID_HEIC,
+ ANDROID_HEIC_INFO,
+ ANDROID_AUTOMOTIVE,
+ ANDROID_AUTOMOTIVE_LENS,
+ ANDROID_EXTENSION,
+ ANDROID_JPEGR,
+ VENDOR_SECTION = 0x8000,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl
index 0bcd846..85eee08 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataSectionStart.aidl
@@ -38,39 +38,39 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum CameraMetadataSectionStart {
- ANDROID_COLOR_CORRECTION_START = 0,
- ANDROID_CONTROL_START = 65536,
- ANDROID_DEMOSAIC_START = 131072,
- ANDROID_EDGE_START = 196608,
- ANDROID_FLASH_START = 262144,
- ANDROID_FLASH_INFO_START = 327680,
- ANDROID_HOT_PIXEL_START = 393216,
- ANDROID_JPEG_START = 458752,
- ANDROID_LENS_START = 524288,
- ANDROID_LENS_INFO_START = 589824,
- ANDROID_NOISE_REDUCTION_START = 655360,
- ANDROID_QUIRKS_START = 720896,
- ANDROID_REQUEST_START = 786432,
- ANDROID_SCALER_START = 851968,
- ANDROID_SENSOR_START = 917504,
- ANDROID_SENSOR_INFO_START = 983040,
- ANDROID_SHADING_START = 1048576,
- ANDROID_STATISTICS_START = 1114112,
- ANDROID_STATISTICS_INFO_START = 1179648,
- ANDROID_TONEMAP_START = 1245184,
- ANDROID_LED_START = 1310720,
- ANDROID_INFO_START = 1376256,
- ANDROID_BLACK_LEVEL_START = 1441792,
- ANDROID_SYNC_START = 1507328,
- ANDROID_REPROCESS_START = 1572864,
- ANDROID_DEPTH_START = 1638400,
- ANDROID_LOGICAL_MULTI_CAMERA_START = 1703936,
- ANDROID_DISTORTION_CORRECTION_START = 1769472,
- ANDROID_HEIC_START = 1835008,
- ANDROID_HEIC_INFO_START = 1900544,
- ANDROID_AUTOMOTIVE_START = 1966080,
- ANDROID_AUTOMOTIVE_LENS_START = 2031616,
- ANDROID_EXTENSION_START = 2097152,
- ANDROID_JPEGR_START = 2162688,
- VENDOR_SECTION_START = -2147483648,
+ ANDROID_COLOR_CORRECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_COLOR_CORRECTION << 16) /* 0 */,
+ ANDROID_CONTROL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_CONTROL << 16) /* 65536 */,
+ ANDROID_DEMOSAIC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DEMOSAIC << 16) /* 131072 */,
+ ANDROID_EDGE_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_EDGE << 16) /* 196608 */,
+ ANDROID_FLASH_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_FLASH << 16) /* 262144 */,
+ ANDROID_FLASH_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_FLASH_INFO << 16) /* 327680 */,
+ ANDROID_HOT_PIXEL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HOT_PIXEL << 16) /* 393216 */,
+ ANDROID_JPEG_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_JPEG << 16) /* 458752 */,
+ ANDROID_LENS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LENS << 16) /* 524288 */,
+ ANDROID_LENS_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LENS_INFO << 16) /* 589824 */,
+ ANDROID_NOISE_REDUCTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_NOISE_REDUCTION << 16) /* 655360 */,
+ ANDROID_QUIRKS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_QUIRKS << 16) /* 720896 */,
+ ANDROID_REQUEST_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_REQUEST << 16) /* 786432 */,
+ ANDROID_SCALER_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SCALER << 16) /* 851968 */,
+ ANDROID_SENSOR_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SENSOR << 16) /* 917504 */,
+ ANDROID_SENSOR_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SENSOR_INFO << 16) /* 983040 */,
+ ANDROID_SHADING_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SHADING << 16) /* 1048576 */,
+ ANDROID_STATISTICS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_STATISTICS << 16) /* 1114112 */,
+ ANDROID_STATISTICS_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_STATISTICS_INFO << 16) /* 1179648 */,
+ ANDROID_TONEMAP_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_TONEMAP << 16) /* 1245184 */,
+ ANDROID_LED_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LED << 16) /* 1310720 */,
+ ANDROID_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_INFO << 16) /* 1376256 */,
+ ANDROID_BLACK_LEVEL_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_BLACK_LEVEL << 16) /* 1441792 */,
+ ANDROID_SYNC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_SYNC << 16) /* 1507328 */,
+ ANDROID_REPROCESS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_REPROCESS << 16) /* 1572864 */,
+ ANDROID_DEPTH_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DEPTH << 16) /* 1638400 */,
+ ANDROID_LOGICAL_MULTI_CAMERA_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_LOGICAL_MULTI_CAMERA << 16) /* 1703936 */,
+ ANDROID_DISTORTION_CORRECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_DISTORTION_CORRECTION << 16) /* 1769472 */,
+ ANDROID_HEIC_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HEIC << 16) /* 1835008 */,
+ ANDROID_HEIC_INFO_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_HEIC_INFO << 16) /* 1900544 */,
+ ANDROID_AUTOMOTIVE_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_AUTOMOTIVE << 16) /* 1966080 */,
+ ANDROID_AUTOMOTIVE_LENS_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_AUTOMOTIVE_LENS << 16) /* 2031616 */,
+ ANDROID_EXTENSION_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_EXTENSION << 16) /* 2097152 */,
+ ANDROID_JPEGR_START = (android.hardware.camera.metadata.CameraMetadataSection.ANDROID_JPEGR << 16) /* 2162688 */,
+ VENDOR_SECTION_START = (android.hardware.camera.metadata.CameraMetadataSection.VENDOR_SECTION << 16) /* -2147483648 */,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl
index b83eb2b..71d4e41 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/CameraMetadataTag.aidl
@@ -38,308 +38,308 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum CameraMetadataTag {
- ANDROID_COLOR_CORRECTION_MODE = 0,
- ANDROID_COLOR_CORRECTION_TRANSFORM = 1,
- ANDROID_COLOR_CORRECTION_GAINS = 2,
- ANDROID_COLOR_CORRECTION_ABERRATION_MODE = 3,
- ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES = 4,
- ANDROID_CONTROL_AE_ANTIBANDING_MODE = 65536,
- ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION = 65537,
- ANDROID_CONTROL_AE_LOCK = 65538,
- ANDROID_CONTROL_AE_MODE = 65539,
- ANDROID_CONTROL_AE_REGIONS = 65540,
- ANDROID_CONTROL_AE_TARGET_FPS_RANGE = 65541,
- ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER = 65542,
- ANDROID_CONTROL_AF_MODE = 65543,
- ANDROID_CONTROL_AF_REGIONS = 65544,
- ANDROID_CONTROL_AF_TRIGGER = 65545,
- ANDROID_CONTROL_AWB_LOCK = 65546,
- ANDROID_CONTROL_AWB_MODE = 65547,
- ANDROID_CONTROL_AWB_REGIONS = 65548,
- ANDROID_CONTROL_CAPTURE_INTENT = 65549,
- ANDROID_CONTROL_EFFECT_MODE = 65550,
- ANDROID_CONTROL_MODE = 65551,
- ANDROID_CONTROL_SCENE_MODE = 65552,
- ANDROID_CONTROL_VIDEO_STABILIZATION_MODE = 65553,
- ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES = 65554,
- ANDROID_CONTROL_AE_AVAILABLE_MODES = 65555,
- ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES = 65556,
- ANDROID_CONTROL_AE_COMPENSATION_RANGE = 65557,
- ANDROID_CONTROL_AE_COMPENSATION_STEP = 65558,
- ANDROID_CONTROL_AF_AVAILABLE_MODES = 65559,
- ANDROID_CONTROL_AVAILABLE_EFFECTS = 65560,
- ANDROID_CONTROL_AVAILABLE_SCENE_MODES = 65561,
- ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES = 65562,
- ANDROID_CONTROL_AWB_AVAILABLE_MODES = 65563,
- ANDROID_CONTROL_MAX_REGIONS = 65564,
- ANDROID_CONTROL_SCENE_MODE_OVERRIDES = 65565,
- ANDROID_CONTROL_AE_PRECAPTURE_ID = 65566,
- ANDROID_CONTROL_AE_STATE = 65567,
- ANDROID_CONTROL_AF_STATE = 65568,
- ANDROID_CONTROL_AF_TRIGGER_ID = 65569,
- ANDROID_CONTROL_AWB_STATE = 65570,
- ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS = 65571,
- ANDROID_CONTROL_AE_LOCK_AVAILABLE = 65572,
- ANDROID_CONTROL_AWB_LOCK_AVAILABLE = 65573,
- ANDROID_CONTROL_AVAILABLE_MODES = 65574,
- ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE = 65575,
- ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST = 65576,
- ANDROID_CONTROL_ENABLE_ZSL = 65577,
- ANDROID_CONTROL_AF_SCENE_CHANGE = 65578,
- ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES = 65579,
- ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES = 65580,
- ANDROID_CONTROL_EXTENDED_SCENE_MODE = 65581,
- ANDROID_CONTROL_ZOOM_RATIO_RANGE = 65582,
- ANDROID_CONTROL_ZOOM_RATIO = 65583,
- ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION = 65584,
+ ANDROID_COLOR_CORRECTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_COLOR_CORRECTION_START /* 0 */,
+ ANDROID_COLOR_CORRECTION_TRANSFORM,
+ ANDROID_COLOR_CORRECTION_GAINS,
+ ANDROID_COLOR_CORRECTION_ABERRATION_MODE,
+ ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES,
+ ANDROID_CONTROL_AE_ANTIBANDING_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_CONTROL_START /* 65536 */,
+ ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,
+ ANDROID_CONTROL_AE_LOCK,
+ ANDROID_CONTROL_AE_MODE,
+ ANDROID_CONTROL_AE_REGIONS,
+ ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
+ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
+ ANDROID_CONTROL_AF_MODE,
+ ANDROID_CONTROL_AF_REGIONS,
+ ANDROID_CONTROL_AF_TRIGGER,
+ ANDROID_CONTROL_AWB_LOCK,
+ ANDROID_CONTROL_AWB_MODE,
+ ANDROID_CONTROL_AWB_REGIONS,
+ ANDROID_CONTROL_CAPTURE_INTENT,
+ ANDROID_CONTROL_EFFECT_MODE,
+ ANDROID_CONTROL_MODE,
+ ANDROID_CONTROL_SCENE_MODE,
+ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE,
+ ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
+ ANDROID_CONTROL_AE_AVAILABLE_MODES,
+ ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
+ ANDROID_CONTROL_AE_COMPENSATION_RANGE,
+ ANDROID_CONTROL_AE_COMPENSATION_STEP,
+ ANDROID_CONTROL_AF_AVAILABLE_MODES,
+ ANDROID_CONTROL_AVAILABLE_EFFECTS,
+ ANDROID_CONTROL_AVAILABLE_SCENE_MODES,
+ ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,
+ ANDROID_CONTROL_AWB_AVAILABLE_MODES,
+ ANDROID_CONTROL_MAX_REGIONS,
+ ANDROID_CONTROL_SCENE_MODE_OVERRIDES,
+ ANDROID_CONTROL_AE_PRECAPTURE_ID,
+ ANDROID_CONTROL_AE_STATE,
+ ANDROID_CONTROL_AF_STATE,
+ ANDROID_CONTROL_AF_TRIGGER_ID,
+ ANDROID_CONTROL_AWB_STATE,
+ ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS,
+ ANDROID_CONTROL_AE_LOCK_AVAILABLE,
+ ANDROID_CONTROL_AWB_LOCK_AVAILABLE,
+ ANDROID_CONTROL_AVAILABLE_MODES,
+ ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE,
+ ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST,
+ ANDROID_CONTROL_ENABLE_ZSL,
+ ANDROID_CONTROL_AF_SCENE_CHANGE,
+ ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_MAX_SIZES,
+ ANDROID_CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_ZOOM_RATIO_RANGES,
+ ANDROID_CONTROL_EXTENDED_SCENE_MODE,
+ ANDROID_CONTROL_ZOOM_RATIO_RANGE,
+ ANDROID_CONTROL_ZOOM_RATIO,
+ ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION,
ANDROID_CONTROL_SETTINGS_OVERRIDE = 65588,
- ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES = 65589,
- ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER = 65590,
- ANDROID_CONTROL_AUTOFRAMING = 65591,
- ANDROID_CONTROL_AUTOFRAMING_AVAILABLE = 65592,
- ANDROID_CONTROL_AUTOFRAMING_STATE = 65593,
- ANDROID_DEMOSAIC_MODE = 131072,
- ANDROID_EDGE_MODE = 196608,
- ANDROID_EDGE_STRENGTH = 196609,
- ANDROID_EDGE_AVAILABLE_EDGE_MODES = 196610,
- ANDROID_FLASH_FIRING_POWER = 262144,
- ANDROID_FLASH_FIRING_TIME = 262145,
- ANDROID_FLASH_MODE = 262146,
- ANDROID_FLASH_COLOR_TEMPERATURE = 262147,
- ANDROID_FLASH_MAX_ENERGY = 262148,
- ANDROID_FLASH_STATE = 262149,
- ANDROID_FLASH_INFO_AVAILABLE = 327680,
- ANDROID_FLASH_INFO_CHARGE_DURATION = 327681,
- ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL = 327682,
- ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL = 327683,
- ANDROID_HOT_PIXEL_MODE = 393216,
- ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES = 393217,
- ANDROID_JPEG_GPS_COORDINATES = 458752,
- ANDROID_JPEG_GPS_PROCESSING_METHOD = 458753,
- ANDROID_JPEG_GPS_TIMESTAMP = 458754,
- ANDROID_JPEG_ORIENTATION = 458755,
- ANDROID_JPEG_QUALITY = 458756,
- ANDROID_JPEG_THUMBNAIL_QUALITY = 458757,
- ANDROID_JPEG_THUMBNAIL_SIZE = 458758,
- ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES = 458759,
- ANDROID_JPEG_MAX_SIZE = 458760,
- ANDROID_JPEG_SIZE = 458761,
- ANDROID_LENS_APERTURE = 524288,
- ANDROID_LENS_FILTER_DENSITY = 524289,
- ANDROID_LENS_FOCAL_LENGTH = 524290,
- ANDROID_LENS_FOCUS_DISTANCE = 524291,
- ANDROID_LENS_OPTICAL_STABILIZATION_MODE = 524292,
- ANDROID_LENS_FACING = 524293,
- ANDROID_LENS_POSE_ROTATION = 524294,
- ANDROID_LENS_POSE_TRANSLATION = 524295,
- ANDROID_LENS_FOCUS_RANGE = 524296,
- ANDROID_LENS_STATE = 524297,
- ANDROID_LENS_INTRINSIC_CALIBRATION = 524298,
- ANDROID_LENS_RADIAL_DISTORTION = 524299,
- ANDROID_LENS_POSE_REFERENCE = 524300,
- ANDROID_LENS_DISTORTION = 524301,
- ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION = 524302,
- ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION = 524303,
- ANDROID_LENS_INFO_AVAILABLE_APERTURES = 589824,
- ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES = 589825,
- ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS = 589826,
- ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION = 589827,
- ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE = 589828,
- ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE = 589829,
- ANDROID_LENS_INFO_SHADING_MAP_SIZE = 589830,
- ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION = 589831,
- ANDROID_NOISE_REDUCTION_MODE = 655360,
- ANDROID_NOISE_REDUCTION_STRENGTH = 655361,
- ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES = 655362,
- ANDROID_QUIRKS_METERING_CROP_REGION = 720896,
- ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO = 720897,
- ANDROID_QUIRKS_USE_ZSL_FORMAT = 720898,
- ANDROID_QUIRKS_USE_PARTIAL_RESULT = 720899,
- ANDROID_QUIRKS_PARTIAL_RESULT = 720900,
- ANDROID_REQUEST_FRAME_COUNT = 786432,
- ANDROID_REQUEST_ID = 786433,
- ANDROID_REQUEST_INPUT_STREAMS = 786434,
- ANDROID_REQUEST_METADATA_MODE = 786435,
- ANDROID_REQUEST_OUTPUT_STREAMS = 786436,
- ANDROID_REQUEST_TYPE = 786437,
- ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS = 786438,
- ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS = 786439,
- ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS = 786440,
- ANDROID_REQUEST_PIPELINE_DEPTH = 786441,
- ANDROID_REQUEST_PIPELINE_MAX_DEPTH = 786442,
- ANDROID_REQUEST_PARTIAL_RESULT_COUNT = 786443,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES = 786444,
- ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS = 786445,
- ANDROID_REQUEST_AVAILABLE_RESULT_KEYS = 786446,
- ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS = 786447,
- ANDROID_REQUEST_AVAILABLE_SESSION_KEYS = 786448,
- ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS = 786449,
- ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION = 786450,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP = 786451,
- ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE = 786452,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP = 786453,
- ANDROID_SCALER_CROP_REGION = 851968,
- ANDROID_SCALER_AVAILABLE_FORMATS = 851969,
- ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS = 851970,
- ANDROID_SCALER_AVAILABLE_JPEG_SIZES = 851971,
- ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM = 851972,
- ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS = 851973,
- ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES = 851974,
- ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS = 851975,
- ANDROID_SCALER_AVAILABLE_RAW_SIZES = 851976,
- ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP = 851977,
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS = 851978,
- ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS = 851979,
- ANDROID_SCALER_AVAILABLE_STALL_DURATIONS = 851980,
- ANDROID_SCALER_CROPPING_TYPE = 851981,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS = 851982,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP = 851983,
- ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES = 851984,
- ANDROID_SCALER_ROTATE_AND_CROP = 851985,
- ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE = 851986,
- ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS = 851987,
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION = 851988,
- ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION = 851989,
- ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION = 851990,
- ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION = 851991,
- ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED = 851992,
+ ANDROID_CONTROL_AVAILABLE_SETTINGS_OVERRIDES,
+ ANDROID_CONTROL_SETTINGS_OVERRIDING_FRAME_NUMBER,
+ ANDROID_CONTROL_AUTOFRAMING,
+ ANDROID_CONTROL_AUTOFRAMING_AVAILABLE,
+ ANDROID_CONTROL_AUTOFRAMING_STATE,
+ ANDROID_DEMOSAIC_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DEMOSAIC_START /* 131072 */,
+ ANDROID_EDGE_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_EDGE_START /* 196608 */,
+ ANDROID_EDGE_STRENGTH,
+ ANDROID_EDGE_AVAILABLE_EDGE_MODES,
+ ANDROID_FLASH_FIRING_POWER = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_FLASH_START /* 262144 */,
+ ANDROID_FLASH_FIRING_TIME,
+ ANDROID_FLASH_MODE,
+ ANDROID_FLASH_COLOR_TEMPERATURE,
+ ANDROID_FLASH_MAX_ENERGY,
+ ANDROID_FLASH_STATE,
+ ANDROID_FLASH_INFO_AVAILABLE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_FLASH_INFO_START /* 327680 */,
+ ANDROID_FLASH_INFO_CHARGE_DURATION,
+ ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL,
+ ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL,
+ ANDROID_HOT_PIXEL_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HOT_PIXEL_START /* 393216 */,
+ ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES,
+ ANDROID_JPEG_GPS_COORDINATES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_JPEG_START /* 458752 */,
+ ANDROID_JPEG_GPS_PROCESSING_METHOD,
+ ANDROID_JPEG_GPS_TIMESTAMP,
+ ANDROID_JPEG_ORIENTATION,
+ ANDROID_JPEG_QUALITY,
+ ANDROID_JPEG_THUMBNAIL_QUALITY,
+ ANDROID_JPEG_THUMBNAIL_SIZE,
+ ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,
+ ANDROID_JPEG_MAX_SIZE,
+ ANDROID_JPEG_SIZE,
+ ANDROID_LENS_APERTURE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LENS_START /* 524288 */,
+ ANDROID_LENS_FILTER_DENSITY,
+ ANDROID_LENS_FOCAL_LENGTH,
+ ANDROID_LENS_FOCUS_DISTANCE,
+ ANDROID_LENS_OPTICAL_STABILIZATION_MODE,
+ ANDROID_LENS_FACING,
+ ANDROID_LENS_POSE_ROTATION,
+ ANDROID_LENS_POSE_TRANSLATION,
+ ANDROID_LENS_FOCUS_RANGE,
+ ANDROID_LENS_STATE,
+ ANDROID_LENS_INTRINSIC_CALIBRATION,
+ ANDROID_LENS_RADIAL_DISTORTION,
+ ANDROID_LENS_POSE_REFERENCE,
+ ANDROID_LENS_DISTORTION,
+ ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION,
+ ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION,
+ ANDROID_LENS_INFO_AVAILABLE_APERTURES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LENS_INFO_START /* 589824 */,
+ ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES,
+ ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS,
+ ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,
+ ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,
+ ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,
+ ANDROID_LENS_INFO_SHADING_MAP_SIZE,
+ ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION,
+ ANDROID_NOISE_REDUCTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_NOISE_REDUCTION_START /* 655360 */,
+ ANDROID_NOISE_REDUCTION_STRENGTH,
+ ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,
+ ANDROID_QUIRKS_METERING_CROP_REGION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_QUIRKS_START /* 720896 */,
+ ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO,
+ ANDROID_QUIRKS_USE_ZSL_FORMAT,
+ ANDROID_QUIRKS_USE_PARTIAL_RESULT,
+ ANDROID_QUIRKS_PARTIAL_RESULT,
+ ANDROID_REQUEST_FRAME_COUNT = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_REQUEST_START /* 786432 */,
+ ANDROID_REQUEST_ID,
+ ANDROID_REQUEST_INPUT_STREAMS,
+ ANDROID_REQUEST_METADATA_MODE,
+ ANDROID_REQUEST_OUTPUT_STREAMS,
+ ANDROID_REQUEST_TYPE,
+ ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,
+ ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS,
+ ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,
+ ANDROID_REQUEST_PIPELINE_DEPTH,
+ ANDROID_REQUEST_PIPELINE_MAX_DEPTH,
+ ANDROID_REQUEST_PARTIAL_RESULT_COUNT,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
+ ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS,
+ ANDROID_REQUEST_AVAILABLE_RESULT_KEYS,
+ ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,
+ ANDROID_REQUEST_AVAILABLE_SESSION_KEYS,
+ ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS,
+ ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP,
+ ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE,
+ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP,
+ ANDROID_SCALER_CROP_REGION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SCALER_START /* 851968 */,
+ ANDROID_SCALER_AVAILABLE_FORMATS,
+ ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS,
+ ANDROID_SCALER_AVAILABLE_JPEG_SIZES,
+ ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,
+ ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS,
+ ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES,
+ ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS,
+ ANDROID_SCALER_AVAILABLE_RAW_SIZES,
+ ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP,
+ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,
+ ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,
+ ANDROID_SCALER_AVAILABLE_STALL_DURATIONS,
+ ANDROID_SCALER_CROPPING_TYPE,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP,
+ ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES,
+ ANDROID_SCALER_ROTATE_AND_CROP,
+ ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE,
+ ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS,
+ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION,
+ ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED,
ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES = 851994,
- ANDROID_SCALER_RAW_CROP_REGION = 851995,
- ANDROID_SENSOR_EXPOSURE_TIME = 917504,
- ANDROID_SENSOR_FRAME_DURATION = 917505,
- ANDROID_SENSOR_SENSITIVITY = 917506,
- ANDROID_SENSOR_REFERENCE_ILLUMINANT1 = 917507,
- ANDROID_SENSOR_REFERENCE_ILLUMINANT2 = 917508,
- ANDROID_SENSOR_CALIBRATION_TRANSFORM1 = 917509,
- ANDROID_SENSOR_CALIBRATION_TRANSFORM2 = 917510,
- ANDROID_SENSOR_COLOR_TRANSFORM1 = 917511,
- ANDROID_SENSOR_COLOR_TRANSFORM2 = 917512,
- ANDROID_SENSOR_FORWARD_MATRIX1 = 917513,
- ANDROID_SENSOR_FORWARD_MATRIX2 = 917514,
- ANDROID_SENSOR_BASE_GAIN_FACTOR = 917515,
- ANDROID_SENSOR_BLACK_LEVEL_PATTERN = 917516,
- ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY = 917517,
- ANDROID_SENSOR_ORIENTATION = 917518,
- ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS = 917519,
- ANDROID_SENSOR_TIMESTAMP = 917520,
- ANDROID_SENSOR_TEMPERATURE = 917521,
- ANDROID_SENSOR_NEUTRAL_COLOR_POINT = 917522,
- ANDROID_SENSOR_NOISE_PROFILE = 917523,
- ANDROID_SENSOR_PROFILE_HUE_SAT_MAP = 917524,
- ANDROID_SENSOR_PROFILE_TONE_CURVE = 917525,
- ANDROID_SENSOR_GREEN_SPLIT = 917526,
- ANDROID_SENSOR_TEST_PATTERN_DATA = 917527,
- ANDROID_SENSOR_TEST_PATTERN_MODE = 917528,
- ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES = 917529,
- ANDROID_SENSOR_ROLLING_SHUTTER_SKEW = 917530,
- ANDROID_SENSOR_OPTICAL_BLACK_REGIONS = 917531,
- ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL = 917532,
- ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL = 917533,
- ANDROID_SENSOR_OPAQUE_RAW_SIZE = 917534,
- ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION = 917535,
- ANDROID_SENSOR_PIXEL_MODE = 917536,
- ANDROID_SENSOR_RAW_BINNING_FACTOR_USED = 917537,
- ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = 983040,
- ANDROID_SENSOR_INFO_SENSITIVITY_RANGE = 983041,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT = 983042,
- ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE = 983043,
- ANDROID_SENSOR_INFO_MAX_FRAME_DURATION = 983044,
- ANDROID_SENSOR_INFO_PHYSICAL_SIZE = 983045,
- ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE = 983046,
- ANDROID_SENSOR_INFO_WHITE_LEVEL = 983047,
- ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE = 983048,
- ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED = 983049,
- ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE = 983050,
- ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION = 983051,
- ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION = 983052,
- ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION = 983053,
- ANDROID_SENSOR_INFO_BINNING_FACTOR = 983054,
- ANDROID_SHADING_MODE = 1048576,
- ANDROID_SHADING_STRENGTH = 1048577,
- ANDROID_SHADING_AVAILABLE_MODES = 1048578,
- ANDROID_STATISTICS_FACE_DETECT_MODE = 1114112,
- ANDROID_STATISTICS_HISTOGRAM_MODE = 1114113,
- ANDROID_STATISTICS_SHARPNESS_MAP_MODE = 1114114,
- ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE = 1114115,
- ANDROID_STATISTICS_FACE_IDS = 1114116,
- ANDROID_STATISTICS_FACE_LANDMARKS = 1114117,
- ANDROID_STATISTICS_FACE_RECTANGLES = 1114118,
- ANDROID_STATISTICS_FACE_SCORES = 1114119,
- ANDROID_STATISTICS_HISTOGRAM = 1114120,
- ANDROID_STATISTICS_SHARPNESS_MAP = 1114121,
- ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP = 1114122,
- ANDROID_STATISTICS_LENS_SHADING_MAP = 1114123,
- ANDROID_STATISTICS_PREDICTED_COLOR_GAINS = 1114124,
- ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM = 1114125,
- ANDROID_STATISTICS_SCENE_FLICKER = 1114126,
- ANDROID_STATISTICS_HOT_PIXEL_MAP = 1114127,
- ANDROID_STATISTICS_LENS_SHADING_MAP_MODE = 1114128,
- ANDROID_STATISTICS_OIS_DATA_MODE = 1114129,
- ANDROID_STATISTICS_OIS_TIMESTAMPS = 1114130,
- ANDROID_STATISTICS_OIS_X_SHIFTS = 1114131,
- ANDROID_STATISTICS_OIS_Y_SHIFTS = 1114132,
- ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES = 1179648,
- ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT = 1179649,
- ANDROID_STATISTICS_INFO_MAX_FACE_COUNT = 1179650,
- ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT = 1179651,
- ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE = 1179652,
- ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE = 1179653,
- ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES = 1179654,
- ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES = 1179655,
- ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES = 1179656,
- ANDROID_TONEMAP_CURVE_BLUE = 1245184,
- ANDROID_TONEMAP_CURVE_GREEN = 1245185,
- ANDROID_TONEMAP_CURVE_RED = 1245186,
- ANDROID_TONEMAP_MODE = 1245187,
- ANDROID_TONEMAP_MAX_CURVE_POINTS = 1245188,
- ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES = 1245189,
- ANDROID_TONEMAP_GAMMA = 1245190,
- ANDROID_TONEMAP_PRESET_CURVE = 1245191,
- ANDROID_LED_TRANSMIT = 1310720,
- ANDROID_LED_AVAILABLE_LEDS = 1310721,
- ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL = 1376256,
- ANDROID_INFO_VERSION = 1376257,
- ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION = 1376258,
- ANDROID_INFO_DEVICE_STATE_ORIENTATIONS = 1376259,
- ANDROID_BLACK_LEVEL_LOCK = 1441792,
- ANDROID_SYNC_FRAME_NUMBER = 1507328,
- ANDROID_SYNC_MAX_LATENCY = 1507329,
- ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR = 1572864,
- ANDROID_REPROCESS_MAX_CAPTURE_STALL = 1572865,
- ANDROID_DEPTH_MAX_DEPTH_SAMPLES = 1638400,
- ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS = 1638401,
- ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS = 1638402,
- ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS = 1638403,
- ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE = 1638404,
- ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS = 1638405,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS = 1638406,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS = 1638407,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS = 1638408,
- ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION = 1638409,
- ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION = 1638410,
- ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION = 1638411,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION = 1638412,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION = 1638413,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION = 1638414,
- ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS = 1703936,
- ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE = 1703937,
- ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID = 1703938,
- ANDROID_DISTORTION_CORRECTION_MODE = 1769472,
- ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES = 1769473,
- ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS = 1835008,
- ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS = 1835009,
- ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS = 1835010,
- ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION = 1835011,
- ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION = 1835012,
- ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION = 1835013,
- ANDROID_HEIC_INFO_SUPPORTED = 1900544,
- ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT = 1900545,
- ANDROID_AUTOMOTIVE_LOCATION = 1966080,
- ANDROID_AUTOMOTIVE_LENS_FACING = 2031616,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS = 2162688,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS = 2162689,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS = 2162690,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION = 2162691,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION = 2162692,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION = 2162693,
+ ANDROID_SCALER_RAW_CROP_REGION,
+ ANDROID_SENSOR_EXPOSURE_TIME = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_START /* 917504 */,
+ ANDROID_SENSOR_FRAME_DURATION,
+ ANDROID_SENSOR_SENSITIVITY,
+ ANDROID_SENSOR_REFERENCE_ILLUMINANT1,
+ ANDROID_SENSOR_REFERENCE_ILLUMINANT2,
+ ANDROID_SENSOR_CALIBRATION_TRANSFORM1,
+ ANDROID_SENSOR_CALIBRATION_TRANSFORM2,
+ ANDROID_SENSOR_COLOR_TRANSFORM1,
+ ANDROID_SENSOR_COLOR_TRANSFORM2,
+ ANDROID_SENSOR_FORWARD_MATRIX1,
+ ANDROID_SENSOR_FORWARD_MATRIX2,
+ ANDROID_SENSOR_BASE_GAIN_FACTOR,
+ ANDROID_SENSOR_BLACK_LEVEL_PATTERN,
+ ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY,
+ ANDROID_SENSOR_ORIENTATION,
+ ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS,
+ ANDROID_SENSOR_TIMESTAMP,
+ ANDROID_SENSOR_TEMPERATURE,
+ ANDROID_SENSOR_NEUTRAL_COLOR_POINT,
+ ANDROID_SENSOR_NOISE_PROFILE,
+ ANDROID_SENSOR_PROFILE_HUE_SAT_MAP,
+ ANDROID_SENSOR_PROFILE_TONE_CURVE,
+ ANDROID_SENSOR_GREEN_SPLIT,
+ ANDROID_SENSOR_TEST_PATTERN_DATA,
+ ANDROID_SENSOR_TEST_PATTERN_MODE,
+ ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES,
+ ANDROID_SENSOR_ROLLING_SHUTTER_SKEW,
+ ANDROID_SENSOR_OPTICAL_BLACK_REGIONS,
+ ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL,
+ ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL,
+ ANDROID_SENSOR_OPAQUE_RAW_SIZE,
+ ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION,
+ ANDROID_SENSOR_PIXEL_MODE,
+ ANDROID_SENSOR_RAW_BINNING_FACTOR_USED,
+ ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SENSOR_INFO_START /* 983040 */,
+ ANDROID_SENSOR_INFO_SENSITIVITY_RANGE,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,
+ ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,
+ ANDROID_SENSOR_INFO_MAX_FRAME_DURATION,
+ ANDROID_SENSOR_INFO_PHYSICAL_SIZE,
+ ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,
+ ANDROID_SENSOR_INFO_WHITE_LEVEL,
+ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE,
+ ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED,
+ ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE,
+ ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION,
+ ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION,
+ ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION,
+ ANDROID_SENSOR_INFO_BINNING_FACTOR,
+ ANDROID_SHADING_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SHADING_START /* 1048576 */,
+ ANDROID_SHADING_STRENGTH,
+ ANDROID_SHADING_AVAILABLE_MODES,
+ ANDROID_STATISTICS_FACE_DETECT_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_STATISTICS_START /* 1114112 */,
+ ANDROID_STATISTICS_HISTOGRAM_MODE,
+ ANDROID_STATISTICS_SHARPNESS_MAP_MODE,
+ ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE,
+ ANDROID_STATISTICS_FACE_IDS,
+ ANDROID_STATISTICS_FACE_LANDMARKS,
+ ANDROID_STATISTICS_FACE_RECTANGLES,
+ ANDROID_STATISTICS_FACE_SCORES,
+ ANDROID_STATISTICS_HISTOGRAM,
+ ANDROID_STATISTICS_SHARPNESS_MAP,
+ ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP,
+ ANDROID_STATISTICS_LENS_SHADING_MAP,
+ ANDROID_STATISTICS_PREDICTED_COLOR_GAINS,
+ ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM,
+ ANDROID_STATISTICS_SCENE_FLICKER,
+ ANDROID_STATISTICS_HOT_PIXEL_MAP,
+ ANDROID_STATISTICS_LENS_SHADING_MAP_MODE,
+ ANDROID_STATISTICS_OIS_DATA_MODE,
+ ANDROID_STATISTICS_OIS_TIMESTAMPS,
+ ANDROID_STATISTICS_OIS_X_SHIFTS,
+ ANDROID_STATISTICS_OIS_Y_SHIFTS,
+ ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_STATISTICS_INFO_START /* 1179648 */,
+ ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT,
+ ANDROID_STATISTICS_INFO_MAX_FACE_COUNT,
+ ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT,
+ ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE,
+ ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE,
+ ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES,
+ ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES,
+ ANDROID_STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES,
+ ANDROID_TONEMAP_CURVE_BLUE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_TONEMAP_START /* 1245184 */,
+ ANDROID_TONEMAP_CURVE_GREEN,
+ ANDROID_TONEMAP_CURVE_RED,
+ ANDROID_TONEMAP_MODE,
+ ANDROID_TONEMAP_MAX_CURVE_POINTS,
+ ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES,
+ ANDROID_TONEMAP_GAMMA,
+ ANDROID_TONEMAP_PRESET_CURVE,
+ ANDROID_LED_TRANSMIT = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LED_START /* 1310720 */,
+ ANDROID_LED_AVAILABLE_LEDS,
+ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_INFO_START /* 1376256 */,
+ ANDROID_INFO_VERSION,
+ ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION,
+ ANDROID_INFO_DEVICE_STATE_ORIENTATIONS,
+ ANDROID_BLACK_LEVEL_LOCK = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_BLACK_LEVEL_START /* 1441792 */,
+ ANDROID_SYNC_FRAME_NUMBER = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_SYNC_START /* 1507328 */,
+ ANDROID_SYNC_MAX_LATENCY,
+ ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_REPROCESS_START /* 1572864 */,
+ ANDROID_REPROCESS_MAX_CAPTURE_STALL,
+ ANDROID_DEPTH_MAX_DEPTH_SAMPLES = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DEPTH_START /* 1638400 */,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS,
+ ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE,
+ ANDROID_DEPTH_AVAILABLE_RECOMMENDED_DEPTH_STREAM_CONFIGURATIONS,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_LOGICAL_MULTI_CAMERA_START /* 1703936 */,
+ ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE,
+ ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID,
+ ANDROID_DISTORTION_CORRECTION_MODE = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_DISTORTION_CORRECTION_START /* 1769472 */,
+ ANDROID_DISTORTION_CORRECTION_AVAILABLE_MODES,
+ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HEIC_START /* 1835008 */,
+ ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS,
+ ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS,
+ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_HEIC_INFO_SUPPORTED = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_HEIC_INFO_START /* 1900544 */,
+ ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT,
+ ANDROID_AUTOMOTIVE_LOCATION = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_AUTOMOTIVE_START /* 1966080 */,
+ ANDROID_AUTOMOTIVE_LENS_FACING = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_AUTOMOTIVE_LENS_START /* 2031616 */,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS = android.hardware.camera.metadata.CameraMetadataSectionStart.ANDROID_JPEGR_START /* 2162688 */,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STALL_DURATIONS_MAXIMUM_RESOLUTION,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl
index d04ffe3..0b976f3 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionAberrationMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ColorCorrectionAberrationMode {
- ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF = 0,
- ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST = 1,
- ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY = 2,
+ ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF,
+ ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST,
+ ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionMode.aidl
index 219c802..2381605 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ColorCorrectionMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ColorCorrectionMode {
- ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX = 0,
- ANDROID_COLOR_CORRECTION_MODE_FAST = 1,
- ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY = 2,
+ ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX,
+ ANDROID_COLOR_CORRECTION_MODE_FAST,
+ ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl
index 84fd718..0d5aad9 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeAntibandingMode.aidl
@@ -38,8 +38,8 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAeAntibandingMode {
- ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF = 0,
- ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ = 1,
- ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ = 2,
- ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO = 3,
+ ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF,
+ ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ,
+ ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ,
+ ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLock.aidl
index f825f11..766b835 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLock.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLock.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAeLock {
- ANDROID_CONTROL_AE_LOCK_OFF = 0,
- ANDROID_CONTROL_AE_LOCK_ON = 1,
+ ANDROID_CONTROL_AE_LOCK_OFF,
+ ANDROID_CONTROL_AE_LOCK_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLockAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLockAvailable.aidl
index df7924e..a22c93e 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLockAvailable.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeLockAvailable.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAeLockAvailable {
- ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE = 0,
- ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE = 1,
+ ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE,
+ ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeMode.aidl
index 75a3486..5e1b871 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeMode.aidl
@@ -38,10 +38,10 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAeMode {
- ANDROID_CONTROL_AE_MODE_OFF = 0,
- ANDROID_CONTROL_AE_MODE_ON = 1,
- ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH = 2,
- ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH = 3,
- ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE = 4,
- ANDROID_CONTROL_AE_MODE_ON_EXTERNAL_FLASH = 5,
+ ANDROID_CONTROL_AE_MODE_OFF,
+ ANDROID_CONTROL_AE_MODE_ON,
+ ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH,
+ ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH,
+ ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE,
+ ANDROID_CONTROL_AE_MODE_ON_EXTERNAL_FLASH,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl
index 4678e01..20382c0 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAePrecaptureTrigger.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAePrecaptureTrigger {
- ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE = 0,
- ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START = 1,
- ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL = 2,
+ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE,
+ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START,
+ ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeState.aidl
index 3be64ea..e52eafe 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeState.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAeState.aidl
@@ -38,10 +38,10 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAeState {
- ANDROID_CONTROL_AE_STATE_INACTIVE = 0,
- ANDROID_CONTROL_AE_STATE_SEARCHING = 1,
- ANDROID_CONTROL_AE_STATE_CONVERGED = 2,
- ANDROID_CONTROL_AE_STATE_LOCKED = 3,
- ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED = 4,
- ANDROID_CONTROL_AE_STATE_PRECAPTURE = 5,
+ ANDROID_CONTROL_AE_STATE_INACTIVE,
+ ANDROID_CONTROL_AE_STATE_SEARCHING,
+ ANDROID_CONTROL_AE_STATE_CONVERGED,
+ ANDROID_CONTROL_AE_STATE_LOCKED,
+ ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED,
+ ANDROID_CONTROL_AE_STATE_PRECAPTURE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfMode.aidl
index 155d3c9..6cd46c6 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfMode.aidl
@@ -38,10 +38,10 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAfMode {
- ANDROID_CONTROL_AF_MODE_OFF = 0,
- ANDROID_CONTROL_AF_MODE_AUTO = 1,
- ANDROID_CONTROL_AF_MODE_MACRO = 2,
- ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO = 3,
- ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE = 4,
- ANDROID_CONTROL_AF_MODE_EDOF = 5,
+ ANDROID_CONTROL_AF_MODE_OFF,
+ ANDROID_CONTROL_AF_MODE_AUTO,
+ ANDROID_CONTROL_AF_MODE_MACRO,
+ ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO,
+ ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE,
+ ANDROID_CONTROL_AF_MODE_EDOF,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfSceneChange.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfSceneChange.aidl
index 4b31c84..ba853a1 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfSceneChange.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfSceneChange.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAfSceneChange {
- ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED = 0,
- ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED = 1,
+ ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED,
+ ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfState.aidl
index 4aac8c8..25b6a1c 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfState.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfState.aidl
@@ -38,11 +38,11 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAfState {
- ANDROID_CONTROL_AF_STATE_INACTIVE = 0,
- ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN = 1,
- ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED = 2,
- ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN = 3,
- ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED = 4,
- ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED = 5,
- ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED = 6,
+ ANDROID_CONTROL_AF_STATE_INACTIVE,
+ ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN,
+ ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED,
+ ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN,
+ ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED,
+ ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED,
+ ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfTrigger.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfTrigger.aidl
index 3fbf94b..9d61b2d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfTrigger.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAfTrigger.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAfTrigger {
- ANDROID_CONTROL_AF_TRIGGER_IDLE = 0,
- ANDROID_CONTROL_AF_TRIGGER_START = 1,
- ANDROID_CONTROL_AF_TRIGGER_CANCEL = 2,
+ ANDROID_CONTROL_AF_TRIGGER_IDLE,
+ ANDROID_CONTROL_AF_TRIGGER_START,
+ ANDROID_CONTROL_AF_TRIGGER_CANCEL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframing.aidl
index eeb7bcd..2daf00b 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframing.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframing.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAutoframing {
- ANDROID_CONTROL_AUTOFRAMING_OFF = 0,
- ANDROID_CONTROL_AUTOFRAMING_ON = 1,
- ANDROID_CONTROL_AUTOFRAMING_AUTO = 2,
+ ANDROID_CONTROL_AUTOFRAMING_OFF,
+ ANDROID_CONTROL_AUTOFRAMING_ON,
+ ANDROID_CONTROL_AUTOFRAMING_AUTO,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl
index b075c32..ab91bb4 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingAvailable.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAutoframingAvailable {
- ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE = 0,
- ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_TRUE = 1,
+ ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_FALSE,
+ ANDROID_CONTROL_AUTOFRAMING_AVAILABLE_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingState.aidl
index 60df0d4..db0d288 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingState.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAutoframingState.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAutoframingState {
- ANDROID_CONTROL_AUTOFRAMING_STATE_INACTIVE = 0,
- ANDROID_CONTROL_AUTOFRAMING_STATE_FRAMING = 1,
- ANDROID_CONTROL_AUTOFRAMING_STATE_CONVERGED = 2,
+ ANDROID_CONTROL_AUTOFRAMING_STATE_INACTIVE,
+ ANDROID_CONTROL_AUTOFRAMING_STATE_FRAMING,
+ ANDROID_CONTROL_AUTOFRAMING_STATE_CONVERGED,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLock.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLock.aidl
index 0e297a5..949b5e8 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLock.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLock.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAwbLock {
- ANDROID_CONTROL_AWB_LOCK_OFF = 0,
- ANDROID_CONTROL_AWB_LOCK_ON = 1,
+ ANDROID_CONTROL_AWB_LOCK_OFF,
+ ANDROID_CONTROL_AWB_LOCK_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl
index d471d19..80c4c31 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbLockAvailable.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAwbLockAvailable {
- ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE = 0,
- ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE = 1,
+ ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE,
+ ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbMode.aidl
index a3463f8..6ed9ece 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbMode.aidl
@@ -38,13 +38,13 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAwbMode {
- ANDROID_CONTROL_AWB_MODE_OFF = 0,
- ANDROID_CONTROL_AWB_MODE_AUTO = 1,
- ANDROID_CONTROL_AWB_MODE_INCANDESCENT = 2,
- ANDROID_CONTROL_AWB_MODE_FLUORESCENT = 3,
- ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT = 4,
- ANDROID_CONTROL_AWB_MODE_DAYLIGHT = 5,
- ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT = 6,
- ANDROID_CONTROL_AWB_MODE_TWILIGHT = 7,
- ANDROID_CONTROL_AWB_MODE_SHADE = 8,
+ ANDROID_CONTROL_AWB_MODE_OFF,
+ ANDROID_CONTROL_AWB_MODE_AUTO,
+ ANDROID_CONTROL_AWB_MODE_INCANDESCENT,
+ ANDROID_CONTROL_AWB_MODE_FLUORESCENT,
+ ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT,
+ ANDROID_CONTROL_AWB_MODE_DAYLIGHT,
+ ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT,
+ ANDROID_CONTROL_AWB_MODE_TWILIGHT,
+ ANDROID_CONTROL_AWB_MODE_SHADE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbState.aidl
index f1b0e40..c5b02d5 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbState.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlAwbState.aidl
@@ -38,8 +38,8 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlAwbState {
- ANDROID_CONTROL_AWB_STATE_INACTIVE = 0,
- ANDROID_CONTROL_AWB_STATE_SEARCHING = 1,
- ANDROID_CONTROL_AWB_STATE_CONVERGED = 2,
- ANDROID_CONTROL_AWB_STATE_LOCKED = 3,
+ ANDROID_CONTROL_AWB_STATE_INACTIVE,
+ ANDROID_CONTROL_AWB_STATE_SEARCHING,
+ ANDROID_CONTROL_AWB_STATE_CONVERGED,
+ ANDROID_CONTROL_AWB_STATE_LOCKED,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlCaptureIntent.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlCaptureIntent.aidl
index 283bb1b..fa1c0a9 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlCaptureIntent.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlCaptureIntent.aidl
@@ -38,12 +38,12 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlCaptureIntent {
- ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM = 0,
- ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW = 1,
- ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE = 2,
- ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD = 3,
- ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT = 4,
- ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG = 5,
- ANDROID_CONTROL_CAPTURE_INTENT_MANUAL = 6,
- ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING = 7,
+ ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM,
+ ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW,
+ ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE,
+ ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD,
+ ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT,
+ ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG,
+ ANDROID_CONTROL_CAPTURE_INTENT_MANUAL,
+ ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEffectMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEffectMode.aidl
index 911223d..471deed 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEffectMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEffectMode.aidl
@@ -38,13 +38,13 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlEffectMode {
- ANDROID_CONTROL_EFFECT_MODE_OFF = 0,
- ANDROID_CONTROL_EFFECT_MODE_MONO = 1,
- ANDROID_CONTROL_EFFECT_MODE_NEGATIVE = 2,
- ANDROID_CONTROL_EFFECT_MODE_SOLARIZE = 3,
- ANDROID_CONTROL_EFFECT_MODE_SEPIA = 4,
- ANDROID_CONTROL_EFFECT_MODE_POSTERIZE = 5,
- ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD = 6,
- ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD = 7,
- ANDROID_CONTROL_EFFECT_MODE_AQUA = 8,
+ ANDROID_CONTROL_EFFECT_MODE_OFF,
+ ANDROID_CONTROL_EFFECT_MODE_MONO,
+ ANDROID_CONTROL_EFFECT_MODE_NEGATIVE,
+ ANDROID_CONTROL_EFFECT_MODE_SOLARIZE,
+ ANDROID_CONTROL_EFFECT_MODE_SEPIA,
+ ANDROID_CONTROL_EFFECT_MODE_POSTERIZE,
+ ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD,
+ ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD,
+ ANDROID_CONTROL_EFFECT_MODE_AQUA,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEnableZsl.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEnableZsl.aidl
index 920def7..3f2d4a3 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEnableZsl.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlEnableZsl.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlEnableZsl {
- ANDROID_CONTROL_ENABLE_ZSL_FALSE = 0,
- ANDROID_CONTROL_ENABLE_ZSL_TRUE = 1,
+ ANDROID_CONTROL_ENABLE_ZSL_FALSE,
+ ANDROID_CONTROL_ENABLE_ZSL_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl
index 2655d61..7838288 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlExtendedSceneMode.aidl
@@ -39,7 +39,7 @@
@Backing(type="int") @VintfStability
enum ControlExtendedSceneMode {
ANDROID_CONTROL_EXTENDED_SCENE_MODE_DISABLED = 0,
- ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE = 1,
- ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS = 2,
- ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 64,
+ ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE,
+ ANDROID_CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS,
+ ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 0x40,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlMode.aidl
index f58491e..c5a8172 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlMode.aidl
@@ -38,9 +38,9 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlMode {
- ANDROID_CONTROL_MODE_OFF = 0,
- ANDROID_CONTROL_MODE_AUTO = 1,
- ANDROID_CONTROL_MODE_USE_SCENE_MODE = 2,
- ANDROID_CONTROL_MODE_OFF_KEEP_STATE = 3,
- ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE = 4,
+ ANDROID_CONTROL_MODE_OFF,
+ ANDROID_CONTROL_MODE_AUTO,
+ ANDROID_CONTROL_MODE_USE_SCENE_MODE,
+ ANDROID_CONTROL_MODE_OFF_KEEP_STATE,
+ ANDROID_CONTROL_MODE_USE_EXTENDED_SCENE_MODE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSceneMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSceneMode.aidl
index 994bbf3..62c67e3 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSceneMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSceneMode.aidl
@@ -39,25 +39,25 @@
@Backing(type="int") @VintfStability
enum ControlSceneMode {
ANDROID_CONTROL_SCENE_MODE_DISABLED = 0,
- ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY = 1,
- ANDROID_CONTROL_SCENE_MODE_ACTION = 2,
- ANDROID_CONTROL_SCENE_MODE_PORTRAIT = 3,
- ANDROID_CONTROL_SCENE_MODE_LANDSCAPE = 4,
- ANDROID_CONTROL_SCENE_MODE_NIGHT = 5,
- ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT = 6,
- ANDROID_CONTROL_SCENE_MODE_THEATRE = 7,
- ANDROID_CONTROL_SCENE_MODE_BEACH = 8,
- ANDROID_CONTROL_SCENE_MODE_SNOW = 9,
- ANDROID_CONTROL_SCENE_MODE_SUNSET = 10,
- ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO = 11,
- ANDROID_CONTROL_SCENE_MODE_FIREWORKS = 12,
- ANDROID_CONTROL_SCENE_MODE_SPORTS = 13,
- ANDROID_CONTROL_SCENE_MODE_PARTY = 14,
- ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT = 15,
- ANDROID_CONTROL_SCENE_MODE_BARCODE = 16,
- ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO = 17,
- ANDROID_CONTROL_SCENE_MODE_HDR = 18,
- ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT = 19,
+ ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY,
+ ANDROID_CONTROL_SCENE_MODE_ACTION,
+ ANDROID_CONTROL_SCENE_MODE_PORTRAIT,
+ ANDROID_CONTROL_SCENE_MODE_LANDSCAPE,
+ ANDROID_CONTROL_SCENE_MODE_NIGHT,
+ ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT,
+ ANDROID_CONTROL_SCENE_MODE_THEATRE,
+ ANDROID_CONTROL_SCENE_MODE_BEACH,
+ ANDROID_CONTROL_SCENE_MODE_SNOW,
+ ANDROID_CONTROL_SCENE_MODE_SUNSET,
+ ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO,
+ ANDROID_CONTROL_SCENE_MODE_FIREWORKS,
+ ANDROID_CONTROL_SCENE_MODE_SPORTS,
+ ANDROID_CONTROL_SCENE_MODE_PARTY,
+ ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT,
+ ANDROID_CONTROL_SCENE_MODE_BARCODE,
+ ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO,
+ ANDROID_CONTROL_SCENE_MODE_HDR,
+ ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT,
ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START = 100,
ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END = 127,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSettingsOverride.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSettingsOverride.aidl
index ed5d46f..404bbfa 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSettingsOverride.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlSettingsOverride.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlSettingsOverride {
- ANDROID_CONTROL_SETTINGS_OVERRIDE_OFF = 0,
- ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM = 1,
- ANDROID_CONTROL_SETTINGS_OVERRIDE_VENDOR_START = 16384,
+ ANDROID_CONTROL_SETTINGS_OVERRIDE_OFF,
+ ANDROID_CONTROL_SETTINGS_OVERRIDE_ZOOM,
+ ANDROID_CONTROL_SETTINGS_OVERRIDE_VENDOR_START = 0x4000,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl
index b3b24f7..2b199ef 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ControlVideoStabilizationMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ControlVideoStabilizationMode {
- ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF = 0,
- ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON = 1,
- ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION = 2,
+ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF,
+ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON,
+ ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DemosaicMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DemosaicMode.aidl
index 26874a2..5770009 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DemosaicMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DemosaicMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DemosaicMode {
- ANDROID_DEMOSAIC_MODE_FAST = 0,
- ANDROID_DEMOSAIC_MODE_HIGH_QUALITY = 1,
+ ANDROID_DEMOSAIC_MODE_FAST,
+ ANDROID_DEMOSAIC_MODE_HIGH_QUALITY,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl
index 6a154ca..0cce2da 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurations.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DepthAvailableDepthStreamConfigurations {
- ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT = 0,
- ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT = 1,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl
index 23d6589..9be06db 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDepthStreamConfigurationsMaximumResolution.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DepthAvailableDepthStreamConfigurationsMaximumResolution {
- ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT = 0,
- ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT = 1,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT,
+ ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl
index f3ca039..c6aebaa 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurations.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DepthAvailableDynamicDepthStreamConfigurations {
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_OUTPUT = 0,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT = 1,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_OUTPUT,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl
index 46a4ce6..4d5161d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DepthAvailableDynamicDepthStreamConfigurationsMaximumResolution {
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT = 0,
- ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT = 1,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT,
+ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl
index f5fc218..f7b69cd 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DepthDepthIsExclusive.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DepthDepthIsExclusive {
- ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE = 0,
- ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE = 1,
+ ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE,
+ ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DistortionCorrectionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DistortionCorrectionMode.aidl
index 46327e0..6e965f6 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DistortionCorrectionMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/DistortionCorrectionMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum DistortionCorrectionMode {
- ANDROID_DISTORTION_CORRECTION_MODE_OFF = 0,
- ANDROID_DISTORTION_CORRECTION_MODE_FAST = 1,
- ANDROID_DISTORTION_CORRECTION_MODE_HIGH_QUALITY = 2,
+ ANDROID_DISTORTION_CORRECTION_MODE_OFF,
+ ANDROID_DISTORTION_CORRECTION_MODE_FAST,
+ ANDROID_DISTORTION_CORRECTION_MODE_HIGH_QUALITY,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/EdgeMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/EdgeMode.aidl
index 4b02e19..fdd32f4 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/EdgeMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/EdgeMode.aidl
@@ -38,8 +38,8 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum EdgeMode {
- ANDROID_EDGE_MODE_OFF = 0,
- ANDROID_EDGE_MODE_FAST = 1,
- ANDROID_EDGE_MODE_HIGH_QUALITY = 2,
- ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG = 3,
+ ANDROID_EDGE_MODE_OFF,
+ ANDROID_EDGE_MODE_FAST,
+ ANDROID_EDGE_MODE_HIGH_QUALITY,
+ ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashInfoAvailable.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashInfoAvailable.aidl
index 10d07a5..83292fe 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashInfoAvailable.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashInfoAvailable.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum FlashInfoAvailable {
- ANDROID_FLASH_INFO_AVAILABLE_FALSE = 0,
- ANDROID_FLASH_INFO_AVAILABLE_TRUE = 1,
+ ANDROID_FLASH_INFO_AVAILABLE_FALSE,
+ ANDROID_FLASH_INFO_AVAILABLE_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashMode.aidl
index 1ab0560..e18ea3c 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum FlashMode {
- ANDROID_FLASH_MODE_OFF = 0,
- ANDROID_FLASH_MODE_SINGLE = 1,
- ANDROID_FLASH_MODE_TORCH = 2,
+ ANDROID_FLASH_MODE_OFF,
+ ANDROID_FLASH_MODE_SINGLE,
+ ANDROID_FLASH_MODE_TORCH,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashState.aidl
index a571e66..4343d4f 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashState.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/FlashState.aidl
@@ -38,9 +38,9 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum FlashState {
- ANDROID_FLASH_STATE_UNAVAILABLE = 0,
- ANDROID_FLASH_STATE_CHARGING = 1,
- ANDROID_FLASH_STATE_READY = 2,
- ANDROID_FLASH_STATE_FIRED = 3,
- ANDROID_FLASH_STATE_PARTIAL = 4,
+ ANDROID_FLASH_STATE_UNAVAILABLE,
+ ANDROID_FLASH_STATE_CHARGING,
+ ANDROID_FLASH_STATE_READY,
+ ANDROID_FLASH_STATE_FIRED,
+ ANDROID_FLASH_STATE_PARTIAL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl
index d92c2db..3957267 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurations.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum HeicAvailableHeicStreamConfigurations {
- ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_OUTPUT = 0,
- ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT = 1,
+ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_OUTPUT,
+ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl
index f02cf58..4eda538 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicAvailableHeicStreamConfigurationsMaximumResolution.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum HeicAvailableHeicStreamConfigurationsMaximumResolution {
- ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT = 0,
- ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT = 1,
+ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT,
+ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicInfoSupported.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicInfoSupported.aidl
index ae5a8e7..7079bbf 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicInfoSupported.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HeicInfoSupported.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum HeicInfoSupported {
- ANDROID_HEIC_INFO_SUPPORTED_FALSE = 0,
- ANDROID_HEIC_INFO_SUPPORTED_TRUE = 1,
+ ANDROID_HEIC_INFO_SUPPORTED_FALSE,
+ ANDROID_HEIC_INFO_SUPPORTED_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HotPixelMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HotPixelMode.aidl
index 1248c60..50b3446 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HotPixelMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/HotPixelMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum HotPixelMode {
- ANDROID_HOT_PIXEL_MODE_OFF = 0,
- ANDROID_HOT_PIXEL_MODE_FAST = 1,
- ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY = 2,
+ ANDROID_HOT_PIXEL_MODE_OFF,
+ ANDROID_HOT_PIXEL_MODE_FAST,
+ ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl
index 1272f27..7303ff5 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedBufferManagementVersion.aidl
@@ -38,5 +38,5 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum InfoSupportedBufferManagementVersion {
- ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL_DEVICE = 0,
+ ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION_AIDL_DEVICE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl
index 8ae39b0..3b50647 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/InfoSupportedHardwareLevel.aidl
@@ -38,9 +38,9 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum InfoSupportedHardwareLevel {
- ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0,
- ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1,
- ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2,
- ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3,
- ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL = 4,
+ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED,
+ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL,
+ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY,
+ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3,
+ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl
index cd005b5..cf9dbb7 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurations.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum JpegrAvailableJpegRStreamConfigurations {
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_OUTPUT = 0,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_INPUT = 1,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_OUTPUT,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl
index 68028db..0a95e1f 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/JpegrAvailableJpegRStreamConfigurationsMaximumResolution.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum JpegrAvailableJpegRStreamConfigurationsMaximumResolution {
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT = 0,
- ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT = 1,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT,
+ ANDROID_JPEGR_AVAILABLE_JPEG_R_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedAvailableLeds.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedAvailableLeds.aidl
index da558d2..b3beb2d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedAvailableLeds.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedAvailableLeds.aidl
@@ -38,5 +38,5 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LedAvailableLeds {
- ANDROID_LED_AVAILABLE_LEDS_TRANSMIT = 0,
+ ANDROID_LED_AVAILABLE_LEDS_TRANSMIT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedTransmit.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedTransmit.aidl
index 658b3cd..0cbf239 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedTransmit.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LedTransmit.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LedTransmit {
- ANDROID_LED_TRANSMIT_OFF = 0,
- ANDROID_LED_TRANSMIT_ON = 1,
+ ANDROID_LED_TRANSMIT_OFF,
+ ANDROID_LED_TRANSMIT_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensFacing.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensFacing.aidl
index 4db987b..d15674d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensFacing.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensFacing.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LensFacing {
- ANDROID_LENS_FACING_FRONT = 0,
- ANDROID_LENS_FACING_BACK = 1,
- ANDROID_LENS_FACING_EXTERNAL = 2,
+ ANDROID_LENS_FACING_FRONT,
+ ANDROID_LENS_FACING_BACK,
+ ANDROID_LENS_FACING_EXTERNAL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl
index d83d67f..937347b 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensInfoFocusDistanceCalibration.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LensInfoFocusDistanceCalibration {
- ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED = 0,
- ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE = 1,
- ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED = 2,
+ ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED,
+ ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE,
+ ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl
index f2f039c..550d9f3 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensOpticalStabilizationMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LensOpticalStabilizationMode {
- ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF = 0,
- ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON = 1,
+ ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF,
+ ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensPoseReference.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensPoseReference.aidl
index b2d837a..6a3799d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensPoseReference.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensPoseReference.aidl
@@ -38,8 +38,8 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LensPoseReference {
- ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA = 0,
- ANDROID_LENS_POSE_REFERENCE_GYROSCOPE = 1,
- ANDROID_LENS_POSE_REFERENCE_UNDEFINED = 2,
- ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE = 3,
+ ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA,
+ ANDROID_LENS_POSE_REFERENCE_GYROSCOPE,
+ ANDROID_LENS_POSE_REFERENCE_UNDEFINED,
+ ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensState.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensState.aidl
index 4b15b0f..4f98956 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensState.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LensState.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LensState {
- ANDROID_LENS_STATE_STATIONARY = 0,
- ANDROID_LENS_STATE_MOVING = 1,
+ ANDROID_LENS_STATE_STATIONARY,
+ ANDROID_LENS_STATE_MOVING,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl
index 224a7fa..5eb5759 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/LogicalMultiCameraSensorSyncType.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum LogicalMultiCameraSensorSyncType {
- ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE = 0,
- ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED = 1,
+ ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE,
+ ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/NoiseReductionMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/NoiseReductionMode.aidl
index ed0ebc1..8b589ce 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/NoiseReductionMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/NoiseReductionMode.aidl
@@ -38,9 +38,9 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum NoiseReductionMode {
- ANDROID_NOISE_REDUCTION_MODE_OFF = 0,
- ANDROID_NOISE_REDUCTION_MODE_FAST = 1,
- ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY = 2,
- ANDROID_NOISE_REDUCTION_MODE_MINIMAL = 3,
- ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG = 4,
+ ANDROID_NOISE_REDUCTION_MODE_OFF,
+ ANDROID_NOISE_REDUCTION_MODE_FAST,
+ ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY,
+ ANDROID_NOISE_REDUCTION_MODE_MINIMAL,
+ ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/QuirksPartialResult.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/QuirksPartialResult.aidl
index d217fe8..8ab6a05 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/QuirksPartialResult.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/QuirksPartialResult.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum QuirksPartialResult {
- ANDROID_QUIRKS_PARTIAL_RESULT_FINAL = 0,
- ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL = 1,
+ ANDROID_QUIRKS_PARTIAL_RESULT_FINAL,
+ ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl
index 37b1dec..0564db8 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableCapabilities.aidl
@@ -38,25 +38,25 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum RequestAvailableCapabilities {
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE = 0,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR = 1,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING = 2,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW = 3,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING = 4,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS = 5,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE = 6,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING = 7,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT = 8,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO = 9,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING = 10,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA = 11,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME = 12,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA = 13,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA = 14,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING = 15,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR = 16,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING = 17,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT = 18,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE = 19,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES = 20,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl
index 0d59ab0..74606bf 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl
@@ -38,21 +38,8 @@
package android.hardware.camera.metadata;
@Backing(type="long") @VintfStability
enum RequestAvailableColorSpaceProfilesMap {
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED = -1,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB = 0,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_LINEAR_SRGB = 1,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_EXTENDED_SRGB = 2,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_LINEAR_EXTENDED_SRGB = 3,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT709 = 4,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020 = 5,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DCI_P3 = 6,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3 = 7,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_NTSC_1953 = 8,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SMPTE_C = 9,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_ADOBE_RGB = 10,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_PRO_PHOTO_RGB = 11,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_ACES = 12,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_ACESCG = 13,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_CIE_XYZ = 14,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_CIE_LAB = 15,
+ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED = (-1L) /* -1 */,
+ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB = 0L,
+ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3 = 7L,
+ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020_HLG = 16L,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl
index 16e38ba..45ffb1b 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestAvailableDynamicRangeProfilesMap.aidl
@@ -38,17 +38,17 @@
package android.hardware.camera.metadata;
@Backing(type="long") @VintfStability
enum RequestAvailableDynamicRangeProfilesMap {
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD = 1,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10 = 2,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10 = 4,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS = 8,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF = 16,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO = 32,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM = 64,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO = 128,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF = 256,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO = 512,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM = 1024,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO = 2048,
- ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX = 4096,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD = 0x1L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10 = 0x2L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10 = 0x4L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS = 0x8L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF = 0x10L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO = 0x20L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM = 0x40L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO = 0x80L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF = 0x100L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO = 0x200L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM = 0x400L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO = 0x800L,
+ ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX = 0x1000L,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestMetadataMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestMetadataMode.aidl
index 90fba00..cede799 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestMetadataMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestMetadataMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum RequestMetadataMode {
- ANDROID_REQUEST_METADATA_MODE_NONE = 0,
- ANDROID_REQUEST_METADATA_MODE_FULL = 1,
+ ANDROID_REQUEST_METADATA_MODE_NONE,
+ ANDROID_REQUEST_METADATA_MODE_FULL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestType.aidl
index 4f38cfb..6b4ae71 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestType.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/RequestType.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum RequestType {
- ANDROID_REQUEST_TYPE_CAPTURE = 0,
- ANDROID_REQUEST_TYPE_REPROCESS = 1,
+ ANDROID_REQUEST_TYPE_CAPTURE,
+ ANDROID_REQUEST_TYPE_REPROCESS,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableFormats.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableFormats.aidl
index 41fd2c2..fdc2f60 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableFormats.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableFormats.aidl
@@ -38,14 +38,14 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerAvailableFormats {
- ANDROID_SCALER_AVAILABLE_FORMATS_RAW16 = 32,
- ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE = 36,
- ANDROID_SCALER_AVAILABLE_FORMATS_YV12 = 842094169,
- ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP = 17,
- ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED = 34,
- ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888 = 35,
- ANDROID_SCALER_AVAILABLE_FORMATS_BLOB = 33,
- ANDROID_SCALER_AVAILABLE_FORMATS_RAW10 = 37,
- ANDROID_SCALER_AVAILABLE_FORMATS_RAW12 = 38,
- ANDROID_SCALER_AVAILABLE_FORMATS_Y8 = 538982489,
+ ANDROID_SCALER_AVAILABLE_FORMATS_RAW16 = 0x20,
+ ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE = 0x24,
+ ANDROID_SCALER_AVAILABLE_FORMATS_YV12 = 0x32315659,
+ ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP = 0x11,
+ ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED = 0x22,
+ ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888 = 0x23,
+ ANDROID_SCALER_AVAILABLE_FORMATS_BLOB = 0x21,
+ ANDROID_SCALER_AVAILABLE_FORMATS_RAW10 = 0x25,
+ ANDROID_SCALER_AVAILABLE_FORMATS_RAW12 = 0x26,
+ ANDROID_SCALER_AVAILABLE_FORMATS_Y8 = 0x20203859,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl
index 85daa85..741a99d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableRecommendedStreamConfigurations.aidl
@@ -38,13 +38,13 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerAvailableRecommendedStreamConfigurations {
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW = 0,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD = 1,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT = 2,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT = 3,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_ZSL = 4,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RAW = 5,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_LOW_LATENCY_SNAPSHOT = 6,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT = 8,
- ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START = 24,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PREVIEW = 0x0,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RECORD = 0x1,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VIDEO_SNAPSHOT = 0x2,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_SNAPSHOT = 0x3,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_ZSL = 0x4,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_RAW = 0x5,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_LOW_LATENCY_SNAPSHOT = 0x6,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT = 0x8,
+ ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START = 0x18,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl
index 1515ad5..4e2899d 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurations.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerAvailableStreamConfigurations {
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT = 0,
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT = 1,
+ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
+ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl
index b9c3374..fb15815 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamConfigurationsMaximumResolution.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerAvailableStreamConfigurationsMaximumResolution {
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT = 0,
- ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT = 1,
+ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT,
+ ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl
index 958fa12..ff92f9e 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerAvailableStreamUseCases.aidl
@@ -38,12 +38,12 @@
package android.hardware.camera.metadata;
@Backing(type="long") @VintfStability
enum ScalerAvailableStreamUseCases {
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 1,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE = 2,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD = 3,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL = 4,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL = 5,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW = 6,
- ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START = 65536,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE = 0x2L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD = 0x3L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL = 0x4L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL = 0x5L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW = 0x6L,
+ ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START = 0x10000L,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerCroppingType.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerCroppingType.aidl
index 0487196..60782e4 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerCroppingType.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerCroppingType.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerCroppingType {
- ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY = 0,
- ANDROID_SCALER_CROPPING_TYPE_FREEFORM = 1,
+ ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY,
+ ANDROID_SCALER_CROPPING_TYPE_FREEFORM,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl
index 711243f..e09d89c 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerMultiResolutionStreamSupported.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerMultiResolutionStreamSupported {
- ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE = 0,
- ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE = 1,
+ ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE,
+ ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl
index 50bc097..64a0220 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerPhysicalCameraMultiResolutionStreamConfigurations.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerPhysicalCameraMultiResolutionStreamConfigurations {
- ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT = 0,
- ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT = 1,
+ ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT,
+ ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl
index 3b9c5b8..bf5380e 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ScalerRotateAndCrop.aidl
@@ -38,9 +38,9 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ScalerRotateAndCrop {
- ANDROID_SCALER_ROTATE_AND_CROP_NONE = 0,
- ANDROID_SCALER_ROTATE_AND_CROP_90 = 1,
- ANDROID_SCALER_ROTATE_AND_CROP_180 = 2,
- ANDROID_SCALER_ROTATE_AND_CROP_270 = 3,
- ANDROID_SCALER_ROTATE_AND_CROP_AUTO = 4,
+ ANDROID_SCALER_ROTATE_AND_CROP_NONE,
+ ANDROID_SCALER_ROTATE_AND_CROP_90,
+ ANDROID_SCALER_ROTATE_AND_CROP_180,
+ ANDROID_SCALER_ROTATE_AND_CROP_270,
+ ANDROID_SCALER_ROTATE_AND_CROP_AUTO,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl
index 3400233..c96f3c5 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoColorFilterArrangement.aidl
@@ -38,11 +38,11 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SensorInfoColorFilterArrangement {
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB = 0,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG = 1,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG = 2,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR = 3,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB = 4,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO = 5,
- ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR = 6,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_MONO,
+ ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_NIR,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl
index c8faaee..0153731 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoLensShadingApplied.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SensorInfoLensShadingApplied {
- ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE = 0,
- ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE = 1,
+ ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE,
+ ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl
index 2a4b3dd..9a00cf1 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorInfoTimestampSource.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SensorInfoTimestampSource {
- ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN = 0,
- ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME = 1,
+ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN,
+ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorPixelMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorPixelMode.aidl
index e021434..5f055d6 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorPixelMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorPixelMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SensorPixelMode {
- ANDROID_SENSOR_PIXEL_MODE_DEFAULT = 0,
- ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION = 1,
+ ANDROID_SENSOR_PIXEL_MODE_DEFAULT,
+ ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl
index a1f0c5f..851dae0 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorRawBinningFactorUsed.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SensorRawBinningFactorUsed {
- ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE = 0,
- ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE = 1,
+ ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE,
+ ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorTestPatternMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorTestPatternMode.aidl
index 3f49b9a..98f0ebe 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorTestPatternMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SensorTestPatternMode.aidl
@@ -38,11 +38,11 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SensorTestPatternMode {
- ANDROID_SENSOR_TEST_PATTERN_MODE_OFF = 0,
- ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR = 1,
- ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS = 2,
- ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY = 3,
- ANDROID_SENSOR_TEST_PATTERN_MODE_PN9 = 4,
- ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK = 5,
+ ANDROID_SENSOR_TEST_PATTERN_MODE_OFF,
+ ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR,
+ ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS,
+ ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY,
+ ANDROID_SENSOR_TEST_PATTERN_MODE_PN9,
+ ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK,
ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1 = 256,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ShadingMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ShadingMode.aidl
index a2d2a32..ffc6a56 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ShadingMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/ShadingMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum ShadingMode {
- ANDROID_SHADING_MODE_OFF = 0,
- ANDROID_SHADING_MODE_FAST = 1,
- ANDROID_SHADING_MODE_HIGH_QUALITY = 2,
+ ANDROID_SHADING_MODE_OFF,
+ ANDROID_SHADING_MODE_FAST,
+ ANDROID_SHADING_MODE_HIGH_QUALITY,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl
index 1c65f99..48c6797 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsFaceDetectMode.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsFaceDetectMode {
- ANDROID_STATISTICS_FACE_DETECT_MODE_OFF = 0,
- ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE = 1,
- ANDROID_STATISTICS_FACE_DETECT_MODE_FULL = 2,
+ ANDROID_STATISTICS_FACE_DETECT_MODE_OFF,
+ ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE,
+ ANDROID_STATISTICS_FACE_DETECT_MODE_FULL,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHistogramMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHistogramMode.aidl
index 39a013e..354518b 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHistogramMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHistogramMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsHistogramMode {
- ANDROID_STATISTICS_HISTOGRAM_MODE_OFF = 0,
- ANDROID_STATISTICS_HISTOGRAM_MODE_ON = 1,
+ ANDROID_STATISTICS_HISTOGRAM_MODE_OFF,
+ ANDROID_STATISTICS_HISTOGRAM_MODE_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl
index 3a8c6c2..b96e4be 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsHotPixelMapMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsHotPixelMapMode {
- ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF = 0,
- ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON = 1,
+ ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF,
+ ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl
index cc280ca..7d0b082 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsLensShadingMapMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsLensShadingMapMode {
- ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF = 0,
- ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON = 1,
+ ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF,
+ ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsOisDataMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsOisDataMode.aidl
index 6607037..b80889b 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsOisDataMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsOisDataMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsOisDataMode {
- ANDROID_STATISTICS_OIS_DATA_MODE_OFF = 0,
- ANDROID_STATISTICS_OIS_DATA_MODE_ON = 1,
+ ANDROID_STATISTICS_OIS_DATA_MODE_OFF,
+ ANDROID_STATISTICS_OIS_DATA_MODE_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl
index bc286c3..a9268c0 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSceneFlicker.aidl
@@ -38,7 +38,7 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsSceneFlicker {
- ANDROID_STATISTICS_SCENE_FLICKER_NONE = 0,
- ANDROID_STATISTICS_SCENE_FLICKER_50HZ = 1,
- ANDROID_STATISTICS_SCENE_FLICKER_60HZ = 2,
+ ANDROID_STATISTICS_SCENE_FLICKER_NONE,
+ ANDROID_STATISTICS_SCENE_FLICKER_50HZ,
+ ANDROID_STATISTICS_SCENE_FLICKER_60HZ,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl
index 774a43a..09a2003 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/StatisticsSharpnessMapMode.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum StatisticsSharpnessMapMode {
- ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF = 0,
- ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON = 1,
+ ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF,
+ ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncFrameNumber.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncFrameNumber.aidl
index 12ccbb9..230f57e 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncFrameNumber.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncFrameNumber.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum SyncFrameNumber {
- ANDROID_SYNC_FRAME_NUMBER_CONVERGING = -1,
- ANDROID_SYNC_FRAME_NUMBER_UNKNOWN = -2,
+ ANDROID_SYNC_FRAME_NUMBER_CONVERGING = (-1) /* -1 */,
+ ANDROID_SYNC_FRAME_NUMBER_UNKNOWN = (-2) /* -2 */,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncMaxLatency.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncMaxLatency.aidl
index e0116e7..d484f45 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncMaxLatency.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/SyncMaxLatency.aidl
@@ -39,5 +39,5 @@
@Backing(type="int") @VintfStability
enum SyncMaxLatency {
ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL = 0,
- ANDROID_SYNC_MAX_LATENCY_UNKNOWN = -1,
+ ANDROID_SYNC_MAX_LATENCY_UNKNOWN = (-1) /* -1 */,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapMode.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapMode.aidl
index 728b298..e729166 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapMode.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapMode.aidl
@@ -38,9 +38,9 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum TonemapMode {
- ANDROID_TONEMAP_MODE_CONTRAST_CURVE = 0,
- ANDROID_TONEMAP_MODE_FAST = 1,
- ANDROID_TONEMAP_MODE_HIGH_QUALITY = 2,
- ANDROID_TONEMAP_MODE_GAMMA_VALUE = 3,
- ANDROID_TONEMAP_MODE_PRESET_CURVE = 4,
+ ANDROID_TONEMAP_MODE_CONTRAST_CURVE,
+ ANDROID_TONEMAP_MODE_FAST,
+ ANDROID_TONEMAP_MODE_HIGH_QUALITY,
+ ANDROID_TONEMAP_MODE_GAMMA_VALUE,
+ ANDROID_TONEMAP_MODE_PRESET_CURVE,
}
diff --git a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapPresetCurve.aidl b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapPresetCurve.aidl
index fc2e39b..2e5fbd3 100644
--- a/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapPresetCurve.aidl
+++ b/camera/metadata/aidl/aidl_api/android.hardware.camera.metadata/current/android/hardware/camera/metadata/TonemapPresetCurve.aidl
@@ -38,6 +38,6 @@
package android.hardware.camera.metadata;
@Backing(type="int") @VintfStability
enum TonemapPresetCurve {
- ANDROID_TONEMAP_PRESET_CURVE_SRGB = 0,
- ANDROID_TONEMAP_PRESET_CURVE_REC709 = 1,
+ ANDROID_TONEMAP_PRESET_CURVE_SRGB,
+ ANDROID_TONEMAP_PRESET_CURVE_REC709,
}
diff --git a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl
index 1423305..b397dea 100644
--- a/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl
+++ b/camera/metadata/aidl/android/hardware/camera/metadata/RequestAvailableColorSpaceProfilesMap.aidl
@@ -31,19 +31,6 @@
enum RequestAvailableColorSpaceProfilesMap {
ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_UNSPECIFIED = -1L,
ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SRGB = 0L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_LINEAR_SRGB = 1L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_EXTENDED_SRGB = 2L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_LINEAR_EXTENDED_SRGB = 3L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT709 = 4L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020 = 5L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DCI_P3 = 6L,
ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_DISPLAY_P3 = 7L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_NTSC_1953 = 8L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_SMPTE_C = 9L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_ADOBE_RGB = 10L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_PRO_PHOTO_RGB = 11L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_ACES = 12L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_ACESCG = 13L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_CIE_XYZ = 14L,
- ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_CIE_LAB = 15L,
+ ANDROID_REQUEST_AVAILABLE_COLOR_SPACE_PROFILES_MAP_BT2020_HLG = 16L,
}
diff --git a/common/fmq/aidl/Android.bp b/common/fmq/aidl/Android.bp
index 5772b7f..3b022fc 100644
--- a/common/fmq/aidl/Android.bp
+++ b/common/fmq/aidl/Android.bp
@@ -48,5 +48,10 @@
},
},
frozen: true,
- versions: ["1"],
+ versions_with_info: [
+ {
+ version: "1",
+ imports: ["android.hardware.common-V2"],
+ },
+ ],
}
diff --git a/compatibility_matrices/compatibility_matrix.8.xml b/compatibility_matrices/compatibility_matrix.8.xml
index a7d1988..c58f559 100644
--- a/compatibility_matrices/compatibility_matrix.8.xml
+++ b/compatibility_matrices/compatibility_matrix.8.xml
@@ -84,6 +84,15 @@
<regex-instance>[a-z]+/[0-9]+</regex-instance>
</interface>
</hal>
+ <hal format="hidl" optional="true">
+ <name>android.hardware.automotive.evs</name>
+ <version>1.0-1</version>
+ <interface>
+ <name>IEvsEnumerator</name>
+ <instance>default</instance>
+ <regex-instance>[a-z]+/[0-9]+</regex-instance>
+ </interface>
+ </hal>
<hal format="aidl" optional="true">
<name>android.hardware.automotive.occupant_awareness</name>
<version>1</version>
diff --git a/current.txt b/current.txt
index c40f9ea..a6c4d80 100644
--- a/current.txt
+++ b/current.txt
@@ -936,5 +936,6 @@
a2fbd9747fbb9ceb8c1090b5a24138312246502d5af0654a8c2b603a9bf521fc android.hardware.gnss@1.0::IGnssCallback
889b59e3e7a59afa67bf19882a44f51a2f9e43b6556ec52baa9ec3efd1ef7fbe android.hardware.camera.device@3.2::types
db37a1c757e2e69b1ec9c75a981a6987bd87a131d92ab6acc00e04d19f374281 android.hardware.automotive.vehicle@2.0::types
+997017f581406fca1675d2f612f7ccd73f0d04eadd54bf6212e6cf5971d0872d android.hardware.automotive.vehicle@2.0::types
# There will be no more HIDL HALs. Use AIDL instead.
diff --git a/graphics/mapper/2.0/default/passthrough.cpp b/graphics/mapper/2.0/default/passthrough.cpp
index 93d6d99..e18b88f 100644
--- a/graphics/mapper/2.0/default/passthrough.cpp
+++ b/graphics/mapper/2.0/default/passthrough.cpp
@@ -19,14 +19,6 @@
using android::hardware::graphics::mapper::V2_0::IMapper;
using android::hardware::graphics::mapper::V2_0::passthrough::GrallocLoader;
-// Preload the gralloc module such that GraphicBufferMapper::preloadHal is
-// meaningful
-class GrallocPreloader {
-public:
- GrallocPreloader() { GrallocLoader::loadModule(); }
-};
-static GrallocPreloader sGrallocPreloader;
-
extern "C" IMapper* HIDL_FETCH_IMapper(const char* /*name*/) {
return GrallocLoader::load();
}
diff --git a/graphics/mapper/2.1/default/passthrough.cpp b/graphics/mapper/2.1/default/passthrough.cpp
index c99c984..c7f0cf5 100644
--- a/graphics/mapper/2.1/default/passthrough.cpp
+++ b/graphics/mapper/2.1/default/passthrough.cpp
@@ -19,14 +19,6 @@
using android::hardware::graphics::mapper::V2_1::IMapper;
using android::hardware::graphics::mapper::V2_1::passthrough::GrallocLoader;
-// Preload the gralloc module such that GraphicBufferMapper::preloadHal is
-// meaningful
-class GrallocPreloader {
-public:
- GrallocPreloader() { GrallocLoader::loadModule(); }
-};
-static GrallocPreloader sGrallocPreloader;
-
extern "C" IMapper* HIDL_FETCH_IMapper(const char* /*name*/) {
return GrallocLoader::load();
}
diff --git a/radio/1.5/vts/functional/radio_hidl_hal_api.cpp b/radio/1.5/vts/functional/radio_hidl_hal_api.cpp
index 152858f..5539b9c 100644
--- a/radio/1.5/vts/functional/radio_hidl_hal_api.cpp
+++ b/radio/1.5/vts/functional/radio_hidl_hal_api.cpp
@@ -564,23 +564,23 @@
TEST_P(RadioHidlTest_v1_5, startNetworkScan) {
serial = GetRandomSerialNumber();
- ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands bandP900;
- bandP900.geranBands() = {GeranBands::BAND_P900};
- ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands band850;
- band850.geranBands() = {GeranBands::BAND_850};
- ::android::hardware::radio::V1_5::RadioAccessSpecifier specifierP900 = {
- .radioAccessNetwork = ::android::hardware::radio::V1_5::RadioAccessNetworks::GERAN,
- .bands = bandP900,
+ ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands band17;
+ band17.eutranBands() = {::android::hardware::radio::V1_5::EutranBands::BAND_17};
+ ::android::hardware::radio::V1_5::RadioAccessSpecifier::Bands band20;
+ band20.eutranBands() = {::android::hardware::radio::V1_5::EutranBands::BAND_20};
+ ::android::hardware::radio::V1_5::RadioAccessSpecifier specifier17 = {
+ .radioAccessNetwork = ::android::hardware::radio::V1_5::RadioAccessNetworks::EUTRAN,
+ .bands = band17,
.channels = {1, 2}};
- ::android::hardware::radio::V1_5::RadioAccessSpecifier specifier850 = {
- .radioAccessNetwork = ::android::hardware::radio::V1_5::RadioAccessNetworks::GERAN,
- .bands = band850,
+ ::android::hardware::radio::V1_5::RadioAccessSpecifier specifier20 = {
+ .radioAccessNetwork = ::android::hardware::radio::V1_5::RadioAccessNetworks::EUTRAN,
+ .bands = band20,
.channels = {128, 129}};
::android::hardware::radio::V1_5::NetworkScanRequest request = {
.type = ScanType::ONE_SHOT,
.interval = 60,
- .specifiers = {specifierP900, specifier850},
+ .specifiers = {specifier17, specifier20},
.maxSearchTime = 60,
.incrementalResults = false,
.incrementalResultsPeriodicity = 1};
@@ -595,12 +595,17 @@
if (cardStatus.base.base.base.cardState == CardState::ABSENT) {
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error, {RadioError::SIM_ABSENT}));
} else if (cardStatus.base.base.base.cardState == CardState::PRESENT) {
- // OPERATION_NOT_ALLOWED should not be allowed; however, some vendors do
- // not support the required manual GSM search functionality. This is
- // tracked in b/112206766. Modems have "GSM" rat scan need to
+ // Modems support 3GPP RAT family need to
// support scanning requests combined with some parameters.
- ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error,
- {RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED}));
+ if (deviceSupportsFeature(FEATURE_TELEPHONY_GSM)) {
+ ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_5->rspInfo.error,
+ {RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED}));
+ } else {
+ ASSERT_TRUE(CheckAnyOfErrors(
+ radioRsp_v1_5->rspInfo.error,
+ {RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED,
+ RadioError::REQUEST_NOT_SUPPORTED, RadioError::INVALID_ARGUMENTS}));
+ }
}
if (radioRsp_v1_5->rspInfo.error == RadioError::NONE) {
diff --git a/radio/aidl/vts/radio_network_test.cpp b/radio/aidl/vts/radio_network_test.cpp
index 3d6dbe7..7d9986b 100644
--- a/radio/aidl/vts/radio_network_test.cpp
+++ b/radio/aidl/vts/radio_network_test.cpp
@@ -856,20 +856,20 @@
TEST_P(RadioNetworkTest, startNetworkScan) {
serial = GetRandomSerialNumber();
- RadioAccessSpecifierBands bandP900 =
- RadioAccessSpecifierBands::make<RadioAccessSpecifierBands::geranBands>(
- {GeranBands::BAND_P900});
- RadioAccessSpecifierBands band850 =
- RadioAccessSpecifierBands::make<RadioAccessSpecifierBands::geranBands>(
- {GeranBands::BAND_850});
- RadioAccessSpecifier specifierP900 = {
- .accessNetwork = AccessNetwork::GERAN, .bands = bandP900, .channels = {1, 2}};
- RadioAccessSpecifier specifier850 = {
- .accessNetwork = AccessNetwork::GERAN, .bands = band850, .channels = {128, 129}};
+ RadioAccessSpecifierBands band17 =
+ RadioAccessSpecifierBands::make<RadioAccessSpecifierBands::eutranBands>(
+ {EutranBands::BAND_17});
+ RadioAccessSpecifierBands band20 =
+ RadioAccessSpecifierBands::make<RadioAccessSpecifierBands::eutranBands>(
+ {EutranBands::BAND_20});
+ RadioAccessSpecifier specifier17 = {
+ .accessNetwork = AccessNetwork::EUTRAN, .bands = band17, .channels = {1, 2}};
+ RadioAccessSpecifier specifier20 = {
+ .accessNetwork = AccessNetwork::EUTRAN, .bands = band20, .channels = {128, 129}};
NetworkScanRequest request = {.type = NetworkScanRequest::SCAN_TYPE_ONE_SHOT,
.interval = 60,
- .specifiers = {specifierP900, specifier850},
+ .specifiers = {specifier17, specifier20},
.maxSearchTime = 60,
.incrementalResults = false,
.incrementalResultsPeriodicity = 1};
@@ -885,12 +885,17 @@
if (cardStatus.cardState == CardStatus::STATE_ABSENT) {
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error, {RadioError::SIM_ABSENT}));
} else if (cardStatus.cardState == CardStatus::STATE_PRESENT) {
- // OPERATION_NOT_ALLOWED should not be allowed; however, some vendors do
- // not support the required manual GSM search functionality. This is
- // tracked in b/112206766. Modems have "GSM" rat scan need to
- // support scanning requests combined with some parameters.
- ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error,
- {RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED}));
+ if (deviceSupportsFeature(FEATURE_TELEPHONY_GSM)) {
+ // Modems support 3GPP RAT family need to
+ // support scanning requests combined with some parameters.
+ ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error,
+ {RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED}));
+ } else {
+ ASSERT_TRUE(CheckAnyOfErrors(
+ radioRsp_network->rspInfo.error,
+ {RadioError::NONE, RadioError::OPERATION_NOT_ALLOWED, RadioError::NONE,
+ RadioError::INVALID_ARGUMENTS, RadioError::REQUEST_NOT_SUPPORTED}));
+ }
}
if (radioRsp_network->rspInfo.error == RadioError::NONE) {
diff --git a/security/keymint/aidl/default/Android.bp b/security/keymint/aidl/default/Android.bp
index 17520b7..953630b 100644
--- a/security/keymint/aidl/default/Android.bp
+++ b/security/keymint/aidl/default/Android.bp
@@ -42,7 +42,6 @@
"service.cpp",
],
required: [
- "RemoteProvisioner",
"android.hardware.hardware_keystore.xml",
],
}
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
index 1dec8d7..5e27bd0 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp
@@ -1292,6 +1292,19 @@
return retval;
}
+
+bool KeyMintAidlTestBase::IsRkpSupportRequired() const {
+ if (get_vsr_api_level() >= __ANDROID_API_T__) {
+ return true;
+ }
+
+ if (get_vsr_api_level() >= __ANDROID_API_S__) {
+ return SecLevel() != SecurityLevel::STRONGBOX;
+ }
+
+ return false;
+}
+
vector<uint32_t> KeyMintAidlTestBase::ValidKeySizes(Algorithm algorithm) {
switch (algorithm) {
case Algorithm::RSA:
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h
index 3c753d1..3245ca9 100644
--- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h
+++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.h
@@ -309,6 +309,7 @@
}
bool IsSecure() const { return securityLevel_ != SecurityLevel::SOFTWARE; }
SecurityLevel SecLevel() const { return securityLevel_; }
+ bool IsRkpSupportRequired() const;
vector<uint32_t> ValidKeySizes(Algorithm algorithm);
vector<uint32_t> InvalidKeySizes(Algorithm algorithm);
diff --git a/security/keymint/aidl/vts/functional/KeyMintTest.cpp b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
index 9e66f08..c6b8906 100644
--- a/security/keymint/aidl/vts/functional/KeyMintTest.cpp
+++ b/security/keymint/aidl/vts/functional/KeyMintTest.cpp
@@ -1136,8 +1136,8 @@
* that has been generated using an associate IRemotelyProvisionedComponent.
*/
TEST_P(NewKeyGenerationTest, RsaWithRkpAttestation) {
- if (get_vsr_api_level() < __ANDROID_API_T__ || AidlVersion() < 2) {
- GTEST_SKIP() << "Only required for VSR 12+ and KeyMint 2+";
+ if (!IsRkpSupportRequired()) {
+ GTEST_SKIP() << "RKP support is not required on this platform";
}
// There should be an IRemotelyProvisionedComponent instance associated with the KeyMint
@@ -1214,8 +1214,8 @@
* that has been generated using an associate IRemotelyProvisionedComponent.
*/
TEST_P(NewKeyGenerationTest, EcdsaWithRkpAttestation) {
- if (get_vsr_api_level() < __ANDROID_API_T__ || AidlVersion() < 2) {
- GTEST_SKIP() << "Only required for VSR 12+ and KeyMint 2+";
+ if (!IsRkpSupportRequired()) {
+ GTEST_SKIP() << "RKP support is not required on this platform";
}
// There should be an IRemotelyProvisionedComponent instance associated with the KeyMint
diff --git a/security/keymint/support/remote_prov_utils.cpp b/security/keymint/support/remote_prov_utils.cpp
index 491b757..086ee79 100644
--- a/security/keymint/support/remote_prov_utils.cpp
+++ b/security/keymint/support/remote_prov_utils.cpp
@@ -290,11 +290,12 @@
return chain.encode();
}
-ErrMsgOr<std::vector<BccEntryData>> validateBcc(const cppbor::Array* bcc) {
+ErrMsgOr<std::vector<BccEntryData>> validateBcc(const cppbor::Array* bcc,
+ hwtrust::DiceChain::Kind kind) {
auto encodedBcc = bcc->encode();
- auto chain = hwtrust::DiceChain::verify(encodedBcc);
+ auto chain = hwtrust::DiceChain::Verify(encodedBcc, kind);
if (!chain.ok()) return chain.error().message();
- auto keys = chain->cose_public_keys();
+ auto keys = chain->CosePublicKeys();
if (!keys.ok()) return keys.error().message();
std::vector<BccEntryData> result;
for (auto& key : *keys) {
@@ -569,7 +570,7 @@
}
// BCC is [ pubkey, + BccEntry]
- auto bccContents = validateBcc(bcc->asArray());
+ auto bccContents = validateBcc(bcc->asArray(), hwtrust::DiceChain::Kind::kProtectedData);
if (!bccContents) {
return bccContents.message() + "\n" + prettyPrint(bcc.get());
}
@@ -859,8 +860,8 @@
return "AuthenticatedRequest SignedData must be an Array.";
}
- // DICE chain is [ pubkey, + DiceChainEntry ]. Its format is the same as BCC from RKP v1-2.
- auto diceContents = validateBcc(diceCertChain);
+ // DICE chain is [ pubkey, + DiceChainEntry ].
+ auto diceContents = validateBcc(diceCertChain, hwtrust::DiceChain::Kind::kAuthenticatedMessage);
if (!diceContents) {
return diceContents.message() + "\n" + prettyPrint(diceCertChain);
}
diff --git a/security/rkp/aidl/aidl_api/android.hardware.security.rkp/2/.hash b/security/rkp/aidl/aidl_api/android.hardware.security.rkp/2/.hash
index 8700d33..4b3b2a6 100644
--- a/security/rkp/aidl/aidl_api/android.hardware.security.rkp/2/.hash
+++ b/security/rkp/aidl/aidl_api/android.hardware.security.rkp/2/.hash
@@ -1 +1,2 @@
+207c9f218b9b9e4e74ff5232eb16511eca9d7d2e
c8d34e56ae0807b61f028019622d8b60a37e0a8b
diff --git a/security/rkp/aidl/android/hardware/security/keymint/DeviceInfo.aidl b/security/rkp/aidl/android/hardware/security/keymint/DeviceInfo.aidl
index f0af619..8456148 100644
--- a/security/rkp/aidl/android/hardware/security/keymint/DeviceInfo.aidl
+++ b/security/rkp/aidl/android/hardware/security/keymint/DeviceInfo.aidl
@@ -17,11 +17,11 @@
package android.hardware.security.keymint;
/**
- * DeviceInfo contains information about the device that's fed in as AAD in the signature of the
- * device private key over the MAC key used for the bundle of public keys. These values are intended
- * to be checked by the server to verify that the certificate signing request crafted by
- * an IRemotelyProvisionedComponent HAL instance is coming from the expected device based
- * on values initially uploaded during device manufacture in the factory.
+ * DeviceInfo contains information about the device that's signed by the
+ * IRemotelyProvisionedComponent HAL. These values are intended to be checked by the server to
+ * verify that the certificate signing request crafted by an IRemotelyProvisionedComponent HAL
+ * instance is coming from the expected device based on values initially uploaded during device
+ * manufacture in the factory.
* @hide
*/
@VintfStability
@@ -31,6 +31,11 @@
* canonicalized according to the specification in RFC 7049. The ordering presented here is
* non-canonical to group similar entries semantically.
*
+ * The DeviceInfo has changed across versions 1, 2, and 3 of the HAL. All versions of the
+ * DeviceInfo CDDL are described as follows. Please refer to the CDDL structure version
+ * that corresponds to the HAL version you are working with:
+ *
+ * Version 3, introduced in Android 14:
* DeviceInfo = {
* "brand" : tstr,
* "manufacturer" : tstr,
@@ -43,13 +48,63 @@
* ? "os_version" : tstr, ; Same as
* ; android.os.Build.VERSION.release
* ; Not optional for TEE.
- * "system_patch_level" : uint, ; YYYYMMDD
- * "boot_patch_level" : uint, ; YYYYMMDD
- * "vendor_patch_level" : uint, ; YYYYMMDD
+ * "system_patch_level" : uint, ; YYYYMM, must match KeyMint OS_PATCHLEVEL
+ * "boot_patch_level" : uint, ; YYYYMMDD, must match KeyMint BOOT_PATCHLEVEL
+ * "vendor_patch_level" : uint, ; YYYYMMDD, must match KeyMint VENDOR_PATCHLEVEL
* "security_level" : "tee" / "strongbox",
* "fused": 1 / 0, ; 1 if secure boot is enforced for the processor that the IRPC
* ; implementation is contained in. 0 otherwise.
* }
+ *
+ * ---------------------------------------------------------------------------------------------
+ *
+ * Version 2, introduced in Android 13:
+ * DeviceInfo = {
+ * "brand" : tstr,
+ * "manufacturer" : tstr,
+ * "product" : tstr,
+ * "model" : tstr,
+ * "device" : tstr,
+ * "vb_state" : "green" / "yellow" / "orange", ; Taken from the AVB values
+ * "bootloader_state" : "locked" / "unlocked", ; Taken from the AVB values
+ * "vbmeta_digest": bstr, ; Taken from the AVB values
+ * ? "os_version" : tstr, ; Same as
+ * ; android.os.Build.VERSION.release
+ * ; Not optional for TEE.
+ * "system_patch_level" : uint, ; YYYYMM, must match KeyMint OS_PATCHLEVEL
+ * "boot_patch_level" : uint, ; YYYYMMDD, must match KeyMint BOOT_PATCHLEVEL
+ * "vendor_patch_level" : uint, ; YYYYMMDD, must match KeyMint VENDOR_PATCHLEVEL
+ * "version" : 2, ; The CDDL schema version.
+ * "security_level" : "tee" / "strongbox",
+ * "fused": 1 / 0, ; 1 if secure boot is enforced for the processor that the IRPC
+ * ; implementation is contained in. 0 otherwise.
+ *
+ * ---------------------------------------------------------------------------------------------
+ *
+ * Version 1, introduced in Android 12:
+ * DeviceInfo = {
+ * ? "brand" : tstr,
+ * ? "manufacturer" : tstr,
+ * ? "product" : tstr,
+ * ? "model" : tstr,
+ * ? "board" : tstr,
+ * ? "vb_state" : "green" / "yellow" / "orange", ; Taken from the AVB values
+ * ? "bootloader_state" : "locked" / "unlocked", ; Taken from the AVB values
+ * ? "vbmeta_digest": bstr, ; Taken from the AVB values
+ * ? "os_version" : tstr, ; Same as
+ * ; android.os.Build.VERSION.release
+ * ? "system_patch_level" : uint, ; YYYYMM, must match KeyMint OS_PATCHLEVEL
+ * ? "boot_patch_level" : uint, ; YYYYMMDD, must match KeyMint BOOT_PATCHLEVEL
+ * ? "vendor_patch_level" : uint, ; YYYYMMDD, must match KeyMint VENDOR_PATCHLEVEL
+ * "version" : 1, ; The CDDL schema version.
+ * "security_level" : "tee" / "strongbox"
+ * "att_id_state": "locked" / "open", ; Attestation IDs State. If "locked", this
+ * ; indicates a device's attestable IDs are
+ * ; factory-locked and immutable. If "open",
+ * ; this indicates the device is still in a
+ * ; provisionable state and the attestable IDs
+ * ; are not yet frozen.
+ * }
*/
byte[] deviceInfo;
}
diff --git a/sensors/aidl/convert/convert.cpp b/sensors/aidl/convert/convert.cpp
index abd4d55..2dc7a17 100644
--- a/sensors/aidl/convert/convert.cpp
+++ b/sensors/aidl/convert/convert.cpp
@@ -462,7 +462,6 @@
limitedAxesImuUncal.z = src.limited_axes_imu_uncalibrated.z_uncalib;
limitedAxesImuUncal.xBias = src.limited_axes_imu_uncalibrated.x_bias;
limitedAxesImuUncal.yBias = src.limited_axes_imu_uncalibrated.y_bias;
- limitedAxesImuUncal.yBias = src.limited_axes_imu_uncalibrated.y_bias;
limitedAxesImuUncal.zBias = src.limited_axes_imu_uncalibrated.z_bias;
limitedAxesImuUncal.xSupported = src.limited_axes_imu_uncalibrated.x_supported;
limitedAxesImuUncal.ySupported = src.limited_axes_imu_uncalibrated.y_supported;
diff --git a/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp b/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp
index ad58e21..618acbb 100644
--- a/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp
+++ b/sensors/aidl/vts/VtsAidlHalSensorsTargetTest.cpp
@@ -98,6 +98,7 @@
CHECK_TYPE_STRING_FOR_SENSOR_TYPE(TILT_DETECTOR);
CHECK_TYPE_STRING_FOR_SENSOR_TYPE(WAKE_GESTURE);
CHECK_TYPE_STRING_FOR_SENSOR_TYPE(WRIST_TILT_GESTURE);
+ CHECK_TYPE_STRING_FOR_SENSOR_TYPE(HINGE_ANGLE);
default:
FAIL() << "Type " << static_cast<int>(type)
<< " in android defined range is not checked, "
diff --git a/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp b/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp
index a0bb67a..d8e292a 100644
--- a/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp
+++ b/sensors/common/default/2.X/multihal/tests/fake_subhal/Sensor.cpp
@@ -76,6 +76,7 @@
static_cast<int64_t>(mSensorInfo.minDelay) * 1000,
static_cast<int64_t>(mSensorInfo.maxDelay) * 1000);
+ std::unique_lock<std::mutex> lock(mRunMutex);
if (mSamplingPeriodNs != samplingPeriodNs) {
mSamplingPeriodNs = samplingPeriodNs;
// Wake up the 'run' thread to check if a new event should be generated now
diff --git a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h
index 7e22b19..aa6e881 100644
--- a/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h
+++ b/sensors/common/vts/2_X/VtsHalSensorsV2_XTargetTest.h
@@ -559,6 +559,11 @@
}
TEST_P(SensorsHidlTest, CleanupConnectionsOnInitialize) {
+ if (getSensorsList().size() == 0) {
+ // No sensors
+ return;
+ }
+
activateAllSensors(true);
// Verify that events are received
diff --git a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp
index 05cc8e0..835fbfa 100644
--- a/thermal/aidl/vts/VtsHalThermalTargetTest.cpp
+++ b/thermal/aidl/vts/VtsHalThermalTargetTest.cpp
@@ -134,7 +134,6 @@
// Expect to succeed with different callback
status = mThermal->registerThermalChangedCallback(localThermalCallback);
ASSERT_TRUE(status.isOk()) << status.getMessage();
- ASSERT_TRUE(localThermalCallback->waitForCallback(200ms));
// Remove the local callback
status = mThermal->unregisterThermalChangedCallback(localThermalCallback);
ASSERT_TRUE(status.isOk()) << status.getMessage();
@@ -158,7 +157,6 @@
status = mThermal->registerThermalChangedCallbackWithType(localThermalCallback,
TemperatureType::SKIN);
ASSERT_TRUE(status.isOk()) << status.getMessage();
- ASSERT_TRUE(localThermalCallback->waitForCallback(200ms));
// Remove the local callback
status = mThermal->unregisterThermalChangedCallback(localThermalCallback);
ASSERT_TRUE(status.isOk()) << status.getMessage();
diff --git a/tv/input/aidl/aidl_api/android.hardware.tv.input/current/android/hardware/tv/input/TvMessageEventType.aidl b/tv/input/aidl/aidl_api/android.hardware.tv.input/current/android/hardware/tv/input/TvMessageEventType.aidl
index a033903..3006198 100644
--- a/tv/input/aidl/aidl_api/android.hardware.tv.input/current/android/hardware/tv/input/TvMessageEventType.aidl
+++ b/tv/input/aidl/aidl_api/android.hardware.tv.input/current/android/hardware/tv/input/TvMessageEventType.aidl
@@ -36,5 +36,5 @@
enum TvMessageEventType {
WATERMARK = 1,
CLOSED_CAPTION = 2,
- OTHER = 3,
+ OTHER = 1000,
}
diff --git a/tv/input/aidl/android/hardware/tv/input/TvMessageEventType.aidl b/tv/input/aidl/android/hardware/tv/input/TvMessageEventType.aidl
index 5a5f472..518c7fc 100644
--- a/tv/input/aidl/android/hardware/tv/input/TvMessageEventType.aidl
+++ b/tv/input/aidl/android/hardware/tv/input/TvMessageEventType.aidl
@@ -21,5 +21,5 @@
enum TvMessageEventType {
WATERMARK = 1,
CLOSED_CAPTION = 2,
- OTHER = 3,
+ OTHER = 1000,
}
diff --git a/tv/tuner/1.0/vts/functional/DvrTests.cpp b/tv/tuner/1.0/vts/functional/DvrTests.cpp
index 83f9858..cab5867 100644
--- a/tv/tuner/1.0/vts/functional/DvrTests.cpp
+++ b/tv/tuner/1.0/vts/functional/DvrTests.cpp
@@ -203,7 +203,6 @@
void DvrCallback::stopRecordThread() {
mKeepReadingRecordFMQ = false;
mRecordThreadRunning = false;
- android::Mutex::Autolock autoLock(mRecordThreadLock);
}
AssertionResult DvrTests::openDvrInDemux(DvrType type, uint32_t bufferSize) {
diff --git a/tv/tuner/config/TunerTestingConfigReaderV1_0.h b/tv/tuner/config/TunerTestingConfigReaderV1_0.h
index d049b07..fb76de7 100644
--- a/tv/tuner/config/TunerTestingConfigReaderV1_0.h
+++ b/tv/tuner/config/TunerTestingConfigReaderV1_0.h
@@ -65,6 +65,7 @@
using android::hardware::tv::tuner::V1_0::LnbVoltage;
using android::hardware::tv::tuner::V1_0::PlaybackSettings;
using android::hardware::tv::tuner::V1_0::RecordSettings;
+using android::hardware::tv::tuner::V1_0::FrontendAtscSettings;
const string emptyHardwareId = "";
@@ -241,6 +242,7 @@
break;
case FrontendTypeEnum::ATSC:
type = FrontendType::ATSC;
+ frontendMap[id].settings.atsc(readAtscFrontendSettings(feConfig));
break;
case FrontendTypeEnum::ATSC3:
type = FrontendType::ATSC3;
@@ -627,6 +629,13 @@
return dvbsSettings;
}
+ static FrontendAtscSettings readAtscFrontendSettings(Frontend feConfig) {
+ FrontendAtscSettings atscSettings{
+ .frequency = (uint32_t)feConfig.getFrequency(),
+ };
+ return atscSettings;
+ }
+
static bool readFilterTypeAndSettings(Filter filterConfig, DemuxFilterType& type,
DemuxFilterSettings& settings) {
auto mainType = filterConfig.getMainType();
diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl
index d1f1256..a438cbe 100644
--- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl
+++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl
@@ -35,5 +35,6 @@
@Backing(type="int") @VintfStability
enum UwbVendorReasonCodes {
REASON_ERROR_INVALID_CHANNEL_WITH_AOA = 128,
- REASON_REGULATION_UWB_OFF = 129,
+ REASON_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT = 129,
+ REASON_REGULATION_UWB_OFF = 130,
}
diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl
index 768ef8c..28cf7fe 100644
--- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl
+++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl
@@ -36,5 +36,6 @@
enum UwbVendorStatusCodes {
STATUS_ERROR_CCC_SE_BUSY = 80,
STATUS_ERROR_CCC_LIFECYCLE = 81,
- STATUS_REGULATION_UWB_OFF = 82,
+ STATUS_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT = 82,
+ STATUS_REGULATION_UWB_OFF = 83,
}
diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl
index a64a188..4207574 100644
--- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl
+++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorReasonCodes.aidl
@@ -31,6 +31,8 @@
/** Fira specific */
/** The channel requested is not available for AoA */
REASON_ERROR_INVALID_CHANNEL_WITH_AOA = 0x80,
+ /** UWB stopped caused by other session conflict */
+ REASON_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT = 0x81,
/** UWB has been disabled (eg: country code change leads to UWB unsupported) */
- REASON_REGULATION_UWB_OFF = 0x81,
+ REASON_REGULATION_UWB_OFF = 0x82,
}
diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl
index f1eea9d..f952334 100644
--- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl
+++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorStatusCodes.aidl
@@ -33,6 +33,8 @@
STATUS_ERROR_CCC_SE_BUSY = 0x50,
/** CCC Lifecycle error */
STATUS_ERROR_CCC_LIFECYCLE = 0x51,
+ /** Other session conflict */
+ STATUS_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT = 0x52,
/** UWB Regulation Off */
- STATUS_REGULATION_UWB_OFF = 0x52,
+ STATUS_REGULATION_UWB_OFF = 0x53,
}
diff --git a/vibrator/aidl/default/example_java_client/Android.bp b/vibrator/aidl/default/example_java_client/Android.bp
new file mode 100644
index 0000000..17a649c
--- /dev/null
+++ b/vibrator/aidl/default/example_java_client/Android.bp
@@ -0,0 +1,54 @@
+package {
+ // See: http://go/android-license-faq
+ // A large-scale-change added 'default_applicable_licenses' to import
+ // all of the 'license_kinds' from "hardware_interfaces_license"
+ // to get the below license kinds:
+ // SPDX-license-identifier-Apache-2.0
+ default_applicable_licenses: ["hardware_interfaces_license"],
+}
+
+cc_library {
+ name: "libexample_vib_getter",
+ srcs: ["getter.cpp"],
+ product_available: true,
+ vendor_available: true,
+ shared_libs: [
+ "liblog",
+ "libbinder_ndk",
+ ],
+ header_libs: ["jni_headers"],
+ stl: "c++_shared",
+ visibility: [":__subpackages__"],
+}
+
+android_app {
+ name: "ExampleVibratorJavaVendorClient",
+ vendor: true,
+ static_libs: ["android.hardware.vibrator-V1-java"],
+ jni_libs: ["libexample_vib_getter"],
+ use_embedded_native_libs: true,
+ jarjar_rules: "jarjar.txt",
+ stl: "c++_shared",
+ srcs: ["example/vib/MyActivity.java"],
+ sdk_version: "system_current",
+ visibility: [":__subpackages__"],
+}
+
+android_app {
+ name: "ExampleVibratorJavaProductClient",
+ product_specific: true,
+ static_libs: ["android.hardware.vibrator-V1-java"],
+ jni_libs: ["libexample_vib_getter"],
+ use_embedded_native_libs: true,
+ jarjar_rules: "jarjar.txt",
+ stl: "c++_shared",
+ srcs: ["example/vib/MyActivity.java"],
+ sdk_version: "system_current",
+ visibility: [":__subpackages__"],
+ // If PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE is not true, product apps
+ // may use unstable APIs. jni_uses_platform_apis must set to use the
+ // non-SDK jni libs in this case.
+ // This is not required if PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE is
+ // set to true.
+ jni_uses_platform_apis: true,
+}
diff --git a/vibrator/aidl/default/example_vendor_java_client/AndroidManifest.xml b/vibrator/aidl/default/example_java_client/AndroidManifest.xml
similarity index 100%
rename from vibrator/aidl/default/example_vendor_java_client/AndroidManifest.xml
rename to vibrator/aidl/default/example_java_client/AndroidManifest.xml
diff --git a/vibrator/aidl/default/example_vendor_java_client/example/vib/MyActivity.java b/vibrator/aidl/default/example_java_client/example/vib/MyActivity.java
similarity index 100%
rename from vibrator/aidl/default/example_vendor_java_client/example/vib/MyActivity.java
rename to vibrator/aidl/default/example_java_client/example/vib/MyActivity.java
diff --git a/vibrator/aidl/default/example_vendor_java_client/getter.cpp b/vibrator/aidl/default/example_java_client/getter.cpp
similarity index 100%
rename from vibrator/aidl/default/example_vendor_java_client/getter.cpp
rename to vibrator/aidl/default/example_java_client/getter.cpp
diff --git a/vibrator/aidl/default/example_vendor_java_client/jarjar.txt b/vibrator/aidl/default/example_java_client/jarjar.txt
similarity index 100%
rename from vibrator/aidl/default/example_vendor_java_client/jarjar.txt
rename to vibrator/aidl/default/example_java_client/jarjar.txt
diff --git a/vibrator/aidl/default/example_vendor_java_client/Android.bp b/vibrator/aidl/default/example_vendor_java_client/Android.bp
deleted file mode 100644
index f615cb1..0000000
--- a/vibrator/aidl/default/example_vendor_java_client/Android.bp
+++ /dev/null
@@ -1,34 +0,0 @@
-package {
- // See: http://go/android-license-faq
- // A large-scale-change added 'default_applicable_licenses' to import
- // all of the 'license_kinds' from "hardware_interfaces_license"
- // to get the below license kinds:
- // SPDX-license-identifier-Apache-2.0
- default_applicable_licenses: ["hardware_interfaces_license"],
-}
-
-cc_library {
- name: "libexample_vib_getter",
- srcs: ["getter.cpp"],
- vendor: true,
- shared_libs: [
- "liblog",
- "libbinder_ndk",
- ],
- header_libs: ["jni_headers"],
- stl: "c++_shared",
- visibility: [":__subpackages__"],
-}
-
-android_app {
- name: "ExampleVibratorJavaVendorClient",
- privileged: true,
- vendor: true,
- static_libs: ["android.hardware.vibrator-V1-java"],
- jni_libs: ["libexample_vib_getter"],
- jarjar_rules: "jarjar.txt",
- stl: "c++_shared",
- srcs: ["example/vib/MyActivity.java"],
- sdk_version: "system_current",
- visibility: [":__subpackages__"],
-}
diff --git a/wifi/aidl/Android.bp b/wifi/aidl/Android.bp
index c0ca667..0c8572c 100644
--- a/wifi/aidl/Android.bp
+++ b/wifi/aidl/Android.bp
@@ -37,6 +37,8 @@
],
min_sdk_version: "30",
lint: {
+ // Disable linter to avoid error about fixed size arrays.
+ // Interface will only be accessed on devices >= U.
enabled: false,
},
},
diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/AfcChannelAllowance.aidl
similarity index 85%
rename from automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.aidl
rename to wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/AfcChannelAllowance.aidl
index 925f447..4d3cd6e 100644
--- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/DriverAttentionMonitoringState.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/AfcChannelAllowance.aidl
@@ -31,10 +31,10 @@
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
-package android.hardware.automotive.vehicle;
-@Backing(type="int") @VintfStability
-enum DriverAttentionMonitoringState {
- OTHER = 0,
- DISTRACTED = 1,
- NOT_DISTRACTED = 2,
+package android.hardware.wifi;
+@VintfStability
+parcelable AfcChannelAllowance {
+ android.hardware.wifi.AvailableAfcFrequencyInfo[] availableAfcFrequencyInfos;
+ android.hardware.wifi.AvailableAfcChannelInfo[] availableAfcChannelInfos;
+ long availabilityExpireTimeMs;
}
diff --git a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/AvailableAfcChannelInfo.aidl
similarity index 90%
rename from automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.aidl
rename to wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/AvailableAfcChannelInfo.aidl
index 758b251..d238640 100644
--- a/automotive/vehicle/aidl_property/aidl_api/android.hardware.automotive.vehicle.property/current/android/hardware/automotive/vehicle/DriverAttentionMonitoringWarning.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/AvailableAfcChannelInfo.aidl
@@ -31,10 +31,10 @@
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
-package android.hardware.automotive.vehicle;
-@Backing(type="int") @VintfStability
-enum DriverAttentionMonitoringWarning {
- OTHER = 0,
- NO_WARNING = 1,
- WARNING = 2,
+package android.hardware.wifi;
+@VintfStability
+parcelable AvailableAfcChannelInfo {
+ int globalOperatingClass;
+ int channelCfi;
+ int maxEirpDbm;
}
diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl
index a102b97..e71dde4 100644
--- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiApIface.aidl
@@ -38,7 +38,6 @@
String[] getBridgedInstances();
byte[6] getFactoryMacAddress();
void setCountryCode(in byte[2] code);
- int[] getValidFrequenciesForBand(in android.hardware.wifi.WifiBand band);
void resetToFactoryMacAddress();
void setMacAddress(in byte[6] mac);
}
diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl
index 23f4030..4ea2081 100644
--- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiChip.aidl
@@ -47,7 +47,7 @@
@PropagateAllowBlocking android.hardware.wifi.IWifiApIface getApIface(in String ifname);
String[] getApIfaceNames();
android.hardware.wifi.IWifiChip.ChipMode[] getAvailableModes();
- int getCapabilities();
+ int getFeatureSet();
android.hardware.wifi.WifiDebugHostWakeReasonStats getDebugHostWakeReasonStats();
android.hardware.wifi.WifiDebugRingBufferStatus[] getDebugRingBuffersStatus();
int getId();
@@ -61,7 +61,7 @@
android.hardware.wifi.WifiRadioCombination[] getSupportedRadioCombinations();
android.hardware.wifi.WifiChipCapabilities getWifiChipCapabilities();
android.hardware.wifi.WifiUsableChannel[] getUsableChannels(in android.hardware.wifi.WifiBand band, in int ifaceModeMask, in int filterMask);
- void setAfcChannelAllowance(in android.hardware.wifi.AvailableAfcFrequencyInfo[] availableAfcFrequencyInfo);
+ void setAfcChannelAllowance(in android.hardware.wifi.AfcChannelAllowance afcChannelAllowance);
void registerEventCallback(in android.hardware.wifi.IWifiChipEventCallback callback);
void removeApIface(in String ifname);
void removeIfaceInstanceFromBridgedApIface(in String brIfaceName, in String ifaceInstanceName);
@@ -85,7 +85,7 @@
void setMloMode(in android.hardware.wifi.IWifiChip.ChipMloMode mode);
const int NO_POWER_CAP_CONSTANT = 0x7FFFFFFF;
@Backing(type="int") @VintfStability
- enum ChipCapabilityMask {
+ enum FeatureSetMask {
SET_TX_POWER_LIMIT = (1 << 0) /* 1 */,
D2D_RTT = (1 << 1) /* 2 */,
D2AP_RTT = (1 << 2) /* 4 */,
diff --git a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl
index a7f2081..923deff 100644
--- a/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl
+++ b/wifi/aidl/aidl_api/android.hardware.wifi/current/android/hardware/wifi/IWifiStaIface.aidl
@@ -41,13 +41,12 @@
void enableNdOffload(in boolean enable);
android.hardware.wifi.StaApfPacketFilterCapabilities getApfPacketFilterCapabilities();
android.hardware.wifi.StaBackgroundScanCapabilities getBackgroundScanCapabilities();
- int getCapabilities();
+ int getFeatureSet();
android.hardware.wifi.WifiDebugRxPacketFateReport[] getDebugRxPacketFates();
android.hardware.wifi.WifiDebugTxPacketFateReport[] getDebugTxPacketFates();
byte[6] getFactoryMacAddress();
android.hardware.wifi.StaLinkLayerStats getLinkLayerStats();
android.hardware.wifi.StaRoamingCapabilities getRoamingCapabilities();
- int[] getValidFrequenciesForBand(in android.hardware.wifi.WifiBand band);
void installApfPacketFilter(in byte[] program);
byte[] readApfPacketFilterData();
void registerEventCallback(in android.hardware.wifi.IWifiStaIfaceEventCallback callback);
@@ -63,7 +62,7 @@
void stopSendingKeepAlivePackets(in int cmdId);
void setDtimMultiplier(in int multiplier);
@Backing(type="int") @VintfStability
- enum StaIfaceCapabilityMask {
+ enum FeatureSetMask {
APF = (1 << 0) /* 1 */,
BACKGROUND_SCAN = (1 << 1) /* 2 */,
LINK_LAYER_STATS = (1 << 2) /* 4 */,
diff --git a/wifi/aidl/android/hardware/wifi/AfcChannelAllowance.aidl b/wifi/aidl/android/hardware/wifi/AfcChannelAllowance.aidl
new file mode 100644
index 0000000..289383c
--- /dev/null
+++ b/wifi/aidl/android/hardware/wifi/AfcChannelAllowance.aidl
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+package android.hardware.wifi;
+
+import android.hardware.wifi.AvailableAfcChannelInfo;
+import android.hardware.wifi.AvailableAfcFrequencyInfo;
+
+/**
+ * Defines the maximum permissible power spectral density to support 6Ghz with standard power for
+ * AFC. The maximum power can be either defined based on frequencies or channel number.
+ *
+ * Note, based on AFC server support, either availableAfcFrequencyInfos or availableAfcChannelInfos
+ * may be empty. If one of them is empty while the other is not, use the non-empty one and ignore
+ * the empty one. If both are empty then it means 6Ghz standard power should not be supported at
+ * all.
+ *
+ * If availableAfcFrequencyInfos is non-empty, set the max permissible power according to the maxPsd
+ * per frequency range, and disallow emmision on 6Ghz frequencies not included in the structure.
+ *
+ * If availableAfcChannelInfos is non-empty, set the max permissible power according to the
+ * maxEirpDbm per channel, and disallow emmision on 6Ghz channels not included in the structure.
+ */
+@VintfStability
+parcelable AfcChannelAllowance {
+ /**
+ * AFC max permissible information queried from AFC server based on frequency.
+ */
+ AvailableAfcFrequencyInfo[] availableAfcFrequencyInfos;
+ /**
+ * AFC max permissible information queried from AFC server on channel number.
+ */
+ AvailableAfcChannelInfo[] availableAfcChannelInfos;
+ /**
+ * The time in UTC at which this information expires, as the difference, measured in
+ * milliseconds between the expiration time and midnight, January 1, 1970 UTC.
+ */
+ long availabilityExpireTimeMs;
+}
diff --git a/wifi/aidl/android/hardware/wifi/AvailableAfcChannelInfo.aidl b/wifi/aidl/android/hardware/wifi/AvailableAfcChannelInfo.aidl
new file mode 100644
index 0000000..398cd12
--- /dev/null
+++ b/wifi/aidl/android/hardware/wifi/AvailableAfcChannelInfo.aidl
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 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.
+ */
+
+package android.hardware.wifi;
+
+/**
+ * Defines the maximum EIRP per channel for supporting 6Ghz standard power for AFC. The format of
+ * the data structure is derived from the Wi-Fi Alliance AFC System to AFC Device Interface
+ * Specification: AvailableChannelInfo object.
+ */
+@VintfStability
+parcelable AvailableAfcChannelInfo {
+ /**
+ * The global operating class used to define the channel center frequency indices
+ * and operating bandwidth.
+ */
+ int globalOperatingClass;
+
+ /**
+ * The channel center frequency index.
+ */
+ int channelCfi;
+
+ /**
+ * The maximum permissible EIRP in units of dBm available for the channel
+ * specified by channelCfi. In addition, in any portion of the channel, the conducted PSD plus
+ * the maximum antenna gain cannot exceed the maxEirp divided by the channel width defined by
+ * the globalOperatingClass.
+ */
+ int maxEirpDbm;
+}
diff --git a/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl b/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl
index 71ea385..b14a800 100644
--- a/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl
+++ b/wifi/aidl/android/hardware/wifi/IWifiApIface.aidl
@@ -68,20 +68,6 @@
void setCountryCode(in byte[2] code);
/**
- * Used to query the list of valid frequencies (depending on country code set)
- * for the provided band.
- *
- * @param band Band for which the frequency list is being generated.
- * @return Vector of valid frequencies for the provided band.
- * @throws ServiceSpecificException with one of the following values:
- * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
- * |WifiStatusCode.ERROR_NOT_SUPPORTED|,
- * |WifiStatusCode.ERROR_NOT_AVAILABLE|,
- * |WifiStatusCode.ERROR_UNKNOWN|
- */
- int[] getValidFrequenciesForBand(in WifiBand band);
-
- /**
* Reset all of the AP interfaces' MAC address to the factory MAC address.
*
* @throws ServiceSpecificException with one of the following values:
diff --git a/wifi/aidl/android/hardware/wifi/IWifiChip.aidl b/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
index 1710f63..c1caa7e 100644
--- a/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
+++ b/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
@@ -16,7 +16,7 @@
package android.hardware.wifi;
-import android.hardware.wifi.AvailableAfcFrequencyInfo;
+import android.hardware.wifi.AfcChannelAllowance;
import android.hardware.wifi.IWifiApIface;
import android.hardware.wifi.IWifiChipEventCallback;
import android.hardware.wifi.IWifiNanIface;
@@ -44,7 +44,7 @@
*/
@VintfStability
@Backing(type="int")
- enum ChipCapabilityMask {
+ enum FeatureSetMask {
/**
* Set/Reset Tx Power limits.
*/
@@ -582,15 +582,15 @@
ChipMode[] getAvailableModes();
/**
- * Get the capabilities supported by this chip.
+ * Get the features supported by this chip.
*
- * @return Bitset of |ChipCapabilityMask| values.
+ * @return Bitset of |FeatureSetMask| values.
* @throws ServiceSpecificException with one of the following values:
* |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|,
* |WifiStatusCode.ERROR_NOT_AVAILABLE|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
- int getCapabilities();
+ int getFeatureSet();
/**
* API to retrieve the wifi wake up reason stats for debugging.
@@ -811,16 +811,12 @@
in WifiBand band, in int ifaceModeMask, in int filterMask);
/*
- * Set the max power level the chip is allowed to transmit on for 6Ghz AFC
- * using an array of AvailableAfcFrequencyInfo. The max power for
- * frequencies not included in the input frequency ranges will be reset to
- * their respective default values.
- * @param availableAfcFrequencyInfo The list of frequency ranges and
- * corresponding max allowed power.
+ * Set the max power level the chip is allowed to transmit on for 6Ghz AFC.
+ * @param afcChannelAllowance Specifies the power limitations for 6Ghz AFC.
* @throws ServiceSpecificException with one of the following values:
* |WifiStatusCode.ERROR_NOT_SUPPORTED|
*/
- void setAfcChannelAllowance(in AvailableAfcFrequencyInfo[] availableAfcFrequencyInfo);
+ void setAfcChannelAllowance(in AfcChannelAllowance afcChannelAllowance);
/**
* Requests notifications of significant events on this chip. Multiple calls
diff --git a/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl b/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl
index 8e9a06d..2c81984 100644
--- a/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl
+++ b/wifi/aidl/android/hardware/wifi/IWifiStaIface.aidl
@@ -38,7 +38,7 @@
*/
@VintfStability
@Backing(type="int")
- enum StaIfaceCapabilityMask {
+ enum FeatureSetMask {
/**
* Support for APF APIs. APF (Android Packet Filter) is a
* BPF-like packet filtering bytecode executed by the firmware.
@@ -190,15 +190,15 @@
StaBackgroundScanCapabilities getBackgroundScanCapabilities();
/**
- * Get the capabilities supported by this STA iface.
+ * Get the features supported by this STA iface.
*
- * @return Bitset of |StaIfaceCapabilityMask| values.
+ * @return Bitset of |FeatureSetMask| values.
* @throws ServiceSpecificException with one of the following values:
* |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
* |WifiStatusCode.ERROR_NOT_AVAILABLE|,
* |WifiStatusCode.ERROR_UNKNOWN|
*/
- int getCapabilities();
+ int getFeatureSet();
/**
* API to retrieve the fates of inbound packets.
@@ -288,22 +288,6 @@
StaRoamingCapabilities getRoamingCapabilities();
/**
- * Used to query the list of valid frequencies (depending on the country
- * code set) for the provided band. These channels may be specified in the
- * |BackgroundScanBucketParameters.frequenciesInMhz| for a background scan
- * request.
- *
- * @param band Band for which the frequency list is being generated.
- * @return Vector of valid frequencies for the provided band.
- * @throws ServiceSpecificException with one of the following values:
- * |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
- * |WifiStatusCode.ERROR_NOT_SUPPORTED|,
- * |WifiStatusCode.ERROR_NOT_AVAILABLE|,
- * |WifiStatusCode.ERROR_UNKNOWN|
- */
- int[] getValidFrequenciesForBand(in WifiBand band);
-
- /**
* Installs an APF program on this iface, replacing an existing
* program if present.
* Must fail if |StaIfaceCapabilityMask.APF| is not set.
diff --git a/wifi/aidl/default/aidl_struct_util.cpp b/wifi/aidl/default/aidl_struct_util.cpp
index 4acdd2f..7bc2eeb 100644
--- a/wifi/aidl/default/aidl_struct_util.cpp
+++ b/wifi/aidl/default/aidl_struct_util.cpp
@@ -41,68 +41,67 @@
return std::vector<int32_t>(in.begin(), in.end());
}
-IWifiChip::ChipCapabilityMask convertLegacyFeatureToAidlChipCapability(uint64_t feature) {
+IWifiChip::FeatureSetMask convertLegacyChipFeatureToAidl(uint64_t feature) {
switch (feature) {
case WIFI_FEATURE_SET_TX_POWER_LIMIT:
- return IWifiChip::ChipCapabilityMask::SET_TX_POWER_LIMIT;
+ return IWifiChip::FeatureSetMask::SET_TX_POWER_LIMIT;
case WIFI_FEATURE_USE_BODY_HEAD_SAR:
- return IWifiChip::ChipCapabilityMask::USE_BODY_HEAD_SAR;
+ return IWifiChip::FeatureSetMask::USE_BODY_HEAD_SAR;
case WIFI_FEATURE_D2D_RTT:
- return IWifiChip::ChipCapabilityMask::D2D_RTT;
+ return IWifiChip::FeatureSetMask::D2D_RTT;
case WIFI_FEATURE_D2AP_RTT:
- return IWifiChip::ChipCapabilityMask::D2AP_RTT;
+ return IWifiChip::FeatureSetMask::D2AP_RTT;
case WIFI_FEATURE_INFRA_60G:
- return IWifiChip::ChipCapabilityMask::WIGIG;
+ return IWifiChip::FeatureSetMask::WIGIG;
case WIFI_FEATURE_SET_LATENCY_MODE:
- return IWifiChip::ChipCapabilityMask::SET_LATENCY_MODE;
+ return IWifiChip::FeatureSetMask::SET_LATENCY_MODE;
case WIFI_FEATURE_P2P_RAND_MAC:
- return IWifiChip::ChipCapabilityMask::P2P_RAND_MAC;
+ return IWifiChip::FeatureSetMask::P2P_RAND_MAC;
case WIFI_FEATURE_AFC_CHANNEL:
- return IWifiChip::ChipCapabilityMask::SET_AFC_CHANNEL_ALLOWANCE;
+ return IWifiChip::FeatureSetMask::SET_AFC_CHANNEL_ALLOWANCE;
};
CHECK(false) << "Unknown legacy feature: " << feature;
return {};
}
-IWifiStaIface::StaIfaceCapabilityMask convertLegacyFeatureToAidlStaIfaceCapability(
- uint64_t feature) {
+IWifiStaIface::FeatureSetMask convertLegacyStaIfaceFeatureToAidl(uint64_t feature) {
switch (feature) {
case WIFI_FEATURE_GSCAN:
- return IWifiStaIface::StaIfaceCapabilityMask::BACKGROUND_SCAN;
+ return IWifiStaIface::FeatureSetMask::BACKGROUND_SCAN;
case WIFI_FEATURE_LINK_LAYER_STATS:
- return IWifiStaIface::StaIfaceCapabilityMask::LINK_LAYER_STATS;
+ return IWifiStaIface::FeatureSetMask::LINK_LAYER_STATS;
case WIFI_FEATURE_RSSI_MONITOR:
- return IWifiStaIface::StaIfaceCapabilityMask::RSSI_MONITOR;
+ return IWifiStaIface::FeatureSetMask::RSSI_MONITOR;
case WIFI_FEATURE_CONTROL_ROAMING:
- return IWifiStaIface::StaIfaceCapabilityMask::CONTROL_ROAMING;
+ return IWifiStaIface::FeatureSetMask::CONTROL_ROAMING;
case WIFI_FEATURE_IE_WHITELIST:
- return IWifiStaIface::StaIfaceCapabilityMask::PROBE_IE_ALLOWLIST;
+ return IWifiStaIface::FeatureSetMask::PROBE_IE_ALLOWLIST;
case WIFI_FEATURE_SCAN_RAND:
- return IWifiStaIface::StaIfaceCapabilityMask::SCAN_RAND;
+ return IWifiStaIface::FeatureSetMask::SCAN_RAND;
case WIFI_FEATURE_INFRA_5G:
- return IWifiStaIface::StaIfaceCapabilityMask::STA_5G;
+ return IWifiStaIface::FeatureSetMask::STA_5G;
case WIFI_FEATURE_HOTSPOT:
- return IWifiStaIface::StaIfaceCapabilityMask::HOTSPOT;
+ return IWifiStaIface::FeatureSetMask::HOTSPOT;
case WIFI_FEATURE_PNO:
- return IWifiStaIface::StaIfaceCapabilityMask::PNO;
+ return IWifiStaIface::FeatureSetMask::PNO;
case WIFI_FEATURE_TDLS:
- return IWifiStaIface::StaIfaceCapabilityMask::TDLS;
+ return IWifiStaIface::FeatureSetMask::TDLS;
case WIFI_FEATURE_TDLS_OFFCHANNEL:
- return IWifiStaIface::StaIfaceCapabilityMask::TDLS_OFFCHANNEL;
+ return IWifiStaIface::FeatureSetMask::TDLS_OFFCHANNEL;
case WIFI_FEATURE_CONFIG_NDO:
- return IWifiStaIface::StaIfaceCapabilityMask::ND_OFFLOAD;
+ return IWifiStaIface::FeatureSetMask::ND_OFFLOAD;
case WIFI_FEATURE_MKEEP_ALIVE:
- return IWifiStaIface::StaIfaceCapabilityMask::KEEP_ALIVE;
+ return IWifiStaIface::FeatureSetMask::KEEP_ALIVE;
};
CHECK(false) << "Unknown legacy feature: " << feature;
return {};
}
-bool convertLegacyFeaturesToAidlChipCapabilities(uint64_t legacy_feature_set, uint32_t* aidl_caps) {
- if (!aidl_caps) {
+bool convertLegacyChipFeaturesToAidl(uint64_t legacy_feature_set, uint32_t* aidl_feature_set) {
+ if (!aidl_feature_set) {
return false;
}
- *aidl_caps = {};
+ *aidl_feature_set = 0;
std::vector<uint64_t> features = {WIFI_FEATURE_SET_TX_POWER_LIMIT,
WIFI_FEATURE_USE_BODY_HEAD_SAR,
WIFI_FEATURE_D2D_RTT,
@@ -113,7 +112,7 @@
WIFI_FEATURE_AFC_CHANNEL};
for (const auto feature : features) {
if (feature & legacy_feature_set) {
- *aidl_caps |= static_cast<uint32_t>(convertLegacyFeatureToAidlChipCapability(feature));
+ *aidl_feature_set |= static_cast<uint32_t>(convertLegacyChipFeatureToAidl(feature));
}
}
@@ -449,24 +448,23 @@
return true;
}
-bool convertLegacyFeaturesToAidlStaCapabilities(uint64_t legacy_feature_set, uint32_t* aidl_caps) {
- if (!aidl_caps) {
+bool convertLegacyStaIfaceFeaturesToAidl(uint64_t legacy_feature_set, uint32_t* aidl_feature_set) {
+ if (!aidl_feature_set) {
return false;
}
- *aidl_caps = {};
+ *aidl_feature_set = 0;
for (const auto feature :
{WIFI_FEATURE_GSCAN, WIFI_FEATURE_LINK_LAYER_STATS, WIFI_FEATURE_RSSI_MONITOR,
WIFI_FEATURE_CONTROL_ROAMING, WIFI_FEATURE_IE_WHITELIST, WIFI_FEATURE_SCAN_RAND,
WIFI_FEATURE_INFRA_5G, WIFI_FEATURE_HOTSPOT, WIFI_FEATURE_PNO, WIFI_FEATURE_TDLS,
WIFI_FEATURE_TDLS_OFFCHANNEL, WIFI_FEATURE_CONFIG_NDO, WIFI_FEATURE_MKEEP_ALIVE}) {
if (feature & legacy_feature_set) {
- *aidl_caps |=
- static_cast<uint32_t>(convertLegacyFeatureToAidlStaIfaceCapability(feature));
+ *aidl_feature_set |= static_cast<uint32_t>(convertLegacyStaIfaceFeatureToAidl(feature));
}
}
// There is no flag for this one in the legacy feature set. Adding it to the
// set because all the current devices support it.
- *aidl_caps |= static_cast<uint32_t>(IWifiStaIface::StaIfaceCapabilityMask::APF);
+ *aidl_feature_set |= static_cast<uint32_t>(IWifiStaIface::FeatureSetMask::APF);
return true;
}
diff --git a/wifi/aidl/default/aidl_struct_util.h b/wifi/aidl/default/aidl_struct_util.h
index 9a13672..e4ff963 100644
--- a/wifi/aidl/default/aidl_struct_util.h
+++ b/wifi/aidl/default/aidl_struct_util.h
@@ -40,7 +40,7 @@
namespace aidl_struct_util {
// Chip conversion methods.
-bool convertLegacyFeaturesToAidlChipCapabilities(uint64_t legacy_feature_set, uint32_t* aidl_caps);
+bool convertLegacyChipFeaturesToAidl(uint64_t legacy_feature_set, uint32_t* aidl_feature_set);
bool convertLegacyDebugRingBufferStatusToAidl(
const legacy_hal::wifi_ring_buffer_status& legacy_status,
WifiDebugRingBufferStatus* aidl_status);
@@ -74,7 +74,7 @@
legacy_hal::wifi_iface_concurrency_matrix& legacy_matrix, IWifiChip::ChipMode* chip_mode);
// STA iface conversion methods.
-bool convertLegacyFeaturesToAidlStaCapabilities(uint64_t legacy_feature_set, uint32_t* aidl_caps);
+bool convertLegacyStaIfaceFeaturesToAidl(uint64_t legacy_feature_set, uint32_t* aidl_feature_set);
bool convertLegacyApfCapabilitiesToAidl(const legacy_hal::PacketFilterCapabilities& legacy_caps,
StaApfPacketFilterCapabilities* aidl_caps);
bool convertLegacyGscanCapabilitiesToAidl(const legacy_hal::wifi_gscan_capabilities& legacy_caps,
diff --git a/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp b/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp
index 4bd77ac..5c334f8 100644
--- a/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp
+++ b/wifi/aidl/default/tests/aidl_struct_util_unit_tests.cpp
@@ -658,16 +658,16 @@
}
TEST_F(AidlStructUtilTest, CanConvertLegacyFeaturesToAidl) {
- using AidlChipCaps = IWifiChip::ChipCapabilityMask;
+ using AidlChipCaps = IWifiChip::FeatureSetMask;
- uint32_t aidl_caps;
+ uint32_t aidl_features;
uint32_t legacy_feature_set = WIFI_FEATURE_D2D_RTT | WIFI_FEATURE_SET_LATENCY_MODE;
- ASSERT_TRUE(aidl_struct_util::convertLegacyFeaturesToAidlChipCapabilities(legacy_feature_set,
- &aidl_caps));
+ ASSERT_TRUE(
+ aidl_struct_util::convertLegacyChipFeaturesToAidl(legacy_feature_set, &aidl_features));
EXPECT_EQ((uint32_t)AidlChipCaps::D2D_RTT | (uint32_t)AidlChipCaps::SET_LATENCY_MODE,
- aidl_caps);
+ aidl_features);
}
void insertRadioCombination(legacy_hal::wifi_radio_combination* dst_radio_combination_ptr,
diff --git a/wifi/aidl/default/wifi_ap_iface.cpp b/wifi/aidl/default/wifi_ap_iface.cpp
index 6cd932d..7779750 100644
--- a/wifi/aidl/default/wifi_ap_iface.cpp
+++ b/wifi/aidl/default/wifi_ap_iface.cpp
@@ -64,12 +64,6 @@
&WifiApIface::setCountryCodeInternal, in_code);
}
-ndk::ScopedAStatus WifiApIface::getValidFrequenciesForBand(WifiBand in_band,
- std::vector<int32_t>* _aidl_return) {
- return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
- &WifiApIface::getValidFrequenciesForBandInternal, _aidl_return, in_band);
-}
-
ndk::ScopedAStatus WifiApIface::setMacAddress(const std::array<uint8_t, 6>& in_mac) {
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
&WifiApIface::setMacAddressInternal, in_mac);
@@ -101,18 +95,6 @@
return createWifiStatusFromLegacyError(legacy_status);
}
-std::pair<std::vector<int32_t>, ndk::ScopedAStatus> WifiApIface::getValidFrequenciesForBandInternal(
- WifiBand band) {
- static_assert(sizeof(WifiChannelWidthInMhz) == sizeof(int32_t), "Size mismatch");
- legacy_hal::wifi_error legacy_status;
- std::vector<uint32_t> valid_frequencies;
- std::tie(legacy_status, valid_frequencies) = legacy_hal_.lock()->getValidFrequenciesForBand(
- instances_.size() > 0 ? instances_[0] : ifname_,
- aidl_struct_util::convertAidlWifiBandToLegacy(band));
- return {std::vector<int32_t>(valid_frequencies.begin(), valid_frequencies.end()),
- createWifiStatusFromLegacyError(legacy_status)};
-}
-
ndk::ScopedAStatus WifiApIface::setMacAddressInternal(const std::array<uint8_t, 6>& mac) {
// Support random MAC up to 2 interfaces
if (instances_.size() == 2) {
diff --git a/wifi/aidl/default/wifi_ap_iface.h b/wifi/aidl/default/wifi_ap_iface.h
index b5673fc..7378f98 100644
--- a/wifi/aidl/default/wifi_ap_iface.h
+++ b/wifi/aidl/default/wifi_ap_iface.h
@@ -45,8 +45,6 @@
// AIDL methods exposed.
ndk::ScopedAStatus getName(std::string* _aidl_return) override;
ndk::ScopedAStatus setCountryCode(const std::array<uint8_t, 2>& in_code) override;
- ndk::ScopedAStatus getValidFrequenciesForBand(WifiBand in_band,
- std::vector<int32_t>* _aidl_return) override;
ndk::ScopedAStatus setMacAddress(const std::array<uint8_t, 6>& in_mac) override;
ndk::ScopedAStatus getFactoryMacAddress(std::array<uint8_t, 6>* _aidl_return) override;
ndk::ScopedAStatus resetToFactoryMacAddress() override;
@@ -56,8 +54,6 @@
// Corresponding worker functions for the AIDL methods.
std::pair<std::string, ndk::ScopedAStatus> getNameInternal();
ndk::ScopedAStatus setCountryCodeInternal(const std::array<uint8_t, 2>& code);
- std::pair<std::vector<int32_t>, ndk::ScopedAStatus> getValidFrequenciesForBandInternal(
- WifiBand band);
ndk::ScopedAStatus setMacAddressInternal(const std::array<uint8_t, 6>& mac);
std::pair<std::array<uint8_t, 6>, ndk::ScopedAStatus> getFactoryMacAddressInternal(
const std::string& ifaceName);
diff --git a/wifi/aidl/default/wifi_chip.cpp b/wifi/aidl/default/wifi_chip.cpp
index dd24e6b..f9f5528 100644
--- a/wifi/aidl/default/wifi_chip.cpp
+++ b/wifi/aidl/default/wifi_chip.cpp
@@ -455,9 +455,9 @@
&WifiChip::registerEventCallbackInternal, event_callback);
}
-ndk::ScopedAStatus WifiChip::getCapabilities(int32_t* _aidl_return) {
+ndk::ScopedAStatus WifiChip::getFeatureSet(int32_t* _aidl_return) {
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
- &WifiChip::getCapabilitiesInternal, _aidl_return);
+ &WifiChip::getFeatureSetInternal, _aidl_return);
}
ndk::ScopedAStatus WifiChip::getAvailableModes(std::vector<IWifiChip::ChipMode>* _aidl_return) {
@@ -701,9 +701,9 @@
}
ndk::ScopedAStatus WifiChip::setAfcChannelAllowance(
- const std::vector<AvailableAfcFrequencyInfo>& availableAfcFrequencyInfo) {
+ const AfcChannelAllowance& afcChannelAllowance) {
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
- &WifiChip::setAfcChannelAllowanceInternal, availableAfcFrequencyInfo);
+ &WifiChip::setAfcChannelAllowanceInternal, afcChannelAllowance);
}
ndk::ScopedAStatus WifiChip::triggerSubsystemRestart() {
@@ -786,7 +786,7 @@
return ndk::ScopedAStatus::ok();
}
-std::pair<int32_t, ndk::ScopedAStatus> WifiChip::getCapabilitiesInternal() {
+std::pair<int32_t, ndk::ScopedAStatus> WifiChip::getFeatureSetInternal() {
legacy_hal::wifi_error legacy_status;
uint64_t legacy_feature_set;
uint32_t legacy_logger_feature_set;
@@ -802,12 +802,11 @@
// some devices don't support querying logger feature set
legacy_logger_feature_set = 0;
}
- uint32_t aidl_caps;
- if (!aidl_struct_util::convertLegacyFeaturesToAidlChipCapabilities(legacy_feature_set,
- &aidl_caps)) {
+ uint32_t aidl_feature_set;
+ if (!aidl_struct_util::convertLegacyChipFeaturesToAidl(legacy_feature_set, &aidl_feature_set)) {
return {0, createWifiStatus(WifiStatusCode::ERROR_UNKNOWN)};
}
- return {aidl_caps, ndk::ScopedAStatus::ok()};
+ return {aidl_feature_set, ndk::ScopedAStatus::ok()};
}
std::pair<std::vector<IWifiChip::ChipMode>, ndk::ScopedAStatus>
@@ -1431,8 +1430,12 @@
}
ndk::ScopedAStatus WifiChip::setAfcChannelAllowanceInternal(
- const std::vector<AvailableAfcFrequencyInfo>& availableAfcFrequencyInfo) {
- LOG(INFO) << "setAfcChannelAllowance is not yet supported " << availableAfcFrequencyInfo.size();
+ const AfcChannelAllowance& afcChannelAllowance) {
+ LOG(INFO) << "setAfcChannelAllowance is not yet supported. availableAfcFrequencyInfos size="
+ << afcChannelAllowance.availableAfcFrequencyInfos.size()
+ << " availableAfcChannelInfos size="
+ << afcChannelAllowance.availableAfcChannelInfos.size()
+ << " availabilityExpireTimeMs=" << afcChannelAllowance.availabilityExpireTimeMs;
return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED);
}
diff --git a/wifi/aidl/default/wifi_chip.h b/wifi/aidl/default/wifi_chip.h
index c5dcee7..4ddee92 100644
--- a/wifi/aidl/default/wifi_chip.h
+++ b/wifi/aidl/default/wifi_chip.h
@@ -85,7 +85,7 @@
ndk::ScopedAStatus getId(int32_t* _aidl_return) override;
ndk::ScopedAStatus registerEventCallback(
const std::shared_ptr<IWifiChipEventCallback>& in_callback) override;
- ndk::ScopedAStatus getCapabilities(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getFeatureSet(int32_t* _aidl_return) override;
ndk::ScopedAStatus getAvailableModes(std::vector<IWifiChip::ChipMode>* _aidl_return) override;
ndk::ScopedAStatus configureChip(int32_t in_modeId) override;
ndk::ScopedAStatus getMode(int32_t* _aidl_return) override;
@@ -142,7 +142,7 @@
int32_t in_filterMask,
std::vector<WifiUsableChannel>* _aidl_return) override;
ndk::ScopedAStatus setAfcChannelAllowance(
- const std::vector<AvailableAfcFrequencyInfo>& availableAfcFrequencyInfo) override;
+ const AfcChannelAllowance& afcChannelAllowance) override;
ndk::ScopedAStatus triggerSubsystemRestart() override;
ndk::ScopedAStatus getSupportedRadioCombinations(
std::vector<WifiRadioCombination>* _aidl_return) override;
@@ -162,7 +162,7 @@
std::pair<int32_t, ndk::ScopedAStatus> getIdInternal();
ndk::ScopedAStatus registerEventCallbackInternal(
const std::shared_ptr<IWifiChipEventCallback>& event_callback);
- std::pair<int32_t, ndk::ScopedAStatus> getCapabilitiesInternal();
+ std::pair<int32_t, ndk::ScopedAStatus> getFeatureSetInternal();
std::pair<std::vector<IWifiChip::ChipMode>, ndk::ScopedAStatus> getAvailableModesInternal();
ndk::ScopedAStatus configureChipInternal(std::unique_lock<std::recursive_mutex>* lock,
int32_t mode_id);
@@ -220,7 +220,7 @@
WifiBand band, int32_t ifaceModeMask, int32_t filterMask);
ndk::ScopedAStatus enableStaChannelForPeerNetworkInternal(int32_t channelCategoryEnableFlag);
ndk::ScopedAStatus setAfcChannelAllowanceInternal(
- const std::vector<AvailableAfcFrequencyInfo>& availableAfcFrequencyInfo);
+ const AfcChannelAllowance& afcChannelAllowance);
ndk::ScopedAStatus handleChipConfiguration(std::unique_lock<std::recursive_mutex>* lock,
int32_t mode_id);
ndk::ScopedAStatus registerDebugRingBufferCallback();
diff --git a/wifi/aidl/default/wifi_sta_iface.cpp b/wifi/aidl/default/wifi_sta_iface.cpp
index eceeeb5..800813f 100644
--- a/wifi/aidl/default/wifi_sta_iface.cpp
+++ b/wifi/aidl/default/wifi_sta_iface.cpp
@@ -82,9 +82,9 @@
&WifiStaIface::registerEventCallbackInternal, in_callback);
}
-ndk::ScopedAStatus WifiStaIface::getCapabilities(int32_t* _aidl_return) {
+ndk::ScopedAStatus WifiStaIface::getFeatureSet(int32_t* _aidl_return) {
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
- &WifiStaIface::getCapabilitiesInternal, _aidl_return);
+ &WifiStaIface::getFeatureSetInternal, _aidl_return);
}
ndk::ScopedAStatus WifiStaIface::getApfPacketFilterCapabilities(
@@ -109,13 +109,6 @@
&WifiStaIface::getBackgroundScanCapabilitiesInternal, _aidl_return);
}
-ndk::ScopedAStatus WifiStaIface::getValidFrequenciesForBand(WifiBand in_band,
- std::vector<int32_t>* _aidl_return) {
- return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
- &WifiStaIface::getValidFrequenciesForBandInternal, _aidl_return,
- in_band);
-}
-
ndk::ScopedAStatus WifiStaIface::startBackgroundScan(int32_t in_cmdId,
const StaBackgroundScanParameters& in_params) {
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_IFACE_INVALID,
@@ -238,7 +231,7 @@
return ndk::ScopedAStatus::ok();
}
-std::pair<int32_t, ndk::ScopedAStatus> WifiStaIface::getCapabilitiesInternal() {
+std::pair<int32_t, ndk::ScopedAStatus> WifiStaIface::getFeatureSetInternal() {
legacy_hal::wifi_error legacy_status;
uint64_t legacy_feature_set;
std::tie(legacy_status, legacy_feature_set) =
@@ -246,12 +239,12 @@
if (legacy_status != legacy_hal::WIFI_SUCCESS) {
return {0, createWifiStatusFromLegacyError(legacy_status)};
}
- uint32_t aidl_caps;
- if (!aidl_struct_util::convertLegacyFeaturesToAidlStaCapabilities(legacy_feature_set,
- &aidl_caps)) {
+ uint32_t aidl_feature_set;
+ if (!aidl_struct_util::convertLegacyStaIfaceFeaturesToAidl(legacy_feature_set,
+ &aidl_feature_set)) {
return {0, createWifiStatus(WifiStatusCode::ERROR_UNKNOWN)};
}
- return {aidl_caps, ndk::ScopedAStatus::ok()};
+ return {aidl_feature_set, ndk::ScopedAStatus::ok()};
}
std::pair<StaApfPacketFilterCapabilities, ndk::ScopedAStatus>
@@ -298,17 +291,6 @@
return {aidl_caps, ndk::ScopedAStatus::ok()};
}
-std::pair<std::vector<int32_t>, ndk::ScopedAStatus>
-WifiStaIface::getValidFrequenciesForBandInternal(WifiBand band) {
- static_assert(sizeof(WifiChannelWidthInMhz) == sizeof(int32_t), "Size mismatch");
- legacy_hal::wifi_error legacy_status;
- std::vector<uint32_t> valid_frequencies;
- std::tie(legacy_status, valid_frequencies) = legacy_hal_.lock()->getValidFrequenciesForBand(
- ifname_, aidl_struct_util::convertAidlWifiBandToLegacy(band));
- return {std::vector<int32_t>(valid_frequencies.begin(), valid_frequencies.end()),
- createWifiStatusFromLegacyError(legacy_status)};
-}
-
ndk::ScopedAStatus WifiStaIface::startBackgroundScanInternal(
int32_t cmd_id, const StaBackgroundScanParameters& params) {
legacy_hal::wifi_scan_cmd_params legacy_params;
diff --git a/wifi/aidl/default/wifi_sta_iface.h b/wifi/aidl/default/wifi_sta_iface.h
index 0831e16..3d7ec4d 100644
--- a/wifi/aidl/default/wifi_sta_iface.h
+++ b/wifi/aidl/default/wifi_sta_iface.h
@@ -54,15 +54,13 @@
ndk::ScopedAStatus getName(std::string* _aidl_return) override;
ndk::ScopedAStatus registerEventCallback(
const std::shared_ptr<IWifiStaIfaceEventCallback>& in_callback) override;
- ndk::ScopedAStatus getCapabilities(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getFeatureSet(int32_t* _aidl_return) override;
ndk::ScopedAStatus getApfPacketFilterCapabilities(
StaApfPacketFilterCapabilities* _aidl_return) override;
ndk::ScopedAStatus installApfPacketFilter(const std::vector<uint8_t>& in_program) override;
ndk::ScopedAStatus readApfPacketFilterData(std::vector<uint8_t>* _aidl_return) override;
ndk::ScopedAStatus getBackgroundScanCapabilities(
StaBackgroundScanCapabilities* _aidl_return) override;
- ndk::ScopedAStatus getValidFrequenciesForBand(WifiBand in_band,
- std::vector<int32_t>* _aidl_return) override;
ndk::ScopedAStatus startBackgroundScan(int32_t in_cmdId,
const StaBackgroundScanParameters& in_params) override;
ndk::ScopedAStatus stopBackgroundScan(int32_t in_cmdId) override;
@@ -98,15 +96,13 @@
std::pair<std::string, ndk::ScopedAStatus> getNameInternal();
ndk::ScopedAStatus registerEventCallbackInternal(
const std::shared_ptr<IWifiStaIfaceEventCallback>& callback);
- std::pair<int32_t, ndk::ScopedAStatus> getCapabilitiesInternal();
+ std::pair<int32_t, ndk::ScopedAStatus> getFeatureSetInternal();
std::pair<StaApfPacketFilterCapabilities, ndk::ScopedAStatus>
getApfPacketFilterCapabilitiesInternal();
ndk::ScopedAStatus installApfPacketFilterInternal(const std::vector<uint8_t>& program);
std::pair<std::vector<uint8_t>, ndk::ScopedAStatus> readApfPacketFilterDataInternal();
std::pair<StaBackgroundScanCapabilities, ndk::ScopedAStatus>
getBackgroundScanCapabilitiesInternal();
- std::pair<std::vector<int32_t>, ndk::ScopedAStatus> getValidFrequenciesForBandInternal(
- WifiBand band);
ndk::ScopedAStatus startBackgroundScanInternal(int32_t cmd_id,
const StaBackgroundScanParameters& params);
ndk::ScopedAStatus stopBackgroundScanInternal(int32_t cmd_id);
diff --git a/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp b/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp
index 4cf14a2..ca3c4b7 100644
--- a/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp
+++ b/wifi/aidl/vts/functional/wifi_aidl_test_utils.cpp
@@ -207,10 +207,10 @@
}
}
-int32_t getChipCapabilities(const std::shared_ptr<IWifiChip>& wifi_chip) {
- int32_t caps = 0;
- if (wifi_chip->getCapabilities(&caps).isOk()) {
- return caps;
+int32_t getChipFeatureSet(const std::shared_ptr<IWifiChip>& wifi_chip) {
+ int32_t features = 0;
+ if (wifi_chip->getFeatureSet(&features).isOk()) {
+ return features;
}
return 0;
}
diff --git a/wifi/aidl/vts/functional/wifi_aidl_test_utils.h b/wifi/aidl/vts/functional/wifi_aidl_test_utils.h
index 2eac950..0d70c3b 100644
--- a/wifi/aidl/vts/functional/wifi_aidl_test_utils.h
+++ b/wifi/aidl/vts/functional/wifi_aidl_test_utils.h
@@ -44,6 +44,6 @@
IfaceConcurrencyType type, int* configured_mode_id);
// Used to trigger IWifi.stop() at the end of every test.
void stopWifiService(const char* instance_name);
-int32_t getChipCapabilities(const std::shared_ptr<IWifiChip>& wifi_chip);
+int32_t getChipFeatureSet(const std::shared_ptr<IWifiChip>& wifi_chip);
bool checkStatusCode(ndk::ScopedAStatus* status, WifiStatusCode expected_code);
bool isAidlServiceAvailable(const char* instance_name);
diff --git a/wifi/aidl/vts/functional/wifi_ap_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_ap_iface_aidl_test.cpp
index 0eaf660..d39cfb4 100644
--- a/wifi/aidl/vts/functional/wifi_ap_iface_aidl_test.cpp
+++ b/wifi/aidl/vts/functional/wifi_ap_iface_aidl_test.cpp
@@ -68,19 +68,6 @@
}
/*
- * GetValidFrequenciesForBand
- * Ensures that we can retrieve valid frequencies for the 2.4 GHz band.
- */
-TEST_P(WifiApIfaceAidlTest, GetValidFrequenciesForBand) {
- std::shared_ptr<IWifiApIface> wifi_ap_iface = getWifiApIface(getInstanceName());
- ASSERT_NE(nullptr, wifi_ap_iface.get());
-
- std::vector<int32_t> freqs;
- EXPECT_TRUE(wifi_ap_iface->getValidFrequenciesForBand(WifiBand::BAND_24GHZ, &freqs).isOk());
- EXPECT_NE(freqs.size(), 0);
-}
-
-/*
* GetFactoryMacAddress
*/
TEST_P(WifiApIfaceAidlTest, GetFactoryMacAddress) {
diff --git a/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp
index dbff949..ca88d8e 100644
--- a/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp
+++ b/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp
@@ -185,12 +185,12 @@
}
/*
- * GetCapabilities
+ * GetFeatureSet
*/
-TEST_P(WifiChipAidlTest, GetCapabilities) {
+TEST_P(WifiChipAidlTest, GetFeatureSet) {
configureChipForConcurrencyType(IfaceConcurrencyType::STA);
- int32_t caps = getChipCapabilities(wifi_chip_);
- EXPECT_NE(static_cast<int32_t>(caps), 0);
+ int32_t features = getChipFeatureSet(wifi_chip_);
+ EXPECT_NE(features, 0);
}
/*
@@ -269,9 +269,9 @@
*/
TEST_P(WifiChipAidlTest, SetLatencyMode_normal) {
configureChipForConcurrencyType(IfaceConcurrencyType::STA);
- int32_t caps = getChipCapabilities(wifi_chip_);
+ int32_t features = getChipFeatureSet(wifi_chip_);
auto status = wifi_chip_->setLatencyMode(IWifiChip::LatencyMode::NORMAL);
- if (caps & static_cast<int32_t>(IWifiChip::ChipCapabilityMask::SET_LATENCY_MODE)) {
+ if (features & static_cast<int32_t>(IWifiChip::FeatureSetMask::SET_LATENCY_MODE)) {
EXPECT_TRUE(status.isOk());
} else {
EXPECT_TRUE(checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED));
@@ -284,9 +284,9 @@
*/
TEST_P(WifiChipAidlTest, SetLatencyMode_low) {
configureChipForConcurrencyType(IfaceConcurrencyType::STA);
- int32_t caps = getChipCapabilities(wifi_chip_);
+ int32_t features = getChipFeatureSet(wifi_chip_);
auto status = wifi_chip_->setLatencyMode(IWifiChip::LatencyMode::LOW);
- if (caps & static_cast<int32_t>(IWifiChip::ChipCapabilityMask::SET_LATENCY_MODE)) {
+ if (features & static_cast<int32_t>(IWifiChip::FeatureSetMask::SET_LATENCY_MODE)) {
EXPECT_TRUE(status.isOk());
} else {
EXPECT_TRUE(checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED));
@@ -366,12 +366,12 @@
*/
TEST_P(WifiChipAidlTest, SelectTxPowerScenario_body) {
configureChipForConcurrencyType(IfaceConcurrencyType::STA);
- int32_t caps = getChipCapabilities(wifi_chip_);
- int32_t expected_caps =
- static_cast<int32_t>(IWifiChip::ChipCapabilityMask::SET_TX_POWER_LIMIT) |
- static_cast<int32_t>(IWifiChip::ChipCapabilityMask::USE_BODY_HEAD_SAR);
+ int32_t features = getChipFeatureSet(wifi_chip_);
+ int32_t expected_features =
+ static_cast<int32_t>(IWifiChip::FeatureSetMask::SET_TX_POWER_LIMIT) |
+ static_cast<int32_t>(IWifiChip::FeatureSetMask::USE_BODY_HEAD_SAR);
auto status = wifi_chip_->selectTxPowerScenario(IWifiChip::TxPowerScenario::ON_BODY_CELL_OFF);
- if (caps & expected_caps) {
+ if (features & expected_features) {
EXPECT_TRUE(status.isOk());
} else {
EXPECT_TRUE(checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED));
@@ -383,9 +383,9 @@
*/
TEST_P(WifiChipAidlTest, SelectTxPowerScenario_voiceCall) {
configureChipForConcurrencyType(IfaceConcurrencyType::STA);
- int32_t caps = getChipCapabilities(wifi_chip_);
+ int32_t features = getChipFeatureSet(wifi_chip_);
auto status = wifi_chip_->selectTxPowerScenario(IWifiChip::TxPowerScenario::VOICE_CALL);
- if (caps & static_cast<int32_t>(IWifiChip::ChipCapabilityMask::SET_TX_POWER_LIMIT)) {
+ if (features & static_cast<int32_t>(IWifiChip::FeatureSetMask::SET_TX_POWER_LIMIT)) {
EXPECT_TRUE(status.isOk());
} else {
EXPECT_TRUE(checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED));
@@ -397,9 +397,9 @@
*/
TEST_P(WifiChipAidlTest, ResetTxPowerScenario) {
configureChipForConcurrencyType(IfaceConcurrencyType::STA);
- int32_t caps = getChipCapabilities(wifi_chip_);
+ int32_t features = getChipFeatureSet(wifi_chip_);
auto status = wifi_chip_->resetTxPowerScenario();
- if (caps & static_cast<int32_t>(IWifiChip::ChipCapabilityMask::SET_TX_POWER_LIMIT)) {
+ if (features & static_cast<int32_t>(IWifiChip::FeatureSetMask::SET_TX_POWER_LIMIT)) {
EXPECT_TRUE(status.isOk());
} else {
EXPECT_TRUE(checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED));
diff --git a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
index b772bc3..07817cc 100644
--- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
+++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
@@ -53,10 +53,10 @@
void TearDown() override { stopWifiService(getInstanceName()); }
protected:
- bool isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask expected) {
- int32_t caps = 0;
- EXPECT_TRUE(wifi_sta_iface_->getCapabilities(&caps).isOk());
- return caps & static_cast<int32_t>(expected);
+ bool isFeatureSupported(IWifiStaIface::FeatureSetMask expected) {
+ int32_t features = 0;
+ EXPECT_TRUE(wifi_sta_iface_->getFeatureSet(&features).isOk());
+ return features & static_cast<int32_t>(expected);
}
ndk::ScopedAStatus createStaIface(std::shared_ptr<IWifiStaIface>* sta_iface) {
@@ -83,19 +83,19 @@
}
/*
- * GetCapabilities
+ * GetFeatureSet
*/
-TEST_P(WifiStaIfaceAidlTest, GetCapabilities) {
- int32_t caps = 0;
- EXPECT_TRUE(wifi_sta_iface_->getCapabilities(&caps).isOk());
- EXPECT_NE(caps, 0);
+TEST_P(WifiStaIfaceAidlTest, GetFeatureSet) {
+ int32_t features = 0;
+ EXPECT_TRUE(wifi_sta_iface_->getFeatureSet(&features).isOk());
+ EXPECT_NE(features, 0);
}
/*
* GetApfPacketFilterCapabilities
*/
TEST_P(WifiStaIfaceAidlTest, GetApfPacketFilterCapabilities) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::APF)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::APF)) {
GTEST_SKIP() << "APF packet filter capabilities are not supported.";
}
StaApfPacketFilterCapabilities apf_caps = {};
@@ -106,7 +106,7 @@
* GetBackgroundScanCapabilities
*/
TEST_P(WifiStaIfaceAidlTest, GetBackgroundScanCapabilities) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::BACKGROUND_SCAN)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::BACKGROUND_SCAN)) {
GTEST_SKIP() << "Background scan capabilities are not supported.";
}
StaBackgroundScanCapabilities caps = {};
@@ -114,22 +114,12 @@
}
/*
- * GetValidFrequenciesForBand
- * Ensures that we can retrieve valid frequencies for the 2.4 GHz band.
- */
-TEST_P(WifiStaIfaceAidlTest, GetValidFrequenciesForBand) {
- std::vector<int> freqs;
- EXPECT_TRUE(wifi_sta_iface_->getValidFrequenciesForBand(WifiBand::BAND_24GHZ, &freqs).isOk());
- EXPECT_NE(freqs.size(), 0);
-}
-
-/*
* GetLinkLayerStats
* Ensures that calls to getLinkLayerStats will retrieve a non-empty
* StaLinkLayerStats after link layer stats collection is enabled.
*/
TEST_P(WifiStaIfaceAidlTest, GetLinkLayerStats) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::LINK_LAYER_STATS)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::LINK_LAYER_STATS)) {
GTEST_SKIP() << "Skipping this test since link layer stats are not supported.";
}
@@ -176,7 +166,7 @@
* LinkLayerStatsCollection
*/
TEST_P(WifiStaIfaceAidlTest, LinkLayerStatsCollection) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::LINK_LAYER_STATS)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::LINK_LAYER_STATS)) {
GTEST_SKIP() << "Link layer stats collection is not supported.";
}
@@ -197,7 +187,7 @@
* if the device is not connected to an AP.
*/
TEST_P(WifiStaIfaceAidlTest, RSSIMonitoring) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::RSSI_MONITOR)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::RSSI_MONITOR)) {
GTEST_SKIP() << "RSSI monitoring is not supported.";
}
@@ -213,7 +203,7 @@
* RoamingControl
*/
TEST_P(WifiStaIfaceAidlTest, RoamingControl) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::CONTROL_ROAMING)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::CONTROL_ROAMING)) {
GTEST_SKIP() << "Roaming control is not supported.";
}
@@ -245,7 +235,7 @@
* EnableNDOffload
*/
TEST_P(WifiStaIfaceAidlTest, EnableNDOffload) {
- if (!isCapabilitySupported(IWifiStaIface::StaIfaceCapabilityMask::ND_OFFLOAD)) {
+ if (!isFeatureSupported(IWifiStaIface::FeatureSetMask::ND_OFFLOAD)) {
GTEST_SKIP() << "ND offload is not supported.";
}
EXPECT_TRUE(wifi_sta_iface_->enableNdOffload(true).isOk());
diff --git a/wifi/supplicant/aidl/Android.bp b/wifi/supplicant/aidl/Android.bp
index 9cb4e51..c4d3767 100644
--- a/wifi/supplicant/aidl/Android.bp
+++ b/wifi/supplicant/aidl/Android.bp
@@ -36,6 +36,11 @@
"com.android.wifi",
],
min_sdk_version: "30",
+ lint: {
+ // Disable linter to avoid error about fixed size arrays.
+ // Interface will only be accessed on devices >= T.
+ enabled: false,
+ },
},
ndk: {
gen_trace: true,
diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLink.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLink.aidl
index 8783c40..8bda324 100644
--- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLink.aidl
+++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLink.aidl
@@ -38,6 +38,6 @@
byte[] staLinkMacAddress;
byte tidsUplinkMap;
byte tidsDownlinkMap;
- @nullable byte[] apLinkMacAddress;
+ @nullable byte[6] apLinkMacAddress;
int frequencyMHz;
}
diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLinksInfo.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLinksInfo.aidl
index cd98f7f..3dac2d6 100644
--- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLinksInfo.aidl
+++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/MloLinksInfo.aidl
@@ -36,5 +36,5 @@
parcelable MloLinksInfo {
android.hardware.wifi.supplicant.MloLink[] links;
int apMloLinkId;
- @nullable byte[] apMldMacAddress;
+ @nullable byte[6] apMldMacAddress;
}
diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl
index 614b49e..5465a86 100644
--- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl
+++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl
@@ -41,8 +41,8 @@
byte[] psk;
String passphrase;
boolean isPersistent;
- byte[] goDeviceAddress;
- byte[] goInterfaceAddress;
+ byte[6] goDeviceAddress;
+ byte[6] goInterfaceAddress;
boolean isP2pClientEapolIpAddressInfoPresent;
android.hardware.wifi.supplicant.P2pClientEapolIpAddressInfo p2pClientIpInfo;
}
diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/PmkSaCacheData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/PmkSaCacheData.aidl
index 436d0c0..c31b167 100644
--- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/PmkSaCacheData.aidl
+++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/PmkSaCacheData.aidl
@@ -34,7 +34,7 @@
package android.hardware.wifi.supplicant;
@VintfStability
parcelable PmkSaCacheData {
- byte[] bssid;
+ byte[6] bssid;
long expirationTimeInSec;
byte[] serializedEntry;
}
diff --git a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl
index e6bb859..1d37635 100644
--- a/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl
+++ b/wifi/supplicant/aidl/aidl_api/android.hardware.wifi.supplicant/current/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl
@@ -37,7 +37,7 @@
android.hardware.wifi.supplicant.StaIfaceCallbackState newState;
int id;
byte[] ssid;
- byte[] bssid;
+ byte[6] bssid;
android.hardware.wifi.supplicant.KeyMgmtMask keyMgmtMask;
int frequencyMhz;
boolean filsHlpSent;
diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLink.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLink.aidl
index ed6528c..0b4d66e 100644
--- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLink.aidl
+++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLink.aidl
@@ -61,7 +61,7 @@
/**
* AP Link MAC Address
*/
- @nullable byte[/* 6 */] apLinkMacAddress;
+ @nullable byte[6] apLinkMacAddress;
/**
* Frequency on which the link operates in MHz.
*/
diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl
index d954d16..3b81df8 100644
--- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl
+++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl
@@ -35,5 +35,5 @@
/**
* AP MLD MAC address.
*/
- @nullable byte[/* 6 */] apMldMacAddress;
+ @nullable byte[6] apMldMacAddress;
}
diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl
index ccd536c..96f1e16 100644
--- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl
+++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/P2pGroupStartedEventParams.aidl
@@ -45,10 +45,10 @@
boolean isPersistent;
/** MAC Address of the owner of this group. */
- byte[/* 6 */] goDeviceAddress;
+ byte[6] goDeviceAddress;
/** MAC Address of the P2P interface of the owner of this group. */
- byte[/* 6 */] goInterfaceAddress;
+ byte[6] goInterfaceAddress;
/**
* Flag to indicate that the P2P Client IP address is allocated via EAPOL exchange.
diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/PmkSaCacheData.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/PmkSaCacheData.aidl
index bc28ff5..e0f1d31 100644
--- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/PmkSaCacheData.aidl
+++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/PmkSaCacheData.aidl
@@ -24,7 +24,7 @@
/**
* BSSID of the access point to which the station is associated.
*/
- byte[/* 6 */] bssid;
+ byte[6] bssid;
/**
* PMK expiration time in seconds.
*/
diff --git a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl
index 8fa5dc7..f7c66e0 100644
--- a/wifi/supplicant/aidl/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl
+++ b/wifi/supplicant/aidl/android/hardware/wifi/supplicant/SupplicantStateChangeData.aidl
@@ -46,7 +46,7 @@
* change event. This must be zero'ed if this event is not
* specific to a particular network.
*/
- byte[/* 6 */] bssid;
+ byte[6] bssid;
/**
* Currently used key mgmt mask.