Merge "gatekeeper vts tests"
diff --git a/audio/2.0/IDevicesFactory.hal b/audio/2.0/IDevicesFactory.hal
index a4e6956..f1dc7d3 100644
--- a/audio/2.0/IDevicesFactory.hal
+++ b/audio/2.0/IDevicesFactory.hal
@@ -22,7 +22,7 @@
interface IDevicesFactory {
typedef android.hardware.audio@2.0::Result Result;
- enum Device {
+ enum Device : int32_t {
PRIMARY,
A2DP,
USB,
diff --git a/audio/2.0/IPrimaryDevice.hal b/audio/2.0/IPrimaryDevice.hal
index 6beddfe..f1dd56e 100644
--- a/audio/2.0/IPrimaryDevice.hal
+++ b/audio/2.0/IPrimaryDevice.hal
@@ -76,7 +76,7 @@
*/
setBtScoWidebandEnabled(bool enabled) generates (Result retval);
- enum TtyMode {
+ enum TtyMode : int32_t {
OFF,
VCO,
HCO,
diff --git a/audio/2.0/default/Device.h b/audio/2.0/default/Device.h
index 3fd67e3..49d6b2c 100644
--- a/audio/2.0/default/Device.h
+++ b/audio/2.0/default/Device.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_V2_0_Device_H_
-#define HIDL_GENERATED_android_hardware_audio_V2_0_Device_H_
+#ifndef ANDROID_HARDWARE_AUDIO_V2_0_DEVICE_H
+#define ANDROID_HARDWARE_AUDIO_V2_0_DEVICE_H
#include <memory>
@@ -144,4 +144,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_V2_0_Device_H_
+#endif // ANDROID_HARDWARE_AUDIO_V2_0_DEVICE_H
diff --git a/audio/2.0/default/DevicesFactory.h b/audio/2.0/default/DevicesFactory.h
index 0ea9859..b046f9f 100644
--- a/audio/2.0/default/DevicesFactory.h
+++ b/audio/2.0/default/DevicesFactory.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_V2_0_DevicesFactory_H_
-#define HIDL_GENERATED_android_hardware_audio_V2_0_DevicesFactory_H_
+#ifndef ANDROID_HARDWARE_AUDIO_V2_0_DEVICESFACTORY_H
+#define ANDROID_HARDWARE_AUDIO_V2_0_DEVICESFACTORY_H
#include <hardware/audio.h>
@@ -56,4 +56,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_V2_0_DevicesFactory_H_
+#endif // ANDROID_HARDWARE_AUDIO_V2_0_DEVICESFACTORY_H
diff --git a/audio/2.0/default/PrimaryDevice.h b/audio/2.0/default/PrimaryDevice.h
index 968c208..8177b68 100644
--- a/audio/2.0/default/PrimaryDevice.h
+++ b/audio/2.0/default/PrimaryDevice.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_V2_0_PrimaryDevice_H_
-#define HIDL_GENERATED_android_hardware_audio_V2_0_PrimaryDevice_H_
+#ifndef ANDROID_HARDWARE_AUDIO_V2_0_PRIMARYDEVICE_H
+#define ANDROID_HARDWARE_AUDIO_V2_0_PRIMARYDEVICE_H
#include <android/hardware/audio/2.0/IPrimaryDevice.h>
#include <hidl/Status.h>
@@ -114,4 +114,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_V2_0_PrimaryDevice_H_
+#endif // ANDROID_HARDWARE_AUDIO_V2_0_PRIMARYDEVICE_H
diff --git a/audio/2.0/default/Stream.h b/audio/2.0/default/Stream.h
index 3893af4..2e641d6 100644
--- a/audio/2.0/default/Stream.h
+++ b/audio/2.0/default/Stream.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_V2_0_Stream_H_
-#define HIDL_GENERATED_android_hardware_audio_V2_0_Stream_H_
+#ifndef ANDROID_HARDWARE_AUDIO_V2_0_STREAM_H
+#define ANDROID_HARDWARE_AUDIO_V2_0_STREAM_H
#include <android/hardware/audio/2.0/IStream.h>
#include <hidl/Status.h>
@@ -91,4 +91,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_V2_0_Stream_H_
+#endif // ANDROID_HARDWARE_AUDIO_V2_0_STREAM_H
diff --git a/audio/2.0/default/StreamIn.h b/audio/2.0/default/StreamIn.h
index c2a7ea2..f7c17b7 100644
--- a/audio/2.0/default/StreamIn.h
+++ b/audio/2.0/default/StreamIn.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_V2_0_StreamIn_H_
-#define HIDL_GENERATED_android_hardware_audio_V2_0_StreamIn_H_
+#ifndef ANDROID_HARDWARE_AUDIO_V2_0_STREAMIN_H
+#define ANDROID_HARDWARE_AUDIO_V2_0_STREAMIN_H
#include <android/hardware/audio/2.0/IStreamIn.h>
#include <hidl/Status.h>
@@ -95,4 +95,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_V2_0_StreamIn_H_
+#endif // ANDROID_HARDWARE_AUDIO_V2_0_STREAMIN_H
diff --git a/audio/2.0/default/StreamOut.h b/audio/2.0/default/StreamOut.h
index ca33b2d..d51fc66 100644
--- a/audio/2.0/default/StreamOut.h
+++ b/audio/2.0/default/StreamOut.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_V2_0_StreamOut_H_
-#define HIDL_GENERATED_android_hardware_audio_V2_0_StreamOut_H_
+#ifndef ANDROID_HARDWARE_AUDIO_V2_0_STREAMOUT_H
+#define ANDROID_HARDWARE_AUDIO_V2_0_STREAMOUT_H
#include <android/hardware/audio/2.0/IStreamOut.h>
#include <hidl/Status.h>
@@ -110,4 +110,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_V2_0_StreamOut_H_
+#endif // ANDROID_HARDWARE_AUDIO_V2_0_STREAMOUT_H
diff --git a/audio/2.0/types.hal b/audio/2.0/types.hal
index 9a5e4f1..7002f38 100644
--- a/audio/2.0/types.hal
+++ b/audio/2.0/types.hal
@@ -18,7 +18,7 @@
import android.hardware.audio.common@2.0;
-enum Result {
+enum Result : int32_t {
OK,
NOT_INITIALIZED,
INVALID_ARGUMENTS,
@@ -27,7 +27,7 @@
};
@export(name="audio_drain_type_t", value_prefix="AUDIO_DRAIN_")
-enum AudioDrain {
+enum AudioDrain : int32_t {
/* drain() returns when all data has been played. */
ALL,
/* drain() returns a short time before all data from the current track has
diff --git a/audio/common/2.0/types.hal b/audio/common/2.0/types.hal
index 75fdb52..4e969a7 100644
--- a/audio/common/2.0/types.hal
+++ b/audio/common/2.0/types.hal
@@ -56,7 +56,7 @@
* Each port has a unique ID or handle allocated by policy manager.
*/
@export(name="")
-enum AudioHandleConsts {
+enum AudioHandleConsts : int32_t {
AUDIO_IO_HANDLE_NONE = 0,
AUDIO_MODULE_HANDLE_NONE = 0,
AUDIO_PORT_HANDLE_NONE = 0,
@@ -114,7 +114,7 @@
};
@export(name="audio_source_t", value_prefix="AUDIO_SOURCE_")
-enum AudioSource {
+enum AudioSource : int32_t {
// These values must kept in sync with
// frameworks/base/media/java/android/media/MediaRecorder.java,
// frameworks/av/services/audiopolicy/AudioPolicyService.cpp,
@@ -269,7 +269,7 @@
* assumptions.
*/
@export(name="")
-enum FixedChannelCount {
+enum FixedChannelCount : int32_t {
FCC_2 = 2, // This is typically due to legacy implementation of stereo I/O
FCC_8 = 8 // This is typically due to audio mixer and resampler limitations
};
@@ -425,7 +425,7 @@
* to this convention will be noted at the appropriate API.
*/
@export(name="", value_prefix="AUDIO_INTERLEAVE_")
-enum AudioInterleave {
+enum AudioInterleave : int32_t {
LEFT = 0,
RIGHT = 1,
};
@@ -435,7 +435,7 @@
* routing.
*/
@export(name="audio_mode_t", value_prefix="AUDIO_MODE_")
-enum AudioMode {
+enum AudioMode : int32_t {
INVALID = -2,
CURRENT = -1,
NORMAL = 0,
@@ -597,7 +597,7 @@
* (when getOuput() is called) to an available output stream.
*/
@export(name="audio_output_flags_t", value_prefix="AUDIO_OUTPUT_FLAG_")
-enum AudioOutputFlag {
+enum AudioOutputFlag : int32_t {
NONE = 0x0, // no attributes
DIRECT = 0x1, // this output directly connects a track
// to one output stream: no software mixer
@@ -627,7 +627,7 @@
* attributes corresponding to the specified flags.
*/
@export(name="audio_input_flags_t", value_prefix="AUDIO_INPUT_FLAG_")
-enum AudioInputFlag {
+enum AudioInputFlag : int32_t {
NONE = 0x0, // no attributes
FAST = 0x1, // prefer an input that supports "fast tracks"
HW_HOTWORD = 0x2, // prefer an input that captures from hw hotword source
@@ -728,7 +728,7 @@
/* Audio port role: either source or sink */
@export(name="audio_port_role_t", value_prefix="AUDIO_PORT_ROLE_")
-enum AudioPortRole {
+enum AudioPortRole : int32_t {
NONE,
SOURCE,
SINK,
@@ -739,7 +739,7 @@
* PlaybackThread output) or a physical device (e.g OUT_SPEAKER)
*/
@export(name="audio_port_type_t", value_prefix="AUDIO_PORT_TYPE_")
-enum AudioPortType {
+enum AudioPortType : int32_t {
NONE,
DEVICE,
MIX,
@@ -816,7 +816,7 @@
* Latency class of the audio mix.
*/
@export(name="audio_mix_latency_class_t", value_prefix="AUDIO_LATENCY_")
-enum AudioMixLatencyClass {
+enum AudioMixLatencyClass : int32_t {
LOW,
NORMAL
} ;
diff --git a/audio/effect/2.0/IDownmixEffect.hal b/audio/effect/2.0/IDownmixEffect.hal
index 817e14c..06409a3 100644
--- a/audio/effect/2.0/IDownmixEffect.hal
+++ b/audio/effect/2.0/IDownmixEffect.hal
@@ -20,7 +20,7 @@
import IEffect;
interface IDownmixEffect extends IEffect {
- enum Type {
+ enum Type : int32_t {
STRIP, // throw away the extra channels
FOLD // mix the extra channels with FL/FR
};
diff --git a/audio/effect/2.0/INoiseSuppressionEffect.hal b/audio/effect/2.0/INoiseSuppressionEffect.hal
index 58e439f..ae2bfb5 100644
--- a/audio/effect/2.0/INoiseSuppressionEffect.hal
+++ b/audio/effect/2.0/INoiseSuppressionEffect.hal
@@ -20,7 +20,7 @@
import IEffect;
interface INoiseSuppressionEffect extends IEffect {
- enum Level {
+ enum Level : int32_t {
LOW,
MEDIUM,
HIGH
@@ -36,7 +36,7 @@
*/
getSuppressionLevel() generates (Result retval, Level level);
- enum Type {
+ enum Type : int32_t {
SINGLE_CHANNEL,
MULTI_CHANNEL
};
diff --git a/audio/effect/2.0/IPresetReverbEffect.hal b/audio/effect/2.0/IPresetReverbEffect.hal
index 58dfd40..2237bc4 100644
--- a/audio/effect/2.0/IPresetReverbEffect.hal
+++ b/audio/effect/2.0/IPresetReverbEffect.hal
@@ -20,7 +20,7 @@
import IEffect;
interface IPresetReverbEffect extends IEffect {
- enum Preset {
+ enum Preset : int32_t {
NONE, // no reverb or reflections
SMALLROOM, // a small room less than five meters in length
MEDIUMROOM, // a medium room with a length of ten meters or less
diff --git a/audio/effect/2.0/IVisualizerEffect.hal b/audio/effect/2.0/IVisualizerEffect.hal
index 70dabf9..79dc9ee 100644
--- a/audio/effect/2.0/IVisualizerEffect.hal
+++ b/audio/effect/2.0/IVisualizerEffect.hal
@@ -20,7 +20,7 @@
import IEffect;
interface IVisualizerEffect extends IEffect {
- enum CaptureSizeRange {
+ enum CaptureSizeRange : int32_t {
MAX = 1024, // maximum capture size in samples
MIN = 128 // minimum capture size in samples
};
@@ -35,7 +35,7 @@
*/
getCaptureSize() generates (Result retval, uint16_t captureSize);
- enum ScalingMode {
+ enum ScalingMode : int32_t {
// Keep in sync with SCALING_MODE_... in
// frameworks/base/media/java/android/media/audiofx/Visualizer.java
NORMALIZED = 0,
@@ -62,7 +62,7 @@
*/
getLatency() generates (Result retval, uint32_t latencyMs);
- enum MeasurementMode {
+ enum MeasurementMode : int32_t {
// Keep in sync with MEASUREMENT_MODE_... in
// frameworks/base/media/java/android/media/audiofx/Visualizer.java
NONE = 0x0,
diff --git a/audio/effect/2.0/default/AcousticEchoCancelerEffect.h b/audio/effect/2.0/default/AcousticEchoCancelerEffect.h
index cebc2d4..71fcc97 100644
--- a/audio/effect/2.0/default/AcousticEchoCancelerEffect.h
+++ b/audio/effect/2.0/default/AcousticEchoCancelerEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_AcousticEchoCancelerEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_AcousticEchoCancelerEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_ACOUSTICECHOCANCELEREFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_ACOUSTICECHOCANCELEREFFECT_H
#include <android/hardware/audio/effect/2.0/IAcousticEchoCancelerEffect.h>
#include <hidl/Status.h>
@@ -115,4 +115,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_AcousticEchoCancelerEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_ACOUSTICECHOCANCELEREFFECT_H
diff --git a/audio/effect/2.0/default/AutomaticGainControlEffect.h b/audio/effect/2.0/default/AutomaticGainControlEffect.h
index f4b228c..1696d3c 100644
--- a/audio/effect/2.0/default/AutomaticGainControlEffect.h
+++ b/audio/effect/2.0/default/AutomaticGainControlEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_AutomaticGainControlEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_AutomaticGainControlEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_AUTOMATICGAINCONTROLEFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_AUTOMATICGAINCONTROLEFFECT_H
#include <system/audio_effects/effect_agc.h>
@@ -131,4 +131,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_AutomaticGainControlEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_AUTOMATICGAINCONTROLEFFECT_H
diff --git a/audio/effect/2.0/default/BassBoostEffect.h b/audio/effect/2.0/default/BassBoostEffect.h
index 23377e1..6636717 100644
--- a/audio/effect/2.0/default/BassBoostEffect.h
+++ b/audio/effect/2.0/default/BassBoostEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_BassBoostEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_BassBoostEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_BASSBOOSTEFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_BASSBOOSTEFFECT_H
#include <android/hardware/audio/effect/2.0/IBassBoostEffect.h>
#include <hidl/Status.h>
@@ -116,4 +116,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_BassBoostEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_BASSBOOSTEFFECT_H
diff --git a/audio/effect/2.0/default/DownmixEffect.h b/audio/effect/2.0/default/DownmixEffect.h
index 5ed4ffd..c7e1b9b 100644
--- a/audio/effect/2.0/default/DownmixEffect.h
+++ b/audio/effect/2.0/default/DownmixEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_DownmixEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_DownmixEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_DOWNMIXEFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_DOWNMIXEFFECT_H
#include <android/hardware/audio/effect/2.0/IDownmixEffect.h>
#include <hidl/Status.h>
@@ -115,4 +115,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_DownmixEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_DOWNMIXEFFECT_H
diff --git a/audio/effect/2.0/default/Effect.h b/audio/effect/2.0/default/Effect.h
index e27a7e4..82eb1f2 100644
--- a/audio/effect/2.0/default/Effect.h
+++ b/audio/effect/2.0/default/Effect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_Effect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_Effect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EFFECT_H
#include <vector>
@@ -256,4 +256,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_Effect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EFFECT_H
diff --git a/audio/effect/2.0/default/EffectsFactory.h b/audio/effect/2.0/default/EffectsFactory.h
index d934c93..829a534 100644
--- a/audio/effect/2.0/default/EffectsFactory.h
+++ b/audio/effect/2.0/default/EffectsFactory.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_EffectsFactory_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_EffectsFactory_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EFFECTSFACTORY_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EFFECTSFACTORY_H
#include <system/audio_effect.h>
@@ -63,4 +63,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_EffectsFactory_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EFFECTSFACTORY_H
diff --git a/audio/effect/2.0/default/EnvironmentalReverbEffect.h b/audio/effect/2.0/default/EnvironmentalReverbEffect.h
index c97c51c..edb5747 100644
--- a/audio/effect/2.0/default/EnvironmentalReverbEffect.h
+++ b/audio/effect/2.0/default/EnvironmentalReverbEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_EnvironmentalReverbEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_EnvironmentalReverbEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_ENVIRONMENTALREVERBEFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_ENVIRONMENTALREVERBEFFECT_H
#include <system/audio_effects/effect_environmentalreverb.h>
@@ -157,4 +157,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_EnvironmentalReverbEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_ENVIRONMENTALREVERBEFFECT_H
diff --git a/audio/effect/2.0/default/EqualizerEffect.h b/audio/effect/2.0/default/EqualizerEffect.h
index 5665e9c..ba99e2b 100644
--- a/audio/effect/2.0/default/EqualizerEffect.h
+++ b/audio/effect/2.0/default/EqualizerEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_EqualizerEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_EqualizerEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EQUALIZEREFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EQUALIZEREFFECT_H
#include <vector>
@@ -147,4 +147,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_EqualizerEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_EQUALIZEREFFECT_H
diff --git a/audio/effect/2.0/default/LoudnessEnhancerEffect.h b/audio/effect/2.0/default/LoudnessEnhancerEffect.h
index e68b038..8ca6e94 100644
--- a/audio/effect/2.0/default/LoudnessEnhancerEffect.h
+++ b/audio/effect/2.0/default/LoudnessEnhancerEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_LoudnessEnhancerEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_LoudnessEnhancerEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_LOUDNESSENHANCEREFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_LOUDNESSENHANCEREFFECT_H
#include <android/hardware/audio/effect/2.0/ILoudnessEnhancerEffect.h>
#include <hidl/Status.h>
@@ -125,4 +125,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_LoudnessEnhancerEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_LOUDNESSENHANCEREFFECT_H
diff --git a/audio/effect/2.0/default/NoiseSuppressionEffect.h b/audio/effect/2.0/default/NoiseSuppressionEffect.h
index 83e513e..b73727e 100644
--- a/audio/effect/2.0/default/NoiseSuppressionEffect.h
+++ b/audio/effect/2.0/default/NoiseSuppressionEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_NoiseSuppressionEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_NoiseSuppressionEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_NOISESUPPRESSIONEFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_NOISESUPPRESSIONEFFECT_H
#include <system/audio_effects/effect_ns.h>
@@ -139,4 +139,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_NoiseSuppressionEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_NOISESUPPRESSIONEFFECT_H
diff --git a/audio/effect/2.0/default/PresetReverbEffect.h b/audio/effect/2.0/default/PresetReverbEffect.h
index 3d98102..4d39569 100644
--- a/audio/effect/2.0/default/PresetReverbEffect.h
+++ b/audio/effect/2.0/default/PresetReverbEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_PresetReverbEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_PresetReverbEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_PRESETREVERBEFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_PRESETREVERBEFFECT_H
#include <android/hardware/audio/effect/2.0/IPresetReverbEffect.h>
#include <hidl/Status.h>
@@ -125,4 +125,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_PresetReverbEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_PRESETREVERBEFFECT_H
diff --git a/audio/effect/2.0/default/VirtualizerEffect.h b/audio/effect/2.0/default/VirtualizerEffect.h
index 2731c4e..ba89a61 100644
--- a/audio/effect/2.0/default/VirtualizerEffect.h
+++ b/audio/effect/2.0/default/VirtualizerEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_VirtualizerEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_VirtualizerEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_VIRTUALIZEREFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_VIRTUALIZEREFFECT_H
#include <android/hardware/audio/effect/2.0/IVirtualizerEffect.h>
#include <hidl/Status.h>
@@ -136,4 +136,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_VirtualizerEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_VIRTUALIZEREFFECT_H
diff --git a/audio/effect/2.0/default/VisualizerEffect.h b/audio/effect/2.0/default/VisualizerEffect.h
index 505b16f..ae0b05c 100644
--- a/audio/effect/2.0/default/VisualizerEffect.h
+++ b/audio/effect/2.0/default/VisualizerEffect.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_audio_effect_V2_0_VisualizerEffect_H_
-#define HIDL_GENERATED_android_hardware_audio_effect_V2_0_VisualizerEffect_H_
+#ifndef ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_VISUALIZEREFFECT_H
+#define ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_VISUALIZEREFFECT_H
#include <android/hardware/audio/effect/2.0/IVisualizerEffect.h>
#include <hidl/Status.h>
@@ -135,4 +135,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_audio_effect_V2_0_VisualizerEffect_H_
+#endif // ANDROID_HARDWARE_AUDIO_EFFECT_V2_0_VISUALIZEREFFECT_H
diff --git a/audio/effect/2.0/types.hal b/audio/effect/2.0/types.hal
index 35015b2..ad7f4ce 100644
--- a/audio/effect/2.0/types.hal
+++ b/audio/effect/2.0/types.hal
@@ -18,7 +18,7 @@
import android.hardware.audio.common@2.0;
-enum Result {
+enum Result : int32_t {
OK,
NOT_INITIALIZED,
INVALID_ARGUMENTS,
@@ -110,7 +110,7 @@
* +----------------+--------+--------------------------------------------------
*/
@export(name="", value_prefix="EFFECT_FLAG_")
-enum EffectFlags {
+enum EffectFlags : int32_t {
// Insert mode
TYPE_SHIFT = 0,
TYPE_SIZE = 3,
@@ -229,7 +229,7 @@
};
@export(name="effect_buffer_access_e", value_prefix="EFFECT_BUFFER_")
-enum EffectBufferAccess {
+enum EffectBufferAccess : int32_t {
ACCESS_WRITE,
ACCESS_READ,
ACCESS_ACCUMULATE
@@ -239,7 +239,7 @@
* Determines what fields of EffectBufferConfig need to be considered.
*/
@export(name="", value_prefix="EFFECT_CONFIG_")
-enum EffectConfigParameters {
+enum EffectConfigParameters : int32_t {
BUFFER = 0x0001, // buffer field
SMP_RATE = 0x0002, // samplingRate
CHANNELS = 0x0004, // channels
@@ -267,7 +267,7 @@
};
@export(name="effect_feature_e", value_prefix="EFFECT_FEATURE_")
-enum EffectFeature {
+enum EffectFeature : int32_t {
AUX_CHANNELS, // supports auxiliary channels
// (e.g. dual mic noise suppressor)
CNT
diff --git a/boot/1.0/default/BootControl.cpp b/boot/1.0/default/BootControl.cpp
index 4c34168..56d7b33 100644
--- a/boot/1.0/default/BootControl.cpp
+++ b/boot/1.0/default/BootControl.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.
+ */
#define LOG_TAG "android.hardware.boot@1.0-impl"
#include <utils/Log.h>
diff --git a/boot/1.0/default/BootControl.h b/boot/1.0/default/BootControl.h
index be8a814..3d668dc 100644
--- a/boot/1.0/default/BootControl.h
+++ b/boot/1.0/default/BootControl.h
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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_BOOT_V1_0_BOOTCONTROL_H
#define ANDROID_HARDWARE_BOOT_V1_0_BOOTCONTROL_H
diff --git a/boot/1.0/default/service.cpp b/boot/1.0/default/service.cpp
index a594db6..0dc56bf 100644
--- a/boot/1.0/default/service.cpp
+++ b/boot/1.0/default/service.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.
+ */
#define LOG_TAG "android.hardware.boot@1.0-service"
#include <android/hardware/boot/1.0/IBootControl.h>
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/broadcastradio/1.0/default/BroadcastRadio.h b/broadcastradio/1.0/default/BroadcastRadio.h
index dbd6e07..6764d82 100644
--- a/broadcastradio/1.0/default/BroadcastRadio.h
+++ b/broadcastradio/1.0/default/BroadcastRadio.h
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_broadcastradio_V1_0_BroadcastRadio_H_
-#define HIDL_GENERATED_android_hardware_broadcastradio_V1_0_BroadcastRadio_H_
+#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_0_BROADCASTRADIO_H
+#define ANDROID_HARDWARE_BROADCASTRADIO_V1_0_BROADCASTRADIO_H
#include <android/hardware/broadcastradio/1.0/IBroadcastRadio.h>
#include <hidl/Status.h>
@@ -68,4 +68,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_broadcastradio_V1_0_BroadcastRadio_H_
+#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_0_BROADCASTRADIO_H
diff --git a/broadcastradio/1.0/default/BroadcastRadioFactory.h b/broadcastradio/1.0/default/BroadcastRadioFactory.h
index 9b2ca17..97f7f55 100644
--- a/broadcastradio/1.0/default/BroadcastRadioFactory.h
+++ b/broadcastradio/1.0/default/BroadcastRadioFactory.h
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_broadcastradio_V1_0_BroadcastRadioFactory_H_
-#define HIDL_GENERATED_android_hardware_broadcastradio_V1_0_BroadcastRadioFactory_H_
+#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_0_BROADCASTRADIOFACTORY_H
+#define ANDROID_HARDWARE_BROADCASTRADIO_V1_0_BROADCASTRADIOFACTORY_H
#include <android/hardware/broadcastradio/1.0/IBroadcastRadioFactory.h>
#include <hidl/Status.h>
@@ -40,4 +40,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_broadcastradio_V1_0_BroadcastRadioFactory_H_
+#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_0_BROADCASTRADIOFACTORY_H
diff --git a/broadcastradio/1.0/default/Tuner.h b/broadcastradio/1.0/default/Tuner.h
index 94e216e..a621d97 100644
--- a/broadcastradio/1.0/default/Tuner.h
+++ b/broadcastradio/1.0/default/Tuner.h
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_broadcastradio_V1_0_Tuner_H_
-#define HIDL_GENERATED_android_hardware_broadcastradio_V1_0_Tuner_H_
+#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_0_TUNER_H
+#define ANDROID_HARDWARE_BROADCASTRADIO_V1_0_TUNER_H
#include <android/hardware/broadcastradio/1.0/ITuner.h>
#include <android/hardware/broadcastradio/1.0/ITunerCallback.h>
@@ -64,4 +64,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_broadcastradio_V1_0_Tuner_H_
+#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_0_TUNER_H
diff --git a/broadcastradio/1.0/types.hal b/broadcastradio/1.0/types.hal
index d04359c..d8b2da3 100644
--- a/broadcastradio/1.0/types.hal
+++ b/broadcastradio/1.0/types.hal
@@ -16,7 +16,7 @@
package android.hardware.broadcastradio@1.0;
-enum Result {
+enum Result : int32_t {
OK,
NOT_INITIALIZED,
INVALID_ARGUMENTS,
@@ -139,7 +139,7 @@
vec<BandConfig> bands; /* band descriptors */
};
-enum MetadataType {
+enum MetadataType : int32_t {
INVALID = -1,
/* Signed 32 bit integer */
INT = 0,
@@ -152,7 +152,7 @@
CLOCK = 3,
};
-enum MetadataKey {
+enum MetadataKey : int32_t {
INVALID = -1,
/* RDS PI - string */
RDS_PI = 0,
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/broadcastradio/1.0/vts/functional/Android.bp b/broadcastradio/1.0/vts/functional/Android.bp
new file mode 100644
index 0000000..0edfcab
--- /dev/null
+++ b/broadcastradio/1.0/vts/functional/Android.bp
@@ -0,0 +1,37 @@
+//
+// Copyright (C) 2016 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.
+//
+
+cc_test {
+ name: "broadcastradio_hidl_hal_test",
+ gtest: true,
+ srcs: ["broadcastradio_hidl_hal_test.cpp"],
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libcutils",
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libnativehelper",
+ "libutils",
+ "android.hardware.broadcastradio@1.0",
+ ],
+ static_libs: ["libgtest"],
+ cflags: [
+ "-O0",
+ "-g",
+ ],
+}
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/broadcastradio/1.0/vts/functional/broadcastradio_hidl_hal_test.cpp b/broadcastradio/1.0/vts/functional/broadcastradio_hidl_hal_test.cpp
new file mode 100644
index 0000000..26666d6
--- /dev/null
+++ b/broadcastradio/1.0/vts/functional/broadcastradio_hidl_hal_test.cpp
@@ -0,0 +1,471 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
+#define LOG_TAG "BroadcastRadioHidlHalTest"
+#include <gtest/gtest.h>
+#include <android-base/logging.h>
+#include <cutils/native_handle.h>
+#include <cutils/properties.h>
+#include <utils/threads.h>
+#include <hwbinder/IPCThreadState.h>
+#include <hwbinder/ProcessState.h>
+
+#include <android/hardware/broadcastradio/1.0/IBroadcastRadioFactory.h>
+#include <android/hardware/broadcastradio/1.0/IBroadcastRadio.h>
+#include <android/hardware/broadcastradio/1.0/ITuner.h>
+#include <android/hardware/broadcastradio/1.0/ITunerCallback.h>
+#include <android/hardware/broadcastradio/1.0/types.h>
+
+
+using ::android::sp;
+using ::android::Mutex;
+using ::android::Condition;
+using ::android::hardware::ProcessState;
+using ::android::hardware::Return;
+using ::android::hardware::Status;
+using ::android::hardware::Void;
+using ::android::hardware::broadcastradio::V1_0::IBroadcastRadioFactory;
+using ::android::hardware::broadcastradio::V1_0::IBroadcastRadio;
+using ::android::hardware::broadcastradio::V1_0::ITuner;
+using ::android::hardware::broadcastradio::V1_0::ITunerCallback;
+using ::android::hardware::broadcastradio::V1_0::Result;
+using ::android::hardware::broadcastradio::V1_0::Class;
+using ::android::hardware::broadcastradio::V1_0::Properties;
+using ::android::hardware::broadcastradio::V1_0::BandConfig;
+using ::android::hardware::broadcastradio::V1_0::Direction;
+using ::android::hardware::broadcastradio::V1_0::ProgramInfo;
+using ::android::hardware::broadcastradio::V1_0::MetaData;
+
+
+// The main test class for Sound Trigger HIDL HAL.
+
+class BroadcastRadioHidlTest : public ::testing::Test {
+ protected:
+ virtual void SetUp() override {
+ bool getStub = false;
+ char getsubProperty[PROPERTY_VALUE_MAX];
+ if (property_get("vts.hidl.get_stub", getsubProperty, "") > 0) {
+ if (!strcmp(getsubProperty, "true") ||
+ !strcmp(getsubProperty, "True") ||
+ !strcmp(getsubProperty, "1")) {
+ getStub = true;
+ }
+ }
+ sp<IBroadcastRadioFactory> factory =
+ IBroadcastRadioFactory::getService("broadcastradio", getStub);
+ if (factory != 0) {
+ factory->connectModule(Class::AM_FM,
+ [&](Result retval, const ::android::sp<IBroadcastRadio>& result) {
+ if (retval == Result::OK) {
+ mRadio = result;
+ }
+ });
+ }
+ mTunerCallback = new MyCallback(this);
+ ASSERT_NE(nullptr, mRadio.get());
+ ASSERT_EQ(!getStub, mRadio->isRemote());
+ ASSERT_NE(nullptr, mTunerCallback.get());
+ }
+
+ virtual void TearDown() override {
+ mTuner.clear();
+ mRadio.clear();
+ }
+
+ class MyCallback : public ITunerCallback {
+ public:
+
+ // ITunerCallback methods (see doc in ITunerCallback.hal)
+ virtual Return<void> hardwareFailure() {
+ ALOGI("%s", __FUNCTION__);
+ mParentTest->onHwFailureCallback();
+ return Void();
+ }
+
+ virtual Return<void> configChange(Result result, const BandConfig& config __unused) {
+ ALOGI("%s result %d", __FUNCTION__, result);
+ mParentTest->onResultCallback(result);
+ return Void();
+ }
+
+ virtual Return<void> tuneComplete(Result result, const ProgramInfo& info __unused) {
+ ALOGI("%s result %d", __FUNCTION__, result);
+ mParentTest->onResultCallback(result);
+ return Void();
+ }
+
+ virtual Return<void> afSwitch(const ProgramInfo& info __unused) {
+ return Void();
+ }
+
+ virtual Return<void> antennaStateChange(bool connected) {
+ ALOGI("%s connected %d", __FUNCTION__, connected);
+ return Void();
+ }
+
+ virtual Return<void> trafficAnnouncement(bool active) {
+ ALOGI("%s active %d", __FUNCTION__, active);
+ return Void();
+ }
+
+ virtual Return<void> emergencyAnnouncement(bool active) {
+ ALOGI("%s active %d", __FUNCTION__, active);
+ return Void();
+ }
+
+ virtual Return<void> newMetadata(uint32_t channel __unused, uint32_t subChannel __unused,
+ const ::android::hardware::hidl_vec<MetaData>& metadata __unused) {
+ ALOGI("%s", __FUNCTION__);
+ return Void();
+ }
+
+ MyCallback(BroadcastRadioHidlTest *parentTest) : mParentTest(parentTest) {}
+
+ private:
+ // BroadcastRadioHidlTest instance to which callbacks will be notified.
+ BroadcastRadioHidlTest *mParentTest;
+ };
+
+
+ /**
+ * Method called by MyCallback when a callback with no status or boolean value is received
+ */
+ void onCallback() {
+ Mutex::Autolock _l(mLock);
+ onCallback_l();
+ }
+
+ /**
+ * Method called by MyCallback when hardwareFailure() callback is received
+ */
+ void onHwFailureCallback() {
+ Mutex::Autolock _l(mLock);
+ mHwFailure = true;
+ onCallback_l();
+ }
+
+ /**
+ * Method called by MyCallback when a callback with status is received
+ */
+ void onResultCallback(Result result) {
+ Mutex::Autolock _l(mLock);
+ mResultCallbackData = result;
+ onCallback_l();
+ }
+
+ /**
+ * Method called by MyCallback when a boolean indication is received
+ */
+ void onBoolCallback(bool result) {
+ Mutex::Autolock _l(mLock);
+ mBoolCallbackData = result;
+ onCallback_l();
+ }
+
+
+ BroadcastRadioHidlTest() :
+ mCallbackCalled(false), mBoolCallbackData(false),
+ mResultCallbackData(Result::OK), mHwFailure(false) {}
+
+ void onCallback_l() {
+ if (!mCallbackCalled) {
+ mCallbackCalled = true;
+ mCallbackCond.broadcast();
+ }
+ }
+
+
+ bool waitForCallback(nsecs_t reltime = 0) {
+ Mutex::Autolock _l(mLock);
+ nsecs_t endTime = systemTime() + reltime;
+ while (!mCallbackCalled) {
+ if (reltime == 0) {
+ mCallbackCond.wait(mLock);
+ } else {
+ nsecs_t now = systemTime();
+ if (now > endTime) {
+ return false;
+ }
+ mCallbackCond.waitRelative(mLock, endTime - now);
+ }
+ }
+ return true;
+ }
+
+ bool getProperties();
+ bool openTuner();
+ bool checkAntenna();
+
+ static const nsecs_t kConfigCallbacktimeoutNs = seconds_to_nanoseconds(10);
+ static const nsecs_t kTuneCallbacktimeoutNs = seconds_to_nanoseconds(30);
+
+ sp<IBroadcastRadio> mRadio;
+ Properties mHalProperties;
+ sp<ITuner> mTuner;
+ sp<MyCallback> mTunerCallback;
+ Mutex mLock;
+ Condition mCallbackCond;
+ bool mCallbackCalled;
+ bool mBoolCallbackData;
+ Result mResultCallbackData;
+ bool mHwFailure;
+};
+
+// A class for test environment setup (kept since this file is a template).
+class BroadcastRadioHidlEnvironment : public ::testing::Environment {
+ public:
+ virtual void SetUp() {}
+ virtual void TearDown() {}
+};
+
+bool BroadcastRadioHidlTest::getProperties()
+{
+ if (mHalProperties.bands.size() == 0) {
+ Result halResult = Result::NOT_INITIALIZED;
+ Return<void> hidlReturn =
+ mRadio->getProperties([&](Result result, const Properties& properties) {
+ halResult = result;
+ if (result == Result::OK) {
+ mHalProperties = properties;
+ }
+ });
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, halResult);
+ EXPECT_EQ(Class::AM_FM, mHalProperties.classId);
+ EXPECT_GT(mHalProperties.numTuners, 0u);
+ EXPECT_GT(mHalProperties.bands.size(), 0u);
+ }
+ return mHalProperties.bands.size() > 0;
+}
+
+bool BroadcastRadioHidlTest::openTuner()
+{
+ if (!getProperties()) {
+ return false;
+ }
+ if (mTuner.get() == nullptr) {
+ Result halResult = Result::NOT_INITIALIZED;
+ Return<void> hidlReturn =
+ mRadio->openTuner(mHalProperties.bands[0], true, mTunerCallback,
+ [&](Result result, const sp<ITuner>& tuner) {
+ halResult = result;
+ if (result == Result::OK) {
+ mTuner = tuner;
+ }
+ });
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, halResult);
+ EXPECT_EQ(true, waitForCallback(kConfigCallbacktimeoutNs));
+ }
+ EXPECT_NE(nullptr, mTuner.get());
+ return nullptr != mTuner.get();
+}
+
+bool BroadcastRadioHidlTest::checkAntenna()
+{
+ BandConfig halConfig;
+ Result halResult = Result::NOT_INITIALIZED;
+ Return<void> hidlReturn =
+ mTuner->getConfiguration([&](Result result, const BandConfig& config) {
+ halResult = result;
+ if (result == Result::OK) {
+ halConfig = config;
+ }
+ });
+
+ return ((halResult == Result::OK) && (halConfig.antennaConnected == true));
+}
+
+
+/**
+ * Test IBroadcastRadio::getProperties() method
+ *
+ * Verifies that:
+ * - the HAL implements the method
+ * - the method returns 0 (no error)
+ * - the implementation class is AM_FM
+ * - the implementation supports at least one tuner
+ * - the implementation supports at one band
+ */
+TEST_F(BroadcastRadioHidlTest, GetProperties) {
+ EXPECT_EQ(true, getProperties());
+}
+
+/**
+ * Test IBroadcastRadio::openTuner() method
+ *
+ * Verifies that:
+ * - the HAL implements the method
+ * - the method returns 0 (no error) and a valid ITuner interface
+ */
+TEST_F(BroadcastRadioHidlTest, OpenTuner) {
+ EXPECT_EQ(true, openTuner());
+}
+
+/**
+ * Test ITuner::setConfiguration() and getConfiguration methods
+ *
+ * Verifies that:
+ * - the HAL implements both methods
+ * - the methods return 0 (no error)
+ * - the configuration callback is received within kConfigCallbacktimeoutNs ns
+ * - the configuration read back from HAl has the same class Id
+ */
+TEST_F(BroadcastRadioHidlTest, SetAndGetConfiguration) {
+ ASSERT_EQ(true, openTuner());
+ // test setConfiguration
+ mCallbackCalled = false;
+ Return<Result> hidlResult = mTuner->setConfiguration(mHalProperties.bands[0]);
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+ EXPECT_EQ(true, waitForCallback(kConfigCallbacktimeoutNs));
+ EXPECT_EQ(Result::OK, mResultCallbackData);
+
+ // test getConfiguration
+ BandConfig halConfig;
+ Result halResult;
+ Return<void> hidlReturn =
+ mTuner->getConfiguration([&](Result result, const BandConfig& config) {
+ halResult = result;
+ if (result == Result::OK) {
+ halConfig = config;
+ }
+ });
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, halResult);
+ EXPECT_EQ(mHalProperties.bands[0].type, halConfig.type);
+}
+
+/**
+ * Test ITuner::scan
+ *
+ * Verifies that:
+ * - the HAL implements the method
+ * - the method returns 0 (no error)
+ * - the tuned callback is received within kTuneCallbacktimeoutNs ns
+ */
+TEST_F(BroadcastRadioHidlTest, Scan) {
+ ASSERT_EQ(true, openTuner());
+ ASSERT_TRUE(checkAntenna());
+ // test scan UP
+ mCallbackCalled = false;
+ Return<Result> hidlResult = mTuner->scan(Direction::UP, true);
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+ EXPECT_EQ(true, waitForCallback(kTuneCallbacktimeoutNs));
+
+ // test scan DOWN
+ mCallbackCalled = false;
+ hidlResult = mTuner->scan(Direction::DOWN, true);
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+ EXPECT_EQ(true, waitForCallback(kTuneCallbacktimeoutNs));
+}
+
+/**
+ * Test ITuner::step
+ *
+ * Verifies that:
+ * - the HAL implements the method
+ * - the method returns 0 (no error)
+ * - the tuned callback is received within kTuneCallbacktimeoutNs ns
+ */
+TEST_F(BroadcastRadioHidlTest, Step) {
+ ASSERT_EQ(true, openTuner());
+ ASSERT_TRUE(checkAntenna());
+ // test step UP
+ mCallbackCalled = false;
+ Return<Result> hidlResult = mTuner->step(Direction::UP, true);
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+ EXPECT_EQ(true, waitForCallback(kTuneCallbacktimeoutNs));
+
+ // test step DOWN
+ mCallbackCalled = false;
+ hidlResult = mTuner->step(Direction::DOWN, true);
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+ EXPECT_EQ(true, waitForCallback(kTuneCallbacktimeoutNs));
+}
+
+/**
+ * Test ITuner::tune, getProgramInformation and cancel methods
+ *
+ * Verifies that:
+ * - the HAL implements the methods
+ * - the methods return 0 (no error)
+ * - the tuned callback is received within kTuneCallbacktimeoutNs ns after tune()
+ */
+TEST_F(BroadcastRadioHidlTest, TuneAndGetProgramInformationAndCancel) {
+ ASSERT_EQ(true, openTuner());
+ ASSERT_TRUE(checkAntenna());
+
+ // test tune
+ ASSERT_GT(mHalProperties.bands[0].spacings.size(), 0u);
+ ASSERT_GT(mHalProperties.bands[0].upperLimit, mHalProperties.bands[0].lowerLimit);
+
+ // test scan UP
+ uint32_t lowerLimit = mHalProperties.bands[0].lowerLimit;
+ uint32_t upperLimit = mHalProperties.bands[0].upperLimit;
+ uint32_t spacing = mHalProperties.bands[0].spacings[0];
+
+ uint32_t channel =
+ lowerLimit + (((upperLimit - lowerLimit) / 2 + spacing - 1) / spacing) * spacing;
+ mCallbackCalled = false;
+ mResultCallbackData = Result::NOT_INITIALIZED;
+ Return<Result> hidlResult = mTuner->tune(channel, 0);
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+ EXPECT_EQ(true, waitForCallback(kTuneCallbacktimeoutNs));
+
+ // test getProgramInformation
+ ProgramInfo halInfo;
+ Result halResult = Result::NOT_INITIALIZED;
+ Return<void> hidlReturn = mTuner->getProgramInformation(
+ false, [&](Result result, const ProgramInfo& info) {
+ halResult = result;
+ if (result == Result::OK) {
+ halInfo = info;
+ }
+ });
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, halResult);
+ if (mResultCallbackData == Result::OK) {
+ EXPECT_EQ(true, halInfo.tuned);
+ EXPECT_LE(halInfo.channel, upperLimit);
+ EXPECT_GE(halInfo.channel, lowerLimit);
+ } else {
+ EXPECT_EQ(false, halInfo.tuned);
+ }
+
+ // test cancel
+ mTuner->tune(lowerLimit, 0);
+ hidlResult = mTuner->cancel();
+ EXPECT_EQ(Status::EX_NONE, hidlResult.getStatus().exceptionCode());
+ EXPECT_EQ(Result::OK, hidlResult);
+}
+
+
+int main(int argc, char** argv) {
+ sp<ProcessState> proc(ProcessState::self());
+ ProcessState::self()->startThreadPool();
+ ::testing::AddGlobalTestEnvironment(new BroadcastRadioHidlEnvironment);
+ ::testing::InitGoogleTest(&argc, argv);
+ int status = RUN_ALL_TESTS();
+ ALOGI("Test result = %d", status);
+ return status;
+}
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/vts/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/vts/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/vts/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/vts/testcases/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/vts/testcases/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/vts/testcases/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/vts/testcases/hal/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/vts/testcases/hal/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/vts/testcases/hal/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/target/Android.mk
similarity index 67%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/target/Android.mk
index b6ee3a3..153dcd6 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/target/Android.mk
@@ -20,14 +20,6 @@
include $(CLEAR_VARS)
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
+LOCAL_MODULE := HalBroadcastRadioHidlTargetBasicTest
+VTS_CONFIG_SRC_DIR := testcases/hal/broadcastradio/hidl/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/target/AndroidTest.xml b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/target/AndroidTest.xml
new file mode 100644
index 0000000..4c03855
--- /dev/null
+++ b/broadcastradio/1.0/vts/functional/vts/testcases/hal/broadcastradio/hidl/target/AndroidTest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<configuration description="Config for VTS broadcast radio HIDL HAL's basic target-side test cases">
+ <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+ <option name="push-group" value="HidlHalTest.push" />
+ </target_preparer>
+ <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+ <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+ <option name="test-module-name" value="HalBroadcastRadioHidlTargetBasicTest" />
+ <option name="binary-test-sources" value="
+ _32bit::DATA/nativetest/broadcastradio_hidl_hal_test/broadcastradio_hidl_hal_test,
+ _64bit::DATA/nativetest64/broadcastradio_hidl_hal_test/broadcastradio_hidl_hal_test,
+ "/>
+ <option name="binary-test-type" value="gtest" />
+ <option name="test-timeout" value="5m" />
+ </test>
+</configuration>
diff --git a/broadcastradio/Android.bp b/broadcastradio/Android.bp
index bbb3e4b..33f70eb 100644
--- a/broadcastradio/Android.bp
+++ b/broadcastradio/Android.bp
@@ -1,4 +1,5 @@
// This is an autogenerated file, do not edit.
subdirs = [
"1.0",
+ "1.0/vts/functional",
]
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/broadcastradio/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to broadcastradio/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/broadcastradio/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/contexthub/1.0/types.hal b/contexthub/1.0/types.hal
index 7d5a1ac..b9f014b 100644
--- a/contexthub/1.0/types.hal
+++ b/contexthub/1.0/types.hal
@@ -138,7 +138,7 @@
RESTARTED = 1, // Hub restarted unexpectedly
};
-enum TransactionResult {
+enum TransactionResult : int32_t {
SUCCESS, // successful completion of transaction
FAILURE, // failed transaction
};
diff --git a/dumpstate/1.0/default/DumpstateDevice.cpp b/dumpstate/1.0/default/DumpstateDevice.cpp
index a279b89..4264235 100644
--- a/dumpstate/1.0/default/DumpstateDevice.cpp
+++ b/dumpstate/1.0/default/DumpstateDevice.cpp
@@ -1,3 +1,19 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
#define LOG_TAG "dumpstate"
#include "DumpstateDevice.h"
@@ -28,11 +44,9 @@
ALOGI("Dumpstate HIDL not provided by device\n");
dprintf(fd, "Dumpstate HIDL not provided by device; providing bogus data.\n");
- // Shows some examples on how to use the libdumpstateutils API.
- dprintf(fd, "Time now is: ");
- RunCommandToFd(fd, {"/system/bin/date"});
- dprintf(fd, "Contents of a small file (/system/etc/hosts):\n");
- DumpFileToFd(fd, "/system/etc/hosts");
+ // Shows some examples on how to use the libdumpstateutil API.
+ RunCommandToFd(fd, "DATE", {"/system/bin/date"});
+ DumpFileToFd(fd, "HOSTS", "/system/etc/hosts");
return Void();
}
diff --git a/dumpstate/1.0/default/DumpstateDevice.h b/dumpstate/1.0/default/DumpstateDevice.h
index 6f860c0..f216304 100644
--- a/dumpstate/1.0/default/DumpstateDevice.h
+++ b/dumpstate/1.0/default/DumpstateDevice.h
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H
#define ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H
diff --git a/example/extension/light/2.0/default/Light.cpp b/example/extension/light/2.0/default/Light.cpp
index d738a6d..2e56319 100644
--- a/example/extension/light/2.0/default/Light.cpp
+++ b/example/extension/light/2.0/default/Light.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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 "Light.h"
namespace android {
diff --git a/example/extension/light/2.0/default/Light.h b/example/extension/light/2.0/default/Light.h
index e09ec92..e3b60df 100644
--- a/example/extension/light/2.0/default/Light.h
+++ b/example/extension/light/2.0/default/Light.h
@@ -1,5 +1,20 @@
-#ifndef HIDL_GENERATED_android_hardware_example_extension_light_V2_0_Light_H_
-#define HIDL_GENERATED_android_hardware_example_extension_light_V2_0_Light_H_
+/*
+ * Copyright (C) 2016 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_EXAMPLE_EXTENSION_LIGHT_V2_0_LIGHT_H
+#define ANDROID_HARDWARE_EXAMPLE_EXTENSION_LIGHT_V2_0_LIGHT_H
#include <android/hardware/example/extension/light/2.0/IExtLight.h>
#include <hidl/Status.h>
@@ -43,4 +58,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_example_extension_light_V2_0_Light_H_
+#endif // ANDROID_HARDWARE_EXAMPLE_EXTENSION_LIGHT_V2_0_LIGHT_H
diff --git a/example/extension/light/2.0/default/service.cpp b/example/extension/light/2.0/default/service.cpp
index d21afa6..ae00506 100644
--- a/example/extension/light/2.0/default/service.cpp
+++ b/example/extension/light/2.0/default/service.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.
+ */
#define LOG_TAG "android.hardware.light@2.0-service"
#include <utils/Log.h>
diff --git a/gatekeeper/1.0/IGatekeeper.hal b/gatekeeper/1.0/IGatekeeper.hal
index 999a311..c193477 100644
--- a/gatekeeper/1.0/IGatekeeper.hal
+++ b/gatekeeper/1.0/IGatekeeper.hal
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.gatekeeper@1.0;
interface IGatekeeper {
diff --git a/gatekeeper/1.0/default/Gatekeeper.cpp b/gatekeeper/1.0/default/Gatekeeper.cpp
index 8fcd8ca..35b8c02 100644
--- a/gatekeeper/1.0/default/Gatekeeper.cpp
+++ b/gatekeeper/1.0/default/Gatekeeper.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.
+ */
#define LOG_TAG "android.hardware.gatekeeper@1.0-service"
#include <utils/Log.h>
diff --git a/gatekeeper/1.0/default/Gatekeeper.h b/gatekeeper/1.0/default/Gatekeeper.h
index a2188d4..4cc01f6 100644
--- a/gatekeeper/1.0/default/Gatekeeper.h
+++ b/gatekeeper/1.0/default/Gatekeeper.h
@@ -1,5 +1,20 @@
-#ifndef HIDL_GENERATED_android_hardware_gatekeeper_V1_0_Gatekeeper_H_
-#define HIDL_GENERATED_android_hardware_gatekeeper_V1_0_Gatekeeper_H_
+/*
+ * Copyright (C) 2016 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_GATEKEEPER_V1_0_GATEKEEPER_H
+#define ANDROID_HARDWARE_GATEKEEPER_V1_0_GATEKEEPER_H
#include <android/hardware/gatekeeper/1.0/IGatekeeper.h>
#include <hidl/Status.h>
@@ -54,4 +69,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_gatekeeper_V1_0_Gatekeeper_H_
+#endif // ANDROID_HARDWARE_GATEKEEPER_V1_0_GATEKEEPER_H
diff --git a/gatekeeper/1.0/default/service.cpp b/gatekeeper/1.0/default/service.cpp
index c3fc25c..407cf71 100644
--- a/gatekeeper/1.0/default/service.cpp
+++ b/gatekeeper/1.0/default/service.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.
+ */
#define LOG_TAG "android.hardware.gatekeeper@1.0-service"
#include <android/hardware/gatekeeper/1.0/IGatekeeper.h>
diff --git a/gatekeeper/1.0/types.hal b/gatekeeper/1.0/types.hal
index 9ab1152..8c184ee 100644
--- a/gatekeeper/1.0/types.hal
+++ b/gatekeeper/1.0/types.hal
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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.gatekeeper@1.0;
/**
diff --git a/gnss/1.0/IAGnssRil.hal b/gnss/1.0/IAGnssRil.hal
index fb73498..7363d46 100644
--- a/gnss/1.0/IAGnssRil.hal
+++ b/gnss/1.0/IAGnssRil.hal
@@ -41,7 +41,7 @@
WIMAX = 6,
};
- enum AGnssRefLocationType {
+ enum AGnssRefLocationType : int32_t {
GSM_CELLID = 1,
UMTS_CELLID = 2,
MAC = 3,
diff --git a/health/1.0/default/Health.h b/health/1.0/default/Health.h
index c05751f..ed364c1 100644
--- a/health/1.0/default/Health.h
+++ b/health/1.0/default/Health.h
@@ -1,5 +1,20 @@
-#ifndef HIDL_GENERATED_android_hardware_health_V1_0_Health_H_
-#define HIDL_GENERATED_android_hardware_health_V1_0_Health_H_
+/*
+ * Copyright (C) 2016 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_HEALTH_V1_0_HEALTH_H
+#define ANDROID_HARDWARE_HEALTH_V1_0_HEALTH_H
#include <android/hardware/health/1.0/IHealth.h>
#include <hidl/Status.h>
@@ -39,4 +54,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_health_V1_0_Health_H_
+#endif // ANDROID_HARDWARE_HEALTH_V1_0_HEALTH_H
diff --git a/light/2.0/default/Light.cpp b/light/2.0/default/Light.cpp
index fe94e91..eb1f559 100644
--- a/light/2.0/default/Light.cpp
+++ b/light/2.0/default/Light.cpp
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2016 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 "Light.h"
namespace android {
diff --git a/light/2.0/default/Light.h b/light/2.0/default/Light.h
index b32a09a..8987036 100644
--- a/light/2.0/default/Light.h
+++ b/light/2.0/default/Light.h
@@ -1,5 +1,20 @@
-#ifndef HIDL_GENERATED_android_hardware_light_V2_0_Light_H_
-#define HIDL_GENERATED_android_hardware_light_V2_0_Light_H_
+/*
+ * Copyright (C) 2016 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_LIGHT_V2_0_LIGHT_H
+#define ANDROID_HARDWARE_LIGHT_V2_0_LIGHT_H
#include <android/hardware/light/2.0/ILight.h>
#include <hardware/hardware.h>
@@ -43,4 +58,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_light_V2_0_Light_H_
+#endif // ANDROID_HARDWARE_LIGHT_V2_0_LIGHT_H
diff --git a/media/omx/1.0/IGraphicBufferSource.hal b/media/omx/1.0/IGraphicBufferSource.hal
index bee57ac..a5b5813 100644
--- a/media/omx/1.0/IGraphicBufferSource.hal
+++ b/media/omx/1.0/IGraphicBufferSource.hal
@@ -47,7 +47,7 @@
setStartTimeUs(int64_t startTimeUs)
generates (Status status);
- setColorAspects(uint32_t aspects) // TODO: Maybe break down aspects.
+ setColorAspects(ColorAspects aspects)
generates (Status status);
setTimeOffsetUs(int64_t timeOffsetUs)
diff --git a/media/omx/1.0/types.hal b/media/omx/1.0/types.hal
index c0350de..5918b59 100644
--- a/media/omx/1.0/types.hal
+++ b/media/omx/1.0/types.hal
@@ -112,7 +112,7 @@
/**
* There are four main types of buffers.
*/
- enum Type {
+ enum Type : int32_t {
INVALID = 0,
PRESET,
SHARED_MEM,
@@ -164,7 +164,7 @@
*
* Enumeration of port modes.
*/
-enum PortMode {
+enum PortMode : int32_t {
PRESET_START = 0,
PRESET_BYTE_BUFFER,
PRESET_ANW_BUFFER,
@@ -176,3 +176,71 @@
DYNAMIC_END
};
+/**
+ * Ref: frameworks/native/include/media/hardware/VideoAPI.h
+ *
+ * Framework defined color aspects. These are based mainly on ISO 23001-8 spec. As this standard
+ * continues to evolve, new values may be defined in the future. Use OTHER for these future values
+ * as well as for values not listed here, as those are not supported by the framework.
+ */
+struct ColorAspects {
+ enum Range : uint32_t {
+ UNSPECIFIED, // Unspecified
+ FULL, // Full range
+ LIMITED, // Limited range (if defined), or not full range
+
+ OTHER = 0xff, // Not one of the above values
+ };
+
+ // Color primaries
+ enum Primaries : uint32_t {
+ UNSPECIFIED, // Unspecified
+ BT709_5, // Rec.ITU-R BT.709-5 or equivalent
+ BT470_6M, // Rec.ITU-R BT.470-6 System M or equivalent
+ BT601_6_625, // Rec.ITU-R BT.601-6 625 or equivalent
+ BT601_6_525, // Rec.ITU-R BT.601-6 525 or equivalent
+ GENERIC_FILM, // Generic Film
+ BT2020, // Rec.ITU-R BT.2020 or equivalent
+
+ OTHER = 0xff, // Not one of the above values
+ };
+
+ // Transfer characteristics
+ enum Transfer : uint32_t {
+ UNSPECIFIED, // Unspecified
+ LINEAR, // Linear transfer characteristics
+ SRGB, // sRGB or equivalent
+ SMPTE170M, // SMPTE 170M or equivalent (e.g. BT.601/709/2020)
+ GAMMA22, // Assumed display gamma 2.2
+ GAMMA28, // Assumed display gamma 2.8
+ ST2084, // SMPTE ST 2084 for 10/12/14/16 bit systems
+ HLG, // ARIB STD-B67 hybrid-log-gamma
+
+ // values unlikely to be required by Android follow here
+ SMPTE240M = 0x40, // SMPTE 240M
+ XVYCC, // IEC 61966-2-4
+ BT1361, // Rec.ITU-R BT.1361 extended gamut
+ ST428, // SMPTE ST 428-1
+
+ OTHER = 0xff, // Not one of the above values
+ };
+
+ // YUV <-> RGB conversion
+ enum MatrixCoeffs : uint32_t {
+ UNSPECIFIED, // Unspecified
+ BT709_5, // Rec.ITU-R BT.709-5 or equivalent
+ BT470_6M, // KR=0.30, KB=0.11 or equivalent
+ BT601_6, // Rec.ITU-R BT.601-6 625 or equivalent
+ SMPTE240M, // SMPTE 240M or equivalent
+ BT2020, // Rec.ITU-R BT.2020 non-constant luminance
+ BT2020CONSTANT, // Rec.ITU-R BT.2020 constant luminance
+
+ OTHER = 0xff, // Not one of the above values
+ };
+
+ Range range;
+ Primaries primaries;
+ Transfer transfer;
+ MatrixCoeffs matrixCoeffs;
+};
+
diff --git a/memtrack/1.0/default/Memtrack.h b/memtrack/1.0/default/Memtrack.h
index 86dae72..a3c55e4 100644
--- a/memtrack/1.0/default/Memtrack.h
+++ b/memtrack/1.0/default/Memtrack.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_memtrack_V1_0_Memtrack_H_
-#define HIDL_GENERATED_android_hardware_memtrack_V1_0_Memtrack_H_
+#ifndef ANDROID_HARDWARE_MEMTRACK_V1_0_MEMTRACK_H
+#define ANDROID_HARDWARE_MEMTRACK_V1_0_MEMTRACK_H
#include <android/hardware/memtrack/1.0/IMemtrack.h>
#include <hidl/Status.h>
@@ -54,4 +54,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_memtrack_V1_0_Memtrack_H_
+#endif // ANDROID_HARDWARE_MEMTRACK_V1_0_MEMTRACK_H
diff --git a/nfc/1.0/types.hal b/nfc/1.0/types.hal
index a266178..3384311 100644
--- a/nfc/1.0/types.hal
+++ b/nfc/1.0/types.hal
@@ -16,6 +16,7 @@
package android.hardware.nfc@1.0;
+@export(name="", value_prefix="HAL_NFC_", value_suffix="_EVT")
enum NfcEvent : uint32_t {
OPEN_CPLT = 0,
CLOSE_CPLT = 1,
@@ -26,6 +27,7 @@
ERROR = 6
};
+@export(name="", value_prefix="HAL_NFC_STATUS_")
enum NfcStatus : uint32_t {
OK = 0,
FAILED = 1,
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config
index be540a5..3e957e3 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/host/passthrough/NfcHidlPassthroughBasicTest.config
@@ -1,6 +1,6 @@
{
"passthrough_mode": True,
"modules": ["system/lib64/hw/nfc_nci.bullhead"],
- "git_project_path": "external/libnfc-nci",
- "git_project_name": "platform/external/libnfc-nci"
+ "git_project_path": "system/nfc",
+ "git_project_name": "platform/system/nfc"
}
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml
index f692011..ee02488 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/AndroidTest.xml
@@ -26,6 +26,6 @@
"/>
<option name="test-config-path" value="vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config" />
<option name="binary-test-type" value="gtest" />
- <option name="test-timeout" value="1m" />
+ <option name="test-timeout" value="10m" />
</test>
</configuration>
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config
index 65009e4..60623b1 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target/HalNfcHidlTargetBasicTest.config
@@ -1,5 +1,5 @@
{
"modules": ["system/lib64/hw/nfc_nci.bullhead"],
- "git_project_path": "external/libnfc-nci",
- "git_project_name": "platform/external/libnfc-nci"
-}
\ No newline at end of file
+ "git_project_path": "system/nfc",
+ "git_project_name": "platform/system/nfc"
+}
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml
index e442c7c..da6cf22 100644
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml
+++ b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/AndroidTest.xml
@@ -18,14 +18,14 @@
<option name="push-group" value="HidlHalTest.push" />
</target_preparer>
<target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
- <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
- <option name="test-module-name" value="NfcHidlTargetProfilingTest" />
- <option name="binary-test-sources" value="
- _32bit::DATA/nativetest/nfc_hidl_hal_test/nfc_hidl_hal_test,
- _64bit::DATA/nativetest64/nfc_hidl_hal_test/nfc_hidl_hal_test,
- "/>
- <option name="test-config-path" value="vts/testcases/hal/nfc/hidl/target_profiling/NfcHidlTargetProfilingTest.config" />
- <option name="binary-test-type" value="gtest" />
- <option name="test-timeout" value="1m" />
- </test>
+ <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+ <option name="test-module-name" value="NfcHidlTargetProfilingTest" />
+ <option name="binary-test-sources" value="
+ _32bit::DATA/nativetest/nfc_hidl_hal_test/nfc_hidl_hal_test,
+ _64bit::DATA/nativetest64/nfc_hidl_hal_test/nfc_hidl_hal_test,
+ "/>
+ <option name="binary-test-type" value="gtest" />
+ <option name="test-timeout" value="10m" />
+ <option name="enable-profiling" value="true" />
+ </test>
</configuration>
diff --git a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/NfcHidlTargetProfilingTest.config b/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/NfcHidlTargetProfilingTest.config
deleted file mode 100644
index 912d8d5..0000000
--- a/nfc/1.0/vts/functional/vts/testcases/hal/nfc/hidl/target_profiling/NfcHidlTargetProfilingTest.config
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "enable_profiling": true
-}
\ No newline at end of file
diff --git a/power/1.0/default/Power.h b/power/1.0/default/Power.h
index a0495be..a43aefb 100644
--- a/power/1.0/default/Power.h
+++ b/power/1.0/default/Power.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_power_V1_0_Power_H_
-#define HIDL_GENERATED_android_hardware_power_V1_0_Power_H_
+#ifndef ANDROID_HARDWARE_POWER_V1_0_POWER_H
+#define ANDROID_HARDWARE_POWER_V1_0_POWER_H
#include <android/hardware/power/1.0/IPower.h>
#include <hidl/Status.h>
@@ -58,4 +58,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_power_V1_0_Power_H_
+#endif // ANDROID_HARDWARE_POWER_V1_0_POWER_H
diff --git a/power/1.0/vts/functional/Android.bp b/power/1.0/vts/functional/Android.bp
new file mode 100644
index 0000000..81dc316
--- /dev/null
+++ b/power/1.0/vts/functional/Android.bp
@@ -0,0 +1,41 @@
+//
+// Copyright (C) 2016 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.
+//
+
+cc_test {
+ name: "power_hidl_hal_test",
+ gtest: true,
+ srcs: ["power_hidl_hal_test.cpp"],
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libcutils",
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libnativehelper",
+ "libutils",
+ "android.hardware.power@1.0",
+ ],
+ static_libs: ["libgtest"],
+ cflags: [
+ "--coverage",
+ "-O0",
+ "-g",
+ ],
+ ldflags: [
+ "--coverage"
+ ]
+}
diff --git a/power/1.0/vts/functional/power_hidl_hal_test.cpp b/power/1.0/vts/functional/power_hidl_hal_test.cpp
new file mode 100644
index 0000000..ac56f1a
--- /dev/null
+++ b/power/1.0/vts/functional/power_hidl_hal_test.cpp
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
+#define LOG_TAG "power_hidl_hal_test"
+#include <android-base/logging.h>
+
+#include <android/hardware/power/1.0/IPower.h>
+
+#include <gtest/gtest.h>
+
+using ::android::hardware::power::V1_0::IPower;
+using ::android::hardware::power::V1_0::Feature;
+using ::android::hardware::power::V1_0::PowerHint;
+using ::android::hardware::power::V1_0::PowerStatePlatformSleepState;
+using ::android::hardware::power::V1_0::Status;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::Return;
+using ::android::sp;
+
+class PowerHidlTest : public ::testing::Test {
+ public:
+ virtual void SetUp() override {
+ power = IPower::getService("power");
+ ASSERT_NE(power, nullptr);
+ }
+
+ virtual void TearDown() override {}
+
+ sp<IPower> power;
+};
+
+// Sanity check Power::setInteractive.
+TEST_F(PowerHidlTest, SetInteractive) {
+ Return<void> ret;
+
+ ret = power->setInteractive(true);
+ ASSERT_TRUE(ret.getStatus().isOk());
+
+ ret = power->setInteractive(false);
+ ASSERT_TRUE(ret.getStatus().isOk());
+}
+
+// Sanity check Power::powerHint on good and bad inputs.
+TEST_F(PowerHidlTest, PowerHint) {
+ PowerHint badHint = static_cast<PowerHint>(0xA);
+ auto hints = {PowerHint::VSYNC, PowerHint::INTERACTION,
+ PowerHint::VIDEO_ENCODE, PowerHint::VIDEO_DECODE,
+ PowerHint::LOW_POWER, PowerHint::SUSTAINED_PERFORMANCE,
+ PowerHint::VR_MODE, PowerHint::LAUNCH,
+ PowerHint::DISABLE_TOUCH, badHint};
+ Return<void> ret;
+ for (auto hint : hints) {
+ ret = power->powerHint(hint, 1);
+ ASSERT_TRUE(ret.getStatus().isOk());
+
+ ret = power->powerHint(hint, 0);
+ ASSERT_TRUE(ret.getStatus().isOk());
+ }
+}
+
+// Sanity check Power::setFeature() on good and bad inputs.
+TEST_F(PowerHidlTest, SetFeature) {
+ Return<void> ret;
+ ret = power->setFeature(Feature::POWER_FEATURE_DOUBLE_TAP_TO_WAKE, true);
+ ASSERT_TRUE(ret.getStatus().isOk());
+ ret = power->setFeature(Feature::POWER_FEATURE_DOUBLE_TAP_TO_WAKE, false);
+ ASSERT_TRUE(ret.getStatus().isOk());
+
+ Feature badFeature = static_cast<Feature>(0x2);
+ ret = power->setFeature(badFeature, true);
+ ASSERT_TRUE(ret.getStatus().isOk());
+ ret = power->setFeature(badFeature, false);
+ ASSERT_TRUE(ret.getStatus().isOk());
+}
+
+// Sanity check Power::getPlatformLowPowerStats().
+TEST_F(PowerHidlTest, GetPlatformLowPowerStats) {
+ hidl_vec<PowerStatePlatformSleepState> vec;
+ Status s;
+ auto cb = [&vec, &s](hidl_vec<PowerStatePlatformSleepState> states,
+ Status status) {
+ vec = states;
+ s = status;
+ };
+ Return<void> ret = power->getPlatformLowPowerStats(cb);
+ ASSERT_TRUE(ret.getStatus().isOk());
+ ASSERT_TRUE(s == Status::SUCCESS || s == Status::FILESYSTEM_ERROR);
+}
+
+int main(int argc, char **argv) {
+ ::testing::InitGoogleTest(&argc, argv);
+ int status = RUN_ALL_TESTS();
+ ALOGI("Test result = %d", status);
+ return status;
+}
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/power/1.0/vts/functional/vts/testcases/hal/power/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to power/1.0/vts/functional/vts/testcases/hal/power/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/power/1.0/vts/functional/vts/testcases/hal/power/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/power/1.0/vts/functional/vts/testcases/hal/power/__init__.py b/power/1.0/vts/functional/vts/testcases/hal/power/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/power/1.0/vts/functional/vts/testcases/hal/power/__init__.py
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/power/1.0/vts/functional/vts/testcases/hal/power/hidl/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to power/1.0/vts/functional/vts/testcases/hal/power/hidl/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/power/1.0/vts/functional/vts/testcases/hal/power/hidl/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/power/1.0/vts/functional/vts/testcases/hal/power/hidl/target/Android.mk
similarity index 67%
rename from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
rename to power/1.0/vts/functional/vts/testcases/hal/power/hidl/target/Android.mk
index b6ee3a3..c66b6fb 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/power/1.0/vts/functional/vts/testcases/hal/power/hidl/target/Android.mk
@@ -20,14 +20,7 @@
include $(CLEAR_VARS)
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
+LOCAL_MODULE := HalPowerHidlTargetTest
+VTS_CONFIG_SRC_DIR := testcases/hal/power/hidl/target
+include test/vts/tools/build/Android.host_config.mk
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/power/1.0/vts/functional/vts/testcases/hal/power/hidl/target/AndroidTest.xml b/power/1.0/vts/functional/vts/testcases/hal/power/hidl/target/AndroidTest.xml
new file mode 100644
index 0000000..bb80de2
--- /dev/null
+++ b/power/1.0/vts/functional/vts/testcases/hal/power/hidl/target/AndroidTest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<configuration description="Config for VTS Power HIDL HAL's target-side test cases">
+ <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+ <option name="push-group" value="HidlHalTest.push" />
+ </target_preparer>
+ <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+ <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+ <option name="test-module-name" value="HalPowerHidlTargetTest"/>
+ <option name="binary-test-sources" value="
+ _32bit::DATA/nativetest/power_hidl_hal_test/power_hidl_hal_test,
+ _64bit::DATA/nativetest64/power_hidl_hal_test/power_hidl_hal_test,
+ "/>
+ <option name="binary-test-type" value="gtest" />
+ <option name="test-timeout" value="1m" />
+ </test>
+</configuration>
diff --git a/power/Android.bp b/power/Android.bp
index ba90f2c..ed19a37 100644
--- a/power/Android.bp
+++ b/power/Android.bp
@@ -2,4 +2,5 @@
subdirs = [
"1.0",
"1.0/default",
+ "1.0/vts/functional",
]
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/soundtrigger/2.0/vts/functional/Android.bp b/soundtrigger/2.0/vts/functional/Android.bp
new file mode 100644
index 0000000..8abdf06
--- /dev/null
+++ b/soundtrigger/2.0/vts/functional/Android.bp
@@ -0,0 +1,37 @@
+//
+// Copyright (C) 2016 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.
+//
+
+cc_test {
+ name: "soundtrigger_hidl_hal_test",
+ gtest: true,
+ srcs: ["soundtrigger_hidl_hal_test.cpp"],
+ shared_libs: [
+ "libbase",
+ "liblog",
+ "libcutils",
+ "libhidlbase",
+ "libhidltransport",
+ "libhwbinder",
+ "libnativehelper",
+ "libutils",
+ "android.hardware.soundtrigger@2.0",
+ ],
+ static_libs: ["libgtest"],
+ cflags: [
+ "-O0",
+ "-g",
+ ],
+}
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/soundtrigger/2.0/vts/functional/soundtrigger_hidl_hal_test.cpp b/soundtrigger/2.0/vts/functional/soundtrigger_hidl_hal_test.cpp
new file mode 100644
index 0000000..cbd8128
--- /dev/null
+++ b/soundtrigger/2.0/vts/functional/soundtrigger_hidl_hal_test.cpp
@@ -0,0 +1,233 @@
+/*
+ * Copyright (C) 2016 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.
+ */
+
+#define LOG_TAG "SoundTriggerHidlHalTest"
+#include <android-base/logging.h>
+#include <cutils/native_handle.h>
+
+#include <android/hardware/audio/common/2.0/types.h>
+#include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h>
+#include <android/hardware/soundtrigger/2.0/types.h>
+
+#include <gtest/gtest.h>
+
+using ::android::hardware::audio::common::V2_0::AudioDevice;
+using ::android::hardware::soundtrigger::V2_0::SoundModelHandle;
+using ::android::hardware::soundtrigger::V2_0::SoundModelType;
+using ::android::hardware::soundtrigger::V2_0::RecognitionMode;
+using ::android::hardware::soundtrigger::V2_0::PhraseRecognitionExtra;
+using ::android::hardware::soundtrigger::V2_0::ISoundTriggerHw;
+using ::android::hardware::soundtrigger::V2_0::ISoundTriggerHwCallback;
+using ::android::hardware::Return;
+using ::android::hardware::Status;
+using ::android::hardware::Void;
+using ::android::sp;
+
+// The main test class for Sound Trigger HIDL HAL.
+class SoundTriggerHidlTest : public ::testing::Test {
+ public:
+ virtual void SetUp() override {
+ mSoundTriggerHal = ISoundTriggerHw::getService("sound_trigger.primary", false);
+ ASSERT_NE(nullptr, mSoundTriggerHal.get());
+ ASSERT_TRUE(mSoundTriggerHal->isRemote());
+ mCallback = new MyCallback();
+ ASSERT_NE(nullptr, mCallback.get());
+ }
+
+ class MyCallback : public ISoundTriggerHwCallback {
+ virtual Return<void> recognitionCallback(
+ const ISoundTriggerHwCallback::RecognitionEvent& event __unused,
+ int32_t cookie __unused) {
+ ALOGI("%s", __FUNCTION__);
+ return Void();
+ }
+
+ virtual Return<void> phraseRecognitionCallback(
+ const ISoundTriggerHwCallback::PhraseRecognitionEvent& event __unused,
+ int32_t cookie __unused) {
+ ALOGI("%s", __FUNCTION__);
+ return Void();
+ }
+
+ virtual Return<void> soundModelCallback(
+ const ISoundTriggerHwCallback::ModelEvent& event __unused,
+ int32_t cookie __unused) {
+ ALOGI("%s", __FUNCTION__);
+ return Void();
+ }
+ };
+
+ virtual void TearDown() override {}
+
+ sp<ISoundTriggerHw> mSoundTriggerHal;
+ sp<MyCallback> mCallback;
+};
+
+// A class for test environment setup (kept since this file is a template).
+class SoundTriggerHidlEnvironment : public ::testing::Environment {
+ public:
+ virtual void SetUp() {}
+ virtual void TearDown() {}
+
+ private:
+};
+
+/**
+ * Test ISoundTriggerHw::getProperties() method
+ *
+ * Verifies that:
+ * - the implementation implements the method
+ * - the method returns 0 (no error)
+ * - the implementation supports at least one sound model and one key phrase
+ * - the implementation supports at least VOICE_TRIGGER recognition mode
+ */
+TEST_F(SoundTriggerHidlTest, GetProperties) {
+ ISoundTriggerHw::Properties halProperties;
+ Return<void> hidlReturn;
+ int ret = -ENODEV;
+
+ hidlReturn = mSoundTriggerHal->getProperties([&](int rc, auto res) {
+ ret = rc;
+ halProperties = res;
+ });
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_EQ(0, ret);
+ EXPECT_GT(halProperties.maxSoundModels, 0u);
+ EXPECT_GT(halProperties.maxKeyPhrases, 0u);
+ EXPECT_NE(0u, (halProperties.recognitionModes & (uint32_t)RecognitionMode::VOICE_TRIGGER));
+}
+
+/**
+ * Test ISoundTriggerHw::loadPhraseSoundModel() method
+ *
+ * Verifies that:
+ * - the implementation implements the method
+ * - the implementation returns an error when passed a malformed sound model
+ *
+ * There is no way to verify that implementation actually can load a sound model because each
+ * sound model is vendor specific.
+ */
+TEST_F(SoundTriggerHidlTest, LoadInvalidModelFail) {
+ Return<void> hidlReturn;
+ int ret = -ENODEV;
+ ISoundTriggerHw::PhraseSoundModel model;
+ SoundModelHandle handle;
+
+ model.common.type = SoundModelType::UNKNOWN;
+
+ hidlReturn = mSoundTriggerHal->loadPhraseSoundModel(
+ model,
+ mCallback, 0, [&](int32_t retval, auto res) {
+ ret = retval;
+ handle = res;
+ });
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_NE(0, ret);
+}
+
+/**
+ * Test ISoundTriggerHw::unloadSoundModel() method
+ *
+ * Verifies that:
+ * - the implementation implements the method
+ * - the implementation returns an error when called without a valid loaded sound model
+ *
+ */
+TEST_F(SoundTriggerHidlTest, UnloadModelNoModelFail) {
+ Return<int32_t> hidlReturn(0);
+ SoundModelHandle halHandle = 0;
+
+ hidlReturn = mSoundTriggerHal->unloadSoundModel(halHandle);
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_NE(0, hidlReturn);
+}
+
+/**
+ * Test ISoundTriggerHw::startRecognition() method
+ *
+ * Verifies that:
+ * - the implementation implements the method
+ * - the implementation returns an error when called without a valid loaded sound model
+ *
+ * There is no way to verify that implementation actually starts recognition because no model can
+ * be loaded.
+ */
+TEST_F(SoundTriggerHidlTest, StartRecognitionNoModelFail) {
+ Return<int32_t> hidlReturn(0);
+ SoundModelHandle handle = 0;
+ PhraseRecognitionExtra phrase;
+ ISoundTriggerHw::RecognitionConfig config;
+
+ config.captureHandle = 0;
+ config.captureDevice = AudioDevice::IN_BUILTIN_MIC;
+ phrase.id = 0;
+ phrase.recognitionModes = (uint32_t)RecognitionMode::VOICE_TRIGGER;
+ phrase.confidenceLevel = 0;
+
+ config.phrases.setToExternal(&phrase, 1);
+
+ hidlReturn = mSoundTriggerHal->startRecognition(handle, config, mCallback, 0);
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_NE(0, hidlReturn);
+}
+
+/**
+ * Test ISoundTriggerHw::stopRecognition() method
+ *
+ * Verifies that:
+ * - the implementation implements the method
+ * - the implementation returns an error when called without an active recognition running
+ *
+ */
+TEST_F(SoundTriggerHidlTest, StopRecognitionNoAStartFail) {
+ Return<int32_t> hidlReturn(0);
+ SoundModelHandle handle = 0;
+
+ hidlReturn = mSoundTriggerHal->stopRecognition(handle);
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_NE(0, hidlReturn);
+}
+
+/**
+ * Test ISoundTriggerHw::stopAllRecognitions() method
+ *
+ * Verifies that:
+ * - the implementation implements this optional method or indicates it is not support by
+ * returning -ENOSYS
+ */
+TEST_F(SoundTriggerHidlTest, stopAllRecognitions) {
+ Return<int32_t> hidlReturn(0);
+ SoundModelHandle handle = 0;
+
+ hidlReturn = mSoundTriggerHal->stopAllRecognitions();
+
+ EXPECT_EQ(Status::EX_NONE, hidlReturn.getStatus().exceptionCode());
+ EXPECT_TRUE(hidlReturn == 0 || hidlReturn == -ENOSYS);
+}
+
+
+int main(int argc, char** argv) {
+ ::testing::AddGlobalTestEnvironment(new SoundTriggerHidlEnvironment);
+ ::testing::InitGoogleTest(&argc, argv);
+ int status = RUN_ALL_TESTS();
+ ALOGI("Test result = %d", status);
+ return status;
+}
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/vts/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/vts/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/vts/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/vts/testcases/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/vts/testcases/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/vts/testcases/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/vts/testcases/hal/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/vts/testcases/hal/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/vts/testcases/hal/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/target/Android.mk
similarity index 67%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/target/Android.mk
index b6ee3a3..a99f4ce 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/target/Android.mk
@@ -20,14 +20,6 @@
include $(CLEAR_VARS)
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
+LOCAL_MODULE := HalSoundTriggerHidlTargetBasicTest
+VTS_CONFIG_SRC_DIR := testcases/hal/soundtrigger/hidl/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/target/AndroidTest.xml b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/target/AndroidTest.xml
new file mode 100644
index 0000000..b75d97e
--- /dev/null
+++ b/soundtrigger/2.0/vts/functional/vts/testcases/hal/soundtrigger/hidl/target/AndroidTest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<configuration description="Config for VTS sound trigger HIDL HAL's basic target-side test cases">
+ <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+ <option name="push-group" value="HidlHalTest.push" />
+ </target_preparer>
+ <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+ <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+ <option name="test-module-name" value="HalSoundTriggerHidlTargetBasicTest" />
+ <option name="binary-test-sources" value="
+ _32bit::DATA/nativetest/soundtrigger_hidl_hal_test/soundtrigger_hidl_hal_test,
+ _64bit::DATA/nativetest64/soundtrigger_hidl_hal_test/soundtrigger_hidl_hal_test,
+ "/>
+ <option name="binary-test-type" value="gtest" />
+ <option name="test-timeout" value="1m" />
+ </test>
+</configuration>
diff --git a/soundtrigger/Android.bp b/soundtrigger/Android.bp
index c12cd4f..8d2c986 100644
--- a/soundtrigger/Android.bp
+++ b/soundtrigger/Android.bp
@@ -1,4 +1,5 @@
// This is an autogenerated file, do not edit.
subdirs = [
"2.0",
+ "2.0/vts/functional",
]
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp b/soundtrigger/Android.mk
similarity index 65%
copy from vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
copy to soundtrigger/Android.mk
index b6ee3a3..f9e3276 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target/Android.bp
+++ b/soundtrigger/Android.mk
@@ -17,17 +17,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VibratorHidlTargetTest
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/hidl/target
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
- @echo "VTS host-driven test target: $(LOCAL_MODULE)"
- $(hide) touch $@
diff --git a/tests/bar/1.0/default/Bar.cpp b/tests/bar/1.0/default/Bar.cpp
index c07e2fa..b3f971a 100644
--- a/tests/bar/1.0/default/Bar.cpp
+++ b/tests/bar/1.0/default/Bar.cpp
@@ -2,7 +2,7 @@
#define LOG_TAG "hidl_test"
#include "Bar.h"
-#include <android-base/logging.h>
+#include <android/log.h>
#include <inttypes.h>
namespace android {
diff --git a/tests/baz/1.0/IBase.hal b/tests/baz/1.0/IBase.hal
index add4153..7f90f16 100644
--- a/tests/baz/1.0/IBase.hal
+++ b/tests/baz/1.0/IBase.hal
@@ -17,7 +17,7 @@
package android.hardware.tests.baz@1.0;
interface IBase {
- enum SomeBaseEnum {
+ enum SomeBaseEnum : int32_t {
grrr = 1,
};
diff --git a/tests/expression/1.0/IExpression.hal b/tests/expression/1.0/IExpression.hal
index a44e03c..6eb5b2a 100644
--- a/tests/expression/1.0/IExpression.hal
+++ b/tests/expression/1.0/IExpression.hal
@@ -178,7 +178,7 @@
MAX_PLUS_2 // 1
};
- enum Constants {
+ enum Constants : int32_t {
CONST_FOO,
CONST_BAR = 70,
MAX_ARRAY_SIZE = 20,
diff --git a/tests/foo/1.0/default/Foo.cpp b/tests/foo/1.0/default/Foo.cpp
index 7053b44..850d716 100644
--- a/tests/foo/1.0/default/Foo.cpp
+++ b/tests/foo/1.0/default/Foo.cpp
@@ -17,7 +17,7 @@
// Methods from ::android::hardware::tests::foo::V1_0::IFoo follow.
Return<void> Foo::doThis(float param) {
- ALOGI("SERVER(Foo) doThis(%.2f)", param);
+ LOG(INFO) << "SERVER(Foo) doThis(" << param << ")";
return Void();
}
@@ -49,7 +49,7 @@
Return<void> Foo::doSomethingElse(
const hidl_array<int32_t, 15> ¶m, doSomethingElse_cb _cb) {
- ALOGI("SERVER(Foo) doSomethingElse(...)");
+ LOG(INFO) << "SERVER(Foo) doSomethingElse(...)";
hidl_array<int32_t, 32> result;
for (size_t i = 0; i < 15; ++i) {
@@ -66,7 +66,7 @@
Return<void> Foo::doStuffAndReturnAString(
doStuffAndReturnAString_cb _cb) {
- ALOGI("SERVER(Foo) doStuffAndReturnAString");
+ LOG(INFO) << "SERVER(Foo) doStuffAndReturnAString";
_cb("Hello, world");
@@ -75,7 +75,7 @@
Return<void> Foo::mapThisVector(
const hidl_vec<int32_t> ¶m, mapThisVector_cb _cb) {
- ALOGI("SERVER(Foo) mapThisVector");
+ LOG(INFO) << "SERVER(Foo) mapThisVector";
hidl_vec<int32_t> out;
out.resize(param.size());
@@ -91,80 +91,89 @@
Return<void> Foo::callMe(
const sp<IFooCallback> &cb) {
- ALOGI("SERVER(Foo) callMe %p", cb.get());
+ LOG(INFO) << "SERVER(Foo) callMe " << cb.get();
if (cb != NULL) {
-
hidl_array<nsecs_t, 3> c;
- ALOGI("SERVER(Foo) callMe %p calling IFooCallback::heyItsYou, " \
- "should return immediately", cb.get());
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " calling IFooCallback::heyItsYou, should return immediately";
c[0] = systemTime();
cb->heyItsYou(cb);
c[0] = systemTime() - c[0];
- ALOGI("SERVER(Foo) callMe %p calling IFooCallback::heyItsYou " \
- "returned after %" PRId64 "ns", cb.get(), c[0]);
-
- ALOGI("SERVER(Foo) callMe %p calling IFooCallback::heyItsYouIsntIt, " \
- "should block for %" PRId64 " seconds", cb.get(),
- DELAY_S);
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " calling IFooCallback::heyItsYou, returned after"
+ << c[0]
+ << "ns";
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " calling IFooCallback::heyItsYouIsntIt, should block for"
+ << DELAY_S
+ << " seconds";
c[1] = systemTime();
- Return<bool> ret = cb->heyItsYouIsntIt(cb);
- if (!ret.isOk()) {
- ALOGE("SERVER(Foo) callMe %p encountered transport error (%d).",
- cb.get(), ret.getStatus().exceptionCode());
- return Void();
- }
- bool answer = ret.get();
+ bool answer = cb->heyItsYouIsntIt(cb);
c[1] = systemTime() - c[1];
- ALOGI("SERVER(Foo) callMe %p IFooCallback::heyItsYouIsntIt " \
- "responded with %d after %" PRId64 "ns", cb.get(), answer, c[1]);
- ALOGI("SERVER(Foo) callMe %p calling " \
- "IFooCallback::heyItsTheMeaningOfLife, " \
- "should return immediately ", cb.get());
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " calling IFooCallback::heyItsYouIsntIt, responded with "
+ << answer
+ << " after "
+ << c[1]
+ << "ns";
+
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " calling IFooCallback::heyItsTheMeaningOfLife,"
+ << " should return immediately";
c[2] = systemTime();
cb->heyItsTheMeaningOfLife(42);
c[2] = systemTime() - c[2];
- ALOGI("SERVER(Foo) callMe %p After call to " \
- "IFooCallback::heyItsTheMeaningOfLife " \
- "responded after %" PRId64 "ns", cb.get(), c[2]);
- ALOGI("SERVER(Foo) callMe %p calling IFooCallback::youBlockedMeFor " \
- "to report times", cb.get());
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " cAfter call to IFooCallback::heyItsTheMeaningOfLife responded after "
+ << c[2]
+ << "ns";
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " calling IFooCallback::youBlockedMeFor to report times";
cb->youBlockedMeFor(c);
- ALOGI("SERVER(Foo) callMe %p After call to " \
- "IFooCallback::heyYouBlockedMeFor", cb.get());
+ LOG(INFO) << "SERVER(Foo) callMe "
+ << cb.get()
+ << " After call to IFooCallback::youBlockedMeFor";
}
return Void();
}
Return<Foo::SomeEnum> Foo::useAnEnum(SomeEnum param) {
- ALOGI("SERVER(Foo) useAnEnum %d", (int)param);
+ LOG(INFO) << "SERVER(Foo) useAnEnum " << (int)param;
return SomeEnum::goober;
}
Return<void> Foo::haveAGooberVec(const hidl_vec<Goober>& param) {
- ALOGI("SERVER(Foo) haveAGooberVec ¶m = %p", ¶m);
+ LOG(INFO) << "SERVER(Foo) haveAGooberVec ¶m = " << ¶m;
return Void();
}
Return<void> Foo::haveAGoober(const Goober &g) {
- ALOGI("SERVER(Foo) haveaGoober g=%p", &g);
+ LOG(INFO) << "SERVER(Foo) haveaGoober g=" << &g;
return Void();
}
Return<void> Foo::haveAGooberArray(const hidl_array<Goober, 20> & /* lots */) {
- ALOGI("SERVER(Foo) haveAGooberArray");
+ LOG(INFO) << "SERVER(Foo) haveAGooberArray";
return Void();
}
Return<void> Foo::haveATypeFromAnotherFile(const Abc &def) {
- ALOGI("SERVER(Foo) haveATypeFromAnotherFile def=%p", &def);
+ LOG(INFO) << "SERVER(Foo) haveATypeFromAnotherFile def=" << &def;
return Void();
}
@@ -172,10 +181,14 @@
Return<void> Foo::haveSomeStrings(
const hidl_array<hidl_string, 3> &array,
haveSomeStrings_cb _cb) {
- ALOGI("SERVER(Foo) haveSomeStrings([\"%s\", \"%s\", \"%s\"])",
- array[0].c_str(),
- array[1].c_str(),
- array[2].c_str());
+
+ LOG(INFO) << "SERVER(Foo) haveSomeStrings([\""
+ << array[0].c_str()
+ << "\", \""
+ << array[1].c_str()
+ << "\", \""
+ << array[2].c_str()
+ << "\"])";
hidl_array<hidl_string, 2> result;
result[0] = "Hello";
@@ -189,10 +202,13 @@
Return<void> Foo::haveAStringVec(
const hidl_vec<hidl_string> &vector,
haveAStringVec_cb _cb) {
- ALOGI("SERVER(Foo) haveAStringVec([\"%s\", \"%s\", \"%s\"])",
- vector[0].c_str(),
- vector[1].c_str(),
- vector[2].c_str());
+ LOG(INFO) << "SERVER(Foo) haveAStringVec([\""
+ << vector[0].c_str()
+ << "\", \""
+ << vector[1].c_str()
+ << "\", \""
+ << vector[2].c_str()
+ << "\"])";
hidl_vec<hidl_string> result;
result.resize(2);
@@ -207,7 +223,7 @@
Return<void> Foo::transposeMe(
const hidl_array<float, 3, 5> &in, transposeMe_cb _cb) {
- ALOGI("SERVER(Foo) transposeMe(%s)", to_string(in).c_str());
+ LOG(INFO) << "SERVER(Foo) transposeMe(" << to_string(in).c_str() << ")";
hidl_array<float, 5, 3> out;
for (size_t i = 0; i < 5; ++i) {
@@ -216,7 +232,7 @@
}
}
- ALOGI("SERVER(Foo) transposeMe returning %s", to_string(out).c_str());
+ LOG(INFO) << "SERVER(Foo) transposeMe returning " << to_string(out).c_str();
_cb(out);
@@ -225,7 +241,7 @@
Return<void> Foo::callingDrWho(
const MultiDimensional &in, callingDrWho_cb _hidl_cb) {
- ALOGI("SERVER(Foo) callingDrWho(%s)", MultiDimensionalToString(in).c_str());
+ LOG(INFO) << "SERVER(Foo) callingDrWho(" << MultiDimensionalToString(in).c_str() << ")";
MultiDimensional out;
for (size_t i = 0; i < 5; ++i) {
diff --git a/tests/foo/1.0/default/FooCallback.cpp b/tests/foo/1.0/default/FooCallback.cpp
index e4704f2..ff3a545 100644
--- a/tests/foo/1.0/default/FooCallback.cpp
+++ b/tests/foo/1.0/default/FooCallback.cpp
@@ -2,7 +2,7 @@
#define LOG_TAG "hidl_test"
#include "FooCallback.h"
-#include <android-base/logging.h>
+#include <android/log.h>
#include <hidl-test/FooHelper.h>
#include <inttypes.h>
#include <utils/Timers.h>
diff --git a/tests/inheritance/1.0/default/Child.cpp b/tests/inheritance/1.0/default/Child.cpp
index 66720b3..fd6608c 100644
--- a/tests/inheritance/1.0/default/Child.cpp
+++ b/tests/inheritance/1.0/default/Child.cpp
@@ -1,5 +1,5 @@
#define LOG_TAG "hidl_test"
-#include <android-base/logging.h>
+#include <android/log.h>
#include "Child.h"
diff --git a/tests/inheritance/1.0/default/Fetcher.cpp b/tests/inheritance/1.0/default/Fetcher.cpp
index 74f8d07..f3b576b 100644
--- a/tests/inheritance/1.0/default/Fetcher.cpp
+++ b/tests/inheritance/1.0/default/Fetcher.cpp
@@ -28,7 +28,7 @@
} else {
toSend = local;
}
- ALOGI("SERVER(Fetcher) selectService returning %p", toSend.get());
+ LOG(INFO) << "SERVER(Fetcher) selectService returning " << toSend.get();
_hidl_cb(toSend);
return Void();
}
diff --git a/tests/inheritance/1.0/default/Parent.cpp b/tests/inheritance/1.0/default/Parent.cpp
index bdd20c9..a6fd911 100644
--- a/tests/inheritance/1.0/default/Parent.cpp
+++ b/tests/inheritance/1.0/default/Parent.cpp
@@ -1,5 +1,5 @@
#define LOG_TAG "hidl_test"
-#include <android-base/logging.h>
+#include <android/log.h>
#include "Parent.h"
diff --git a/tests/pointer/1.0/default/Graph.cpp b/tests/pointer/1.0/default/Graph.cpp
index 5aa2243..9852407 100644
--- a/tests/pointer/1.0/default/Graph.cpp
+++ b/tests/pointer/1.0/default/Graph.cpp
@@ -1,5 +1,7 @@
+#define LOG_TAG "hidl_test"
+
#include "Graph.h"
-#include <android-base/logging.h>
+#include <android/log.h>
#include <hidl-test/PointerHelper.h>
#define PUSH_ERROR_IF(__cond__) if(__cond__) { errors.push_back(std::to_string(__LINE__) + ": " + #__cond__); }
diff --git a/tests/pointer/1.0/default/Pointer.cpp b/tests/pointer/1.0/default/Pointer.cpp
index d7cd772..2b4a323 100644
--- a/tests/pointer/1.0/default/Pointer.cpp
+++ b/tests/pointer/1.0/default/Pointer.cpp
@@ -1,4 +1,7 @@
+#define LOG_TAG "hidl_test"
+
#include "Pointer.h"
+#include <android/log.h>
namespace android {
namespace hardware {
@@ -7,6 +10,14 @@
namespace V1_0 {
namespace implementation {
+Return<int32_t> Pointer::getErrors() {
+ if(!errors.empty()) {
+ for(const auto& e : errors)
+ ALOGW("SERVER(Pointer) error: %s", e.c_str());
+ }
+ return errors.size();
+}
+
IPointer* HIDL_FETCH_IPointer(const char* /* name */) {
return new Pointer();
}
diff --git a/tests/pointer/1.0/default/Pointer.h b/tests/pointer/1.0/default/Pointer.h
index 87b0f56..d6e3e48 100644
--- a/tests/pointer/1.0/default/Pointer.h
+++ b/tests/pointer/1.0/default/Pointer.h
@@ -2,7 +2,6 @@
#define ANDROID_HARDWARE_TESTS_POINTER_V1_0_POINTER_H
#include <android/hardware/tests/pointer/1.0/IPointer.h>
-#include <android-base/logging.h>
#include <hidl/Status.h>
#include <hidl/MQDescriptor.h>
@@ -28,13 +27,7 @@
private:
std::vector<std::string> errors;
public:
- Return<int32_t> getErrors() {
- if(!errors.empty()) {
- for(const auto& e : errors)
- ALOGW("SERVER(Pointer) error: %s", e.c_str());
- }
- return errors.size();
- }
+ Return<int32_t> getErrors() override;
Return<void> foo1(const IPointer::Sam& s, IPointer::Sam const* s_ptr) override {
PUSH_ERROR_IF(!(&s == s_ptr));
return Void();
@@ -71,9 +64,6 @@
return Void();
}
Return<void> foo9(::android::hardware::hidl_string const* str_ref) override {
- ALOGI("SERVER(Pointer) foo9 got string @ %p (size = %ld) \"%s\"",
- str_ref->c_str(),
- (unsigned long) str_ref->size(), str_ref->c_str());
PUSH_ERROR_IF(!(strcmp(str_ref->c_str(), "meowmeowmeow") == 0));
return Void();
}
diff --git a/tests/pointer/1.0/default/lib/PointerHelper.cpp b/tests/pointer/1.0/default/lib/PointerHelper.cpp
index ed7d49a..3bc82c2 100644
--- a/tests/pointer/1.0/default/lib/PointerHelper.cpp
+++ b/tests/pointer/1.0/default/lib/PointerHelper.cpp
@@ -1,5 +1,5 @@
#define LOG_TAG "hidl_test"
-#include <android-base/logging.h>
+#include <android/log.h>
#include "PointerHelper.h"
namespace android {
diff --git a/thermal/1.0/default/Thermal.h b/thermal/1.0/default/Thermal.h
index 8212ab9..2e06289 100644
--- a/thermal/1.0/default/Thermal.h
+++ b/thermal/1.0/default/Thermal.h
@@ -1,5 +1,20 @@
-#ifndef HIDL_GENERATED_android_hardware_thermal_V1_0_Thermal_H_
-#define HIDL_GENERATED_android_hardware_thermal_V1_0_Thermal_H_
+/*
+ * Copyright (C) 2016 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_THERMAL_V1_0_THERMAL_H
+#define ANDROID_HARDWARE_THERMAL_V1_0_THERMAL_H
#include <android/hardware/thermal/1.0/IThermal.h>
#include <hidl/Status.h>
@@ -42,4 +57,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_thermal_V1_0_Thermal_H_
+#endif // ANDROID_HARDWARE_THERMAL_V1_0_THERMAL_H
diff --git a/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/AndroidTest.xml b/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/AndroidTest.xml
index 3790c56..46ae05a 100644
--- a/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/AndroidTest.xml
+++ b/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/AndroidTest.xml
@@ -24,9 +24,9 @@
_32bit::DATA/nativetest/thermal_hidl_hal_test/thermal_hidl_hal_test,
_64bit::DATA/nativetest64/thermal_hidl_hal_test/thermal_hidl_hal_test,
"/>
- <option name="test-config-path" value="vts/testcases/hal/thermal/hidl/target_profiling/ThermalHidlTargetProfilingTest.config" />
<option name="binary-test-type" value="gtest" />
<option name="test-timeout" value="5m" />
+ <option name="enable-profiling" value="true" />
</test>
</configuration>
diff --git a/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/ThermalHidlTargetProfilingTest.config b/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/ThermalHidlTargetProfilingTest.config
deleted file mode 100644
index 912d8d5..0000000
--- a/thermal/1.0/vts/functional/vts/testcases/hal/thermal/hidl/target_profiling/ThermalHidlTargetProfilingTest.config
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "enable_profiling": true
-}
\ No newline at end of file
diff --git a/tv/cec/1.0/default/HdmiCec.h b/tv/cec/1.0/default/HdmiCec.h
index a41a5f0..34a3bb0 100644
--- a/tv/cec/1.0/default/HdmiCec.h
+++ b/tv/cec/1.0/default/HdmiCec.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_tv_cec_V1_0_HdmiCec_H_
-#define HIDL_GENERATED_android_hardware_tv_cec_V1_0_HdmiCec_H_
+#ifndef ANDROID_HARDWARE_TV_CEC_V1_0_HDMICEC_H
+#define ANDROID_HARDWARE_TV_CEC_V1_0_HDMICEC_H
#include <algorithm>
@@ -101,4 +101,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_tv_cec_V1_0_HdmiCec_H_
+#endif // ANDROID_HARDWARE_TV_CEC_V1_0_HDMICEC_H
diff --git a/tv/cec/1.0/vts/Android.mk b/tv/cec/1.0/vts/Android.mk
new file mode 100644
index 0000000..2666ca6
--- /dev/null
+++ b/tv/cec/1.0/vts/Android.mk
@@ -0,0 +1,118 @@
+#
+# Copyright (C) 2016 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for TvCec v1.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_tv_hdmi_cec@1.0
+
+LOCAL_SRC_FILES := \
+ HdmiCec.vts \
+ HdmiCecCallback.vts \
+ types.vts \
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.tv.cec@1.0 \
+ libbase \
+ libutils \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_datatype \
+ libvts_measurement \
+ libvts_multidevice_proto \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for HdmiCec
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_hdmi_cec@1.0
+
+LOCAL_SRC_FILES := \
+ HdmiCec.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.tv.cec@1.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for HdmiCecCallback
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_hdmi_cec_callback_@1.0
+
+LOCAL_SRC_FILES := \
+ HdmiCecCallback.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.tv.cec@1.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
\ No newline at end of file
diff --git a/tv/cec/1.0/vts/HdmiCec.vts b/tv/cec/1.0/vts/HdmiCec.vts
new file mode 100644
index 0000000..d7d09de
--- /dev/null
+++ b/tv/cec/1.0/vts/HdmiCec.vts
@@ -0,0 +1,172 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IHdmiCec"
+
+package: "android.hardware.tv.cec"
+
+import: "android.hardware.tv.cec@1.0::IHdmiCecCallback"
+import: "android.hardware.tv.cec@1.0::types"
+
+interface: {
+ api: {
+ name: "addLogicalAddress"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::Result"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "clearLogicalAddress"
+ callflow: {
+ next: "addLogicalAddress"
+ }
+ callflow: {
+ exit: true
+ }
+ }
+
+ api: {
+ name: "getPhysicalAddress"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::Result"
+ }
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "sendMessage"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::SendMessageResult"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::cec::V1_0::CecMessage"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "setCallback"
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IHdmiCecCallback"
+ is_callback: true
+ }
+ callflow: {
+ next: "addLogicalAddress"
+ }
+ callflow: {
+ entry: true
+ }
+ }
+
+ api: {
+ name: "getCecVersion"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "getVendorId"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "getPortInfo"
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::cec::V1_0::HdmiPortInfo"
+ }
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "setOption"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::OptionKey"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "setLanguage"
+ arg: {
+ type: TYPE_STRING
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "enableAudioReturnChannel"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+ api: {
+ name: "isConnected"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ callflow: {
+ next: "*"
+ }
+ }
+
+}
diff --git a/tv/cec/1.0/vts/HdmiCecCallback.vts b/tv/cec/1.0/vts/HdmiCecCallback.vts
new file mode 100644
index 0000000..864e6f5
--- /dev/null
+++ b/tv/cec/1.0/vts/HdmiCecCallback.vts
@@ -0,0 +1,26 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IHdmiCecCallback"
+
+package: "android.hardware.tv.cec"
+
+import: "android.hardware.tv.cec@1.0::types"
+
+interface: {
+ api: {
+ name: "onCecMessage"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::cec::V1_0::CecMessage"
+ }
+ }
+
+ api: {
+ name: "onHotplugEvent"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::cec::V1_0::HotplugEvent"
+ }
+ }
+
+}
diff --git a/tv/cec/1.0/vts/types.vts b/tv/cec/1.0/vts/types.vts
new file mode 100644
index 0000000..ae972a5
--- /dev/null
+++ b/tv/cec/1.0/vts/types.vts
@@ -0,0 +1,604 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.tv.cec"
+
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::MaxLength"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "MESSAGE_BODY"
+ scalar_value: {
+ int32_t: 15
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::CecDeviceType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INACTIVE"
+ scalar_value: {
+ int32_t: -1
+ }
+ enumerator: "TV"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "RECORDER"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "TUNER"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "PLAYBACK"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "AUDIO_SYSTEM"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "MAX"
+ scalar_value: {
+ int32_t: 5
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "TV"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "RECORDER_1"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "RECORDER_2"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "TUNER_1"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "PLAYBACK_1"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "AUDIO_SYSTEM"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "TUNER_2"
+ scalar_value: {
+ int32_t: 6
+ }
+ enumerator: "TUNER_3"
+ scalar_value: {
+ int32_t: 7
+ }
+ enumerator: "PLAYBACK_2"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "RECORDER_3"
+ scalar_value: {
+ int32_t: 9
+ }
+ enumerator: "TUNER_4"
+ scalar_value: {
+ int32_t: 10
+ }
+ enumerator: "PLAYBACK_3"
+ scalar_value: {
+ int32_t: 11
+ }
+ enumerator: "FREE_USE"
+ scalar_value: {
+ int32_t: 14
+ }
+ enumerator: "UNREGISTERED"
+ scalar_value: {
+ int32_t: 15
+ }
+ enumerator: "BROADCAST"
+ scalar_value: {
+ int32_t: 15
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::CecMessageType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "FEATURE_ABORT"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "IMAGE_VIEW_ON"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "TUNER_STEP_INCREMENT"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "TUNER_STEP_DECREMENT"
+ scalar_value: {
+ int32_t: 6
+ }
+ enumerator: "TUNER_DEVICE_STATUS"
+ scalar_value: {
+ int32_t: 7
+ }
+ enumerator: "GIVE_TUNER_DEVICE_STATUS"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "RECORD_ON"
+ scalar_value: {
+ int32_t: 9
+ }
+ enumerator: "RECORD_STATUS"
+ scalar_value: {
+ int32_t: 10
+ }
+ enumerator: "RECORD_OFF"
+ scalar_value: {
+ int32_t: 11
+ }
+ enumerator: "TEXT_VIEW_ON"
+ scalar_value: {
+ int32_t: 13
+ }
+ enumerator: "RECORD_TV_SCREEN"
+ scalar_value: {
+ int32_t: 15
+ }
+ enumerator: "GIVE_DECK_STATUS"
+ scalar_value: {
+ int32_t: 26
+ }
+ enumerator: "DECK_STATUS"
+ scalar_value: {
+ int32_t: 27
+ }
+ enumerator: "SET_MENU_LANGUAGE"
+ scalar_value: {
+ int32_t: 50
+ }
+ enumerator: "CLEAR_ANALOG_TIMER"
+ scalar_value: {
+ int32_t: 51
+ }
+ enumerator: "SET_ANALOG_TIMER"
+ scalar_value: {
+ int32_t: 52
+ }
+ enumerator: "TIMER_STATUS"
+ scalar_value: {
+ int32_t: 53
+ }
+ enumerator: "STANDBY"
+ scalar_value: {
+ int32_t: 54
+ }
+ enumerator: "PLAY"
+ scalar_value: {
+ int32_t: 65
+ }
+ enumerator: "DECK_CONTROL"
+ scalar_value: {
+ int32_t: 66
+ }
+ enumerator: "TIMER_CLEARED_STATUS"
+ scalar_value: {
+ int32_t: 67
+ }
+ enumerator: "USER_CONTROL_PRESSED"
+ scalar_value: {
+ int32_t: 68
+ }
+ enumerator: "USER_CONTROL_RELEASED"
+ scalar_value: {
+ int32_t: 69
+ }
+ enumerator: "GIVE_OSD_NAME"
+ scalar_value: {
+ int32_t: 70
+ }
+ enumerator: "SET_OSD_NAME"
+ scalar_value: {
+ int32_t: 71
+ }
+ enumerator: "SET_OSD_STRING"
+ scalar_value: {
+ int32_t: 100
+ }
+ enumerator: "SET_TIMER_PROGRAM_TITLE"
+ scalar_value: {
+ int32_t: 103
+ }
+ enumerator: "SYSTEM_AUDIO_MODE_REQUEST"
+ scalar_value: {
+ int32_t: 112
+ }
+ enumerator: "GIVE_AUDIO_STATUS"
+ scalar_value: {
+ int32_t: 113
+ }
+ enumerator: "SET_SYSTEM_AUDIO_MODE"
+ scalar_value: {
+ int32_t: 114
+ }
+ enumerator: "REPORT_AUDIO_STATUS"
+ scalar_value: {
+ int32_t: 122
+ }
+ enumerator: "GIVE_SYSTEM_AUDIO_MODE_STATUS"
+ scalar_value: {
+ int32_t: 125
+ }
+ enumerator: "SYSTEM_AUDIO_MODE_STATUS"
+ scalar_value: {
+ int32_t: 126
+ }
+ enumerator: "ROUTING_CHANGE"
+ scalar_value: {
+ int32_t: 128
+ }
+ enumerator: "ROUTING_INFORMATION"
+ scalar_value: {
+ int32_t: 129
+ }
+ enumerator: "ACTIVE_SOURCE"
+ scalar_value: {
+ int32_t: 130
+ }
+ enumerator: "GIVE_PHYSICAL_ADDRESS"
+ scalar_value: {
+ int32_t: 131
+ }
+ enumerator: "REPORT_PHYSICAL_ADDRESS"
+ scalar_value: {
+ int32_t: 132
+ }
+ enumerator: "REQUEST_ACTIVE_SOURCE"
+ scalar_value: {
+ int32_t: 133
+ }
+ enumerator: "SET_STREAM_PATH"
+ scalar_value: {
+ int32_t: 134
+ }
+ enumerator: "DEVICE_VENDOR_ID"
+ scalar_value: {
+ int32_t: 135
+ }
+ enumerator: "VENDOR_COMMAND"
+ scalar_value: {
+ int32_t: 137
+ }
+ enumerator: "VENDOR_REMOTE_BUTTON_DOWN"
+ scalar_value: {
+ int32_t: 138
+ }
+ enumerator: "VENDOR_REMOTE_BUTTON_UP"
+ scalar_value: {
+ int32_t: 139
+ }
+ enumerator: "GIVE_DEVICE_VENDOR_ID"
+ scalar_value: {
+ int32_t: 140
+ }
+ enumerator: "MENU_REQUEST"
+ scalar_value: {
+ int32_t: 141
+ }
+ enumerator: "MENU_STATUS"
+ scalar_value: {
+ int32_t: 142
+ }
+ enumerator: "GIVE_DEVICE_POWER_STATUS"
+ scalar_value: {
+ int32_t: 143
+ }
+ enumerator: "REPORT_POWER_STATUS"
+ scalar_value: {
+ int32_t: 144
+ }
+ enumerator: "GET_MENU_LANGUAGE"
+ scalar_value: {
+ int32_t: 145
+ }
+ enumerator: "SELECT_ANALOG_SERVICE"
+ scalar_value: {
+ int32_t: 146
+ }
+ enumerator: "SELECT_DIGITAL_SERVICE"
+ scalar_value: {
+ int32_t: 147
+ }
+ enumerator: "SET_DIGITAL_TIMER"
+ scalar_value: {
+ int32_t: 151
+ }
+ enumerator: "CLEAR_DIGITAL_TIMER"
+ scalar_value: {
+ int32_t: 153
+ }
+ enumerator: "SET_AUDIO_RATE"
+ scalar_value: {
+ int32_t: 154
+ }
+ enumerator: "INACTIVE_SOURCE"
+ scalar_value: {
+ int32_t: 157
+ }
+ enumerator: "CEC_VERSION"
+ scalar_value: {
+ int32_t: 158
+ }
+ enumerator: "GET_CEC_VERSION"
+ scalar_value: {
+ int32_t: 159
+ }
+ enumerator: "VENDOR_COMMAND_WITH_ID"
+ scalar_value: {
+ int32_t: 160
+ }
+ enumerator: "CLEAR_EXTERNAL_TIMER"
+ scalar_value: {
+ int32_t: 161
+ }
+ enumerator: "SET_EXTERNAL_TIMER"
+ scalar_value: {
+ int32_t: 162
+ }
+ enumerator: "INITIATE_ARC"
+ scalar_value: {
+ int32_t: 192
+ }
+ enumerator: "REPORT_ARC_INITIATED"
+ scalar_value: {
+ int32_t: 193
+ }
+ enumerator: "REPORT_ARC_TERMINATED"
+ scalar_value: {
+ int32_t: 194
+ }
+ enumerator: "REQUEST_ARC_INITIATION"
+ scalar_value: {
+ int32_t: 195
+ }
+ enumerator: "REQUEST_ARC_TERMINATION"
+ scalar_value: {
+ int32_t: 196
+ }
+ enumerator: "TERMINATE_ARC"
+ scalar_value: {
+ int32_t: 197
+ }
+ enumerator: "ABORT"
+ scalar_value: {
+ int32_t: 255
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::AbortReason"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "UNRECOGNIZED_MODE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "NOT_IN_CORRECT_MODE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "CANNOT_PROVIDE_SOURCE"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "INVALID_OPERAND"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "REFUSED"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "UNABLE_TO_DETERMINE"
+ scalar_value: {
+ int32_t: 5
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::Result"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "FAILURE_UNKNOWN"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "FAILURE_INVALID_ARGS"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "FAILURE_INVALID_STATE"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "FAILURE_NOT_SUPPORTED"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "FAILURE_BUSY"
+ scalar_value: {
+ int32_t: 5
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::SendMessageResult"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "NACK"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "BUSY"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "FAIL"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::HdmiPortType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INPUT"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "OUTPUT"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::OptionKey"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "WAKEUP"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "ENABLE_CEC"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "SYSTEM_CEC_CONTROL"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::CecMessage"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "initiator"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+ }
+ struct_value: {
+ name: "destination"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::CecLogicalAddress"
+ }
+ struct_value: {
+ name: "body"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::HotplugEvent"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "connected"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "portId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::cec::V1_0::HdmiPortInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::cec::V1_0::HdmiPortType"
+ }
+ struct_value: {
+ name: "portId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "cecSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "arcSupported"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "physicalAddress"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+}
+
diff --git a/tv/input/1.0/default/TvInput.h b/tv/input/1.0/default/TvInput.h
index 81cbb20..beb69f5 100644
--- a/tv/input/1.0/default/TvInput.h
+++ b/tv/input/1.0/default/TvInput.h
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_tv_input_V1_0_TvInput_H_
-#define HIDL_GENERATED_android_hardware_tv_input_V1_0_TvInput_H_
+#ifndef ANDROID_HARDWARE_TV_INPUT_V1_0_TVINPUT_H
+#define ANDROID_HARDWARE_TV_INPUT_V1_0_TVINPUT_H
#include <android/hardware/tv/input/1.0/ITvInput.h>
#include <hidl/Status.h>
@@ -72,4 +72,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_tv_input_V1_0_TvInput_H_
+#endif // ANDROID_HARDWARE_TV_INPUT_V1_0_TVINPUT_H
diff --git a/tv/input/1.0/types.hal b/tv/input/1.0/types.hal
index 89a7acc..6852c70 100644
--- a/tv/input/1.0/types.hal
+++ b/tv/input/1.0/types.hal
@@ -18,7 +18,7 @@
import android.hardware.audio.common@2.0;
-enum Result {
+enum Result : int32_t {
OK,
UNKNOWN,
NO_RESOURCE,
@@ -27,7 +27,7 @@
};
/* Type of physical TV input. */
-enum TvInputType {
+enum TvInputType : int32_t {
OTHER = 1, // Generic hardware.
TUNER = 2, // Tuner. e.g. built-in terrestrial tuner
COMPOSITE = 3,
@@ -50,7 +50,7 @@
// must be filled with 0s.
};
-enum TvInputEventType {
+enum TvInputEventType : int32_t {
/*
* Hardware notifies the framework that a device is available.
*
diff --git a/tv/input/1.0/vts/Android.mk b/tv/input/1.0/vts/Android.mk
new file mode 100644
index 0000000..f8610dd
--- /dev/null
+++ b/tv/input/1.0/vts/Android.mk
@@ -0,0 +1,122 @@
+#
+# Copyright (C) 2016 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for TvInput v1.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_tv_input@1.0
+
+LOCAL_SRC_FILES := \
+ TvInput.vts \
+ TvInputCallback.vts \
+ types.vts \
+ ../../../../audio/common/2.0/vts/types.vts \
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.tv.input@1.0 \
+ libbase \
+ libutils \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_datatype \
+ libvts_measurement \
+ libvts_multidevice_proto \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for TvInput
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_input@1.0
+
+LOCAL_SRC_FILES := \
+ TvInput.vts \
+ types.vts \
+ ../../../../audio/common/2.0/vts/types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.tv.input@1.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build VTS profiler for TvInputCallback
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_tv_input_callback_@1.0
+
+LOCAL_SRC_FILES := \
+ TvInputCallback.vts \
+ types.vts \
+ ../../../../audio/common/2.0/vts/types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.tv.input@1.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
diff --git a/tv/input/1.0/vts/TvInput.vts b/tv/input/1.0/vts/TvInput.vts
new file mode 100644
index 0000000..638fd08
--- /dev/null
+++ b/tv/input/1.0/vts/TvInput.vts
@@ -0,0 +1,97 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ITvInput"
+
+package: "android.hardware.tv.input"
+
+import: "android.hardware.tv.input@1.0::ITvInputCallback"
+import: "android.hardware.tv.input@1.0::types"
+
+interface: {
+ api: {
+ name: "setCallback"
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "ITvInputCallback"
+ is_callback: true
+ }
+ callflow: {
+ entry: true
+ }
+ callflow: {
+ exit: true
+ }
+ callflow: {
+ next: "getStreamConfigurations"
+ }
+ }
+
+ api: {
+ name: "getStreamConfigurations"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::input::V1_0::Result"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::input::V1_0::TvStreamConfig"
+ }
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ callflow: {
+ next: "openStream"
+ next: "getStreamConfigurations"
+ next: "closeStream"
+ }
+ }
+
+ api: {
+ name: "openStream"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::input::V1_0::Result"
+ }
+ return_type_hidl: {
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ callflow: {
+ next: "closeStream"
+ next: "getStreamConfigurations"
+ next: "openStream"
+ }
+ }
+
+ api: {
+ name: "closeStream"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::input::V1_0::Result"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ callflow: {
+ next: "getStreamConfigurations"
+ next: "openStream"
+ next: "closeStream"
+ }
+ }
+
+}
diff --git a/tv/input/1.0/vts/TvInputCallback.vts b/tv/input/1.0/vts/TvInputCallback.vts
new file mode 100644
index 0000000..b1738a8
--- /dev/null
+++ b/tv/input/1.0/vts/TvInputCallback.vts
@@ -0,0 +1,18 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "ITvInputCallback"
+
+package: "android.hardware.tv.input"
+
+import: "android.hardware.tv.input@1.0::types"
+
+interface: {
+ api: {
+ name: "notify"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::input::V1_0::TvInputEvent"
+ }
+ }
+
+}
diff --git a/tv/input/1.0/vts/types.vts b/tv/input/1.0/vts/types.vts
new file mode 100644
index 0000000..67d84db
--- /dev/null
+++ b/tv/input/1.0/vts/types.vts
@@ -0,0 +1,1836 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.tv.input"
+
+import: "android.hardware.audio.common@2.0::types"
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioHandleConsts"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "AUDIO_IO_HANDLE_NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "AUDIO_MODULE_HANDLE_NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "AUDIO_PORT_HANDLE_NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "AUDIO_PATCH_HANDLE_NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::Uuid"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "timeLow"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "timeMid"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "versionAndTimeHigh"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "variantAndClockSeqHigh"
+ type: TYPE_SCALAR
+ scalar_type: "uint16_t"
+ }
+ struct_value: {
+ name: "node"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 6
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioStreamType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "DEFAULT"
+ scalar_value: {
+ int32_t: -1
+ }
+ enumerator: "MIN"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "VOICE_CALL"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "SYSTEM"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "RING"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "MUSIC"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "ALARM"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "NOTIFICATION"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "BLUETOOTH_SCO"
+ scalar_value: {
+ int32_t: 6
+ }
+ enumerator: "ENFORCED_AUDIBLE"
+ scalar_value: {
+ int32_t: 7
+ }
+ enumerator: "DTMF"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "TTS"
+ scalar_value: {
+ int32_t: 9
+ }
+ enumerator: "ACCESSIBILITY"
+ scalar_value: {
+ int32_t: 10
+ }
+ enumerator: "REROUTING"
+ scalar_value: {
+ int32_t: 11
+ }
+ enumerator: "PATCH"
+ scalar_value: {
+ int32_t: 12
+ }
+ enumerator: "PUBLIC_CNT"
+ scalar_value: {
+ int32_t: 10
+ }
+ enumerator: "FOR_POLICY_CNT"
+ scalar_value: {
+ int32_t: 12
+ }
+ enumerator: "CNT"
+ scalar_value: {
+ int32_t: 13
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioSource"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "DEFAULT"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "MIC"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "VOICE_UPLINK"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "VOICE_DOWNLINK"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "VOICE_CALL"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "CAMCORDER"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "VOICE_RECOGNITION"
+ scalar_value: {
+ int32_t: 6
+ }
+ enumerator: "VOICE_COMMUNICATION"
+ scalar_value: {
+ int32_t: 7
+ }
+ enumerator: "REMOTE_SUBMIX"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "UNPROCESSED"
+ scalar_value: {
+ int32_t: 9
+ }
+ enumerator: "CNT"
+ scalar_value: {
+ int32_t: 10
+ }
+ enumerator: "MAX"
+ scalar_value: {
+ int32_t: 9
+ }
+ enumerator: "FM_TUNER"
+ scalar_value: {
+ int32_t: 1998
+ }
+ enumerator: "HOTWORD"
+ scalar_value: {
+ int32_t: 1999
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioSessionConsts"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "OUTPUT_STAGE"
+ scalar_value: {
+ int32_t: -1
+ }
+ enumerator: "OUTPUT_MIX"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "ALLOCATE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioFormat"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "INVALID"
+ scalar_value: {
+ uint32_t: 4294967295
+ }
+ enumerator: "DEFAULT"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "PCM"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "MP3"
+ scalar_value: {
+ uint32_t: 16777216
+ }
+ enumerator: "AMR_NB"
+ scalar_value: {
+ uint32_t: 33554432
+ }
+ enumerator: "AMR_WB"
+ scalar_value: {
+ uint32_t: 50331648
+ }
+ enumerator: "AAC"
+ scalar_value: {
+ uint32_t: 67108864
+ }
+ enumerator: "HE_AAC_V1"
+ scalar_value: {
+ uint32_t: 83886080
+ }
+ enumerator: "HE_AAC_V2"
+ scalar_value: {
+ uint32_t: 100663296
+ }
+ enumerator: "VORBIS"
+ scalar_value: {
+ uint32_t: 117440512
+ }
+ enumerator: "OPUS"
+ scalar_value: {
+ uint32_t: 134217728
+ }
+ enumerator: "AC3"
+ scalar_value: {
+ uint32_t: 150994944
+ }
+ enumerator: "E_AC3"
+ scalar_value: {
+ uint32_t: 167772160
+ }
+ enumerator: "DTS"
+ scalar_value: {
+ uint32_t: 184549376
+ }
+ enumerator: "DTS_HD"
+ scalar_value: {
+ uint32_t: 201326592
+ }
+ enumerator: "IEC61937"
+ scalar_value: {
+ uint32_t: 218103808
+ }
+ enumerator: "DOLBY_TRUEHD"
+ scalar_value: {
+ uint32_t: 234881024
+ }
+ enumerator: "MAIN_MASK"
+ scalar_value: {
+ uint32_t: 4278190080
+ }
+ enumerator: "SUB_MASK"
+ scalar_value: {
+ uint32_t: 16777215
+ }
+ enumerator: "PCM_SUB_16_BIT"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "PCM_SUB_8_BIT"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "PCM_SUB_32_BIT"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "PCM_SUB_8_24_BIT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "PCM_SUB_FLOAT"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "PCM_SUB_24_BIT_PACKED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "MP3_SUB_NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "AMR_SUB_NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "AAC_SUB_MAIN"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "AAC_SUB_LC"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "AAC_SUB_SSR"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "AAC_SUB_LTP"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "AAC_SUB_HE_V1"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "AAC_SUB_SCALABLE"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "AAC_SUB_ERLC"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "AAC_SUB_LD"
+ scalar_value: {
+ uint32_t: 128
+ }
+ enumerator: "AAC_SUB_HE_V2"
+ scalar_value: {
+ uint32_t: 256
+ }
+ enumerator: "AAC_SUB_ELD"
+ scalar_value: {
+ uint32_t: 512
+ }
+ enumerator: "VORBIS_SUB_NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "PCM_16_BIT"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "PCM_8_BIT"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "PCM_32_BIT"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "PCM_8_24_BIT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "PCM_FLOAT"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "PCM_24_BIT_PACKED"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "AAC_MAIN"
+ scalar_value: {
+ uint32_t: 67108865
+ }
+ enumerator: "AAC_LC"
+ scalar_value: {
+ uint32_t: 67108866
+ }
+ enumerator: "AAC_SSR"
+ scalar_value: {
+ uint32_t: 67108868
+ }
+ enumerator: "AAC_LTP"
+ scalar_value: {
+ uint32_t: 67108872
+ }
+ enumerator: "AAC_HE_V1"
+ scalar_value: {
+ uint32_t: 67108880
+ }
+ enumerator: "AAC_SCALABLE"
+ scalar_value: {
+ uint32_t: 67108896
+ }
+ enumerator: "AAC_ERLC"
+ scalar_value: {
+ uint32_t: 67108928
+ }
+ enumerator: "AAC_LD"
+ scalar_value: {
+ uint32_t: 67108992
+ }
+ enumerator: "AAC_HE_V2"
+ scalar_value: {
+ uint32_t: 67109120
+ }
+ enumerator: "AAC_ELD"
+ scalar_value: {
+ uint32_t: 67109376
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::FixedChannelCount"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "FCC_2"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "FCC_8"
+ scalar_value: {
+ int32_t: 8
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "REPRESENTATION_POSITION"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "REPRESENTATION_INDEX"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "INVALID"
+ scalar_value: {
+ uint32_t: 3221225472
+ }
+ enumerator: "OUT_FRONT_LEFT"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "OUT_FRONT_RIGHT"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "OUT_FRONT_CENTER"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "OUT_LOW_FREQUENCY"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "OUT_BACK_LEFT"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "OUT_BACK_RIGHT"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "OUT_FRONT_LEFT_OF_CENTER"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "OUT_FRONT_RIGHT_OF_CENTER"
+ scalar_value: {
+ uint32_t: 128
+ }
+ enumerator: "OUT_BACK_CENTER"
+ scalar_value: {
+ uint32_t: 256
+ }
+ enumerator: "OUT_SIDE_LEFT"
+ scalar_value: {
+ uint32_t: 512
+ }
+ enumerator: "OUT_SIDE_RIGHT"
+ scalar_value: {
+ uint32_t: 1024
+ }
+ enumerator: "OUT_TOP_CENTER"
+ scalar_value: {
+ uint32_t: 2048
+ }
+ enumerator: "OUT_TOP_FRONT_LEFT"
+ scalar_value: {
+ uint32_t: 4096
+ }
+ enumerator: "OUT_TOP_FRONT_CENTER"
+ scalar_value: {
+ uint32_t: 8192
+ }
+ enumerator: "OUT_TOP_FRONT_RIGHT"
+ scalar_value: {
+ uint32_t: 16384
+ }
+ enumerator: "OUT_TOP_BACK_LEFT"
+ scalar_value: {
+ uint32_t: 32768
+ }
+ enumerator: "OUT_TOP_BACK_CENTER"
+ scalar_value: {
+ uint32_t: 65536
+ }
+ enumerator: "OUT_TOP_BACK_RIGHT"
+ scalar_value: {
+ uint32_t: 131072
+ }
+ enumerator: "OUT_MONO"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "OUT_STEREO"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "OUT_QUAD"
+ scalar_value: {
+ uint32_t: 51
+ }
+ enumerator: "OUT_QUAD_BACK"
+ scalar_value: {
+ uint32_t: 51
+ }
+ enumerator: "OUT_QUAD_SIDE"
+ scalar_value: {
+ uint32_t: 1539
+ }
+ enumerator: "OUT_5POINT1"
+ scalar_value: {
+ uint32_t: 63
+ }
+ enumerator: "OUT_5POINT1_BACK"
+ scalar_value: {
+ uint32_t: 63
+ }
+ enumerator: "OUT_5POINT1_SIDE"
+ scalar_value: {
+ uint32_t: 1551
+ }
+ enumerator: "OUT_7POINT1"
+ scalar_value: {
+ uint32_t: 1599
+ }
+ enumerator: "OUT_ALL"
+ scalar_value: {
+ uint32_t: 262143
+ }
+ enumerator: "IN_LEFT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "IN_RIGHT"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "IN_FRONT"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "IN_BACK"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "IN_LEFT_PROCESSED"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "IN_RIGHT_PROCESSED"
+ scalar_value: {
+ uint32_t: 128
+ }
+ enumerator: "IN_FRONT_PROCESSED"
+ scalar_value: {
+ uint32_t: 256
+ }
+ enumerator: "IN_BACK_PROCESSED"
+ scalar_value: {
+ uint32_t: 512
+ }
+ enumerator: "IN_PRESSURE"
+ scalar_value: {
+ uint32_t: 1024
+ }
+ enumerator: "IN_X_AXIS"
+ scalar_value: {
+ uint32_t: 2048
+ }
+ enumerator: "IN_Y_AXIS"
+ scalar_value: {
+ uint32_t: 4096
+ }
+ enumerator: "IN_Z_AXIS"
+ scalar_value: {
+ uint32_t: 8192
+ }
+ enumerator: "IN_VOICE_UPLINK"
+ scalar_value: {
+ uint32_t: 16384
+ }
+ enumerator: "IN_VOICE_DNLINK"
+ scalar_value: {
+ uint32_t: 32768
+ }
+ enumerator: "IN_MONO"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "IN_STEREO"
+ scalar_value: {
+ uint32_t: 12
+ }
+ enumerator: "IN_FRONT_BACK"
+ scalar_value: {
+ uint32_t: 48
+ }
+ enumerator: "IN_ALL"
+ scalar_value: {
+ uint32_t: 65532
+ }
+ enumerator: "COUNT_MAX"
+ scalar_value: {
+ uint32_t: 30
+ }
+ enumerator: "INDEX_HDR"
+ scalar_value: {
+ uint32_t: 2147483648
+ }
+ enumerator: "INDEX_MASK_1"
+ scalar_value: {
+ uint32_t: 2147483649
+ }
+ enumerator: "INDEX_MASK_2"
+ scalar_value: {
+ uint32_t: 2147483651
+ }
+ enumerator: "INDEX_MASK_3"
+ scalar_value: {
+ uint32_t: 2147483655
+ }
+ enumerator: "INDEX_MASK_4"
+ scalar_value: {
+ uint32_t: 2147483663
+ }
+ enumerator: "INDEX_MASK_5"
+ scalar_value: {
+ uint32_t: 2147483679
+ }
+ enumerator: "INDEX_MASK_6"
+ scalar_value: {
+ uint32_t: 2147483711
+ }
+ enumerator: "INDEX_MASK_7"
+ scalar_value: {
+ uint32_t: 2147483775
+ }
+ enumerator: "INDEX_MASK_8"
+ scalar_value: {
+ uint32_t: 2147483903
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioInterleave"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "LEFT"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "RIGHT"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioMode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INVALID"
+ scalar_value: {
+ int32_t: -2
+ }
+ enumerator: "CURRENT"
+ scalar_value: {
+ int32_t: -1
+ }
+ enumerator: "NORMAL"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "RINGTONE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "IN_CALL"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "IN_COMMUNICATION"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "CNT"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "MAX"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioDevice"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "BIT_IN"
+ scalar_value: {
+ uint32_t: 2147483648
+ }
+ enumerator: "BIT_DEFAULT"
+ scalar_value: {
+ uint32_t: 1073741824
+ }
+ enumerator: "OUT_EARPIECE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "OUT_SPEAKER"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "OUT_WIRED_HEADSET"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "OUT_WIRED_HEADPHONE"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "OUT_BLUETOOTH_SCO"
+ scalar_value: {
+ uint32_t: 16
+ }
+ enumerator: "OUT_BLUETOOTH_SCO_HEADSET"
+ scalar_value: {
+ uint32_t: 32
+ }
+ enumerator: "OUT_BLUETOOTH_SCO_CARKIT"
+ scalar_value: {
+ uint32_t: 64
+ }
+ enumerator: "OUT_BLUETOOTH_A2DP"
+ scalar_value: {
+ uint32_t: 128
+ }
+ enumerator: "OUT_BLUETOOTH_A2DP_HEADPHONES"
+ scalar_value: {
+ uint32_t: 256
+ }
+ enumerator: "OUT_BLUETOOTH_A2DP_SPEAKER"
+ scalar_value: {
+ uint32_t: 512
+ }
+ enumerator: "OUT_AUX_DIGITAL"
+ scalar_value: {
+ uint32_t: 1024
+ }
+ enumerator: "OUT_HDMI"
+ scalar_value: {
+ uint32_t: 1024
+ }
+ enumerator: "OUT_ANLG_DOCK_HEADSET"
+ scalar_value: {
+ uint32_t: 2048
+ }
+ enumerator: "OUT_DGTL_DOCK_HEADSET"
+ scalar_value: {
+ uint32_t: 4096
+ }
+ enumerator: "OUT_USB_ACCESSORY"
+ scalar_value: {
+ uint32_t: 8192
+ }
+ enumerator: "OUT_USB_DEVICE"
+ scalar_value: {
+ uint32_t: 16384
+ }
+ enumerator: "OUT_REMOTE_SUBMIX"
+ scalar_value: {
+ uint32_t: 32768
+ }
+ enumerator: "OUT_TELEPHONY_TX"
+ scalar_value: {
+ uint32_t: 65536
+ }
+ enumerator: "OUT_LINE"
+ scalar_value: {
+ uint32_t: 131072
+ }
+ enumerator: "OUT_HDMI_ARC"
+ scalar_value: {
+ uint32_t: 262144
+ }
+ enumerator: "OUT_SPDIF"
+ scalar_value: {
+ uint32_t: 524288
+ }
+ enumerator: "OUT_FM"
+ scalar_value: {
+ uint32_t: 1048576
+ }
+ enumerator: "OUT_AUX_LINE"
+ scalar_value: {
+ uint32_t: 2097152
+ }
+ enumerator: "OUT_SPEAKER_SAFE"
+ scalar_value: {
+ uint32_t: 4194304
+ }
+ enumerator: "OUT_IP"
+ scalar_value: {
+ uint32_t: 8388608
+ }
+ enumerator: "OUT_BUS"
+ scalar_value: {
+ uint32_t: 16777216
+ }
+ enumerator: "OUT_DEFAULT"
+ scalar_value: {
+ uint32_t: 1073741824
+ }
+ enumerator: "OUT_ALL"
+ scalar_value: {
+ uint32_t: 1107296255
+ }
+ enumerator: "OUT_ALL_A2DP"
+ scalar_value: {
+ uint32_t: 896
+ }
+ enumerator: "OUT_ALL_SCO"
+ scalar_value: {
+ uint32_t: 112
+ }
+ enumerator: "OUT_ALL_USB"
+ scalar_value: {
+ uint32_t: 24576
+ }
+ enumerator: "IN_COMMUNICATION"
+ scalar_value: {
+ uint32_t: 2147483649
+ }
+ enumerator: "IN_AMBIENT"
+ scalar_value: {
+ uint32_t: 2147483650
+ }
+ enumerator: "IN_BUILTIN_MIC"
+ scalar_value: {
+ uint32_t: 2147483652
+ }
+ enumerator: "IN_BLUETOOTH_SCO_HEADSET"
+ scalar_value: {
+ uint32_t: 2147483656
+ }
+ enumerator: "IN_WIRED_HEADSET"
+ scalar_value: {
+ uint32_t: 2147483664
+ }
+ enumerator: "IN_AUX_DIGITAL"
+ scalar_value: {
+ uint32_t: 2147483680
+ }
+ enumerator: "IN_HDMI"
+ scalar_value: {
+ uint32_t: 2147483680
+ }
+ enumerator: "IN_VOICE_CALL"
+ scalar_value: {
+ uint32_t: 2147483712
+ }
+ enumerator: "IN_TELEPHONY_RX"
+ scalar_value: {
+ uint32_t: 2147483712
+ }
+ enumerator: "IN_BACK_MIC"
+ scalar_value: {
+ uint32_t: 2147483776
+ }
+ enumerator: "IN_REMOTE_SUBMIX"
+ scalar_value: {
+ uint32_t: 2147483904
+ }
+ enumerator: "IN_ANLG_DOCK_HEADSET"
+ scalar_value: {
+ uint32_t: 2147484160
+ }
+ enumerator: "IN_DGTL_DOCK_HEADSET"
+ scalar_value: {
+ uint32_t: 2147484672
+ }
+ enumerator: "IN_USB_ACCESSORY"
+ scalar_value: {
+ uint32_t: 2147485696
+ }
+ enumerator: "IN_USB_DEVICE"
+ scalar_value: {
+ uint32_t: 2147487744
+ }
+ enumerator: "IN_FM_TUNER"
+ scalar_value: {
+ uint32_t: 2147491840
+ }
+ enumerator: "IN_TV_TUNER"
+ scalar_value: {
+ uint32_t: 2147500032
+ }
+ enumerator: "IN_LINE"
+ scalar_value: {
+ uint32_t: 2147516416
+ }
+ enumerator: "IN_SPDIF"
+ scalar_value: {
+ uint32_t: 2147549184
+ }
+ enumerator: "IN_BLUETOOTH_A2DP"
+ scalar_value: {
+ uint32_t: 2147614720
+ }
+ enumerator: "IN_LOOPBACK"
+ scalar_value: {
+ uint32_t: 2147745792
+ }
+ enumerator: "IN_IP"
+ scalar_value: {
+ uint32_t: 2148007936
+ }
+ enumerator: "IN_BUS"
+ scalar_value: {
+ uint32_t: 2148532224
+ }
+ enumerator: "IN_DEFAULT"
+ scalar_value: {
+ uint32_t: 3221225472
+ }
+ enumerator: "IN_ALL"
+ scalar_value: {
+ uint32_t: 3223322623
+ }
+ enumerator: "IN_ALL_SCO"
+ scalar_value: {
+ uint32_t: 2147483656
+ }
+ enumerator: "IN_ALL_USB"
+ scalar_value: {
+ uint32_t: 2147489792
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioOutputFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "DIRECT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "PRIMARY"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "FAST"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "DEEP_BUFFER"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "COMPRESS_OFFLOAD"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "NON_BLOCKING"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "HW_AV_SYNC"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "TTS"
+ scalar_value: {
+ int32_t: 128
+ }
+ enumerator: "RAW"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "SYNC"
+ scalar_value: {
+ int32_t: 512
+ }
+ enumerator: "IEC958_NONAUDIO"
+ scalar_value: {
+ int32_t: 1024
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioInputFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "FAST"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "HW_HOTWORD"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "RAW"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "SYNC"
+ scalar_value: {
+ int32_t: 8
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioOffloadInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "sampleRateHz"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "channelMask"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ }
+ struct_value: {
+ name: "format"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+ }
+ struct_value: {
+ name: "streamType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioStreamType"
+ }
+ struct_value: {
+ name: "bitRatePerSecond"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "durationMicroseconds"
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ struct_value: {
+ name: "hasVideo"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "isStreaming"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "sampleRateHz"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "channelMask"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ }
+ struct_value: {
+ name: "format"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+ }
+ struct_value: {
+ name: "offloadInfo"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioOffloadInfo"
+ }
+ struct_value: {
+ name: "frameCount"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioGainMode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "JOINT"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "CHANNELS"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "RAMP"
+ scalar_value: {
+ uint32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioGain"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "mode"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioGainMode"
+ }
+ struct_value: {
+ name: "channelMask"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ }
+ struct_value: {
+ name: "minValue"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "maxValue"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "defaultValue"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "stepValue"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "minRampMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxRampMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioGainConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "index"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "mode"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioGainMode"
+ }
+ struct_value: {
+ name: "channelMask"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ }
+ struct_value: {
+ name: "values"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 32
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+ struct_value: {
+ name: "rampDurationMs"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortRole"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "SOURCE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "SINK"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "DEVICE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "MIX"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "SESSION"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfigDeviceExt"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "hwModule"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioDevice"
+ }
+ struct_value: {
+ name: "address"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 32
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfigSessionExt"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "session"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfigMask"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SAMPLE_RATE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "CHANNEL_MASK"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "FORMAT"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "GAIN"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "ALL"
+ scalar_value: {
+ uint32_t: 15
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfig"
+ type: TYPE_STRUCT
+ sub_struct: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext"
+ type: TYPE_UNION
+ sub_union: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt"
+ type: TYPE_STRUCT
+ sub_struct: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt::UseCase"
+ type: TYPE_UNION
+ union_value: {
+ name: "stream"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioStreamType"
+ }
+ union_value: {
+ name: "source"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioSource"
+ }
+ }
+ struct_value: {
+ name: "hwModule"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "ioHandle"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "useCase"
+ type: TYPE_UNION
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt::UseCase"
+ }
+ }
+ union_value: {
+ name: "device"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfigDeviceExt"
+ }
+ union_value: {
+ name: "mix"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext::AudioPortConfigMixExt"
+ }
+ union_value: {
+ name: "session"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfigSessionExt"
+ }
+ }
+ struct_value: {
+ name: "id"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "configMask"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfigMask"
+ }
+ struct_value: {
+ name: "sampleRateHz"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "channelMask"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ }
+ struct_value: {
+ name: "format"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+ }
+ struct_value: {
+ name: "gain"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioGainConfig"
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortType"
+ }
+ struct_value: {
+ name: "role"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortRole"
+ }
+ struct_value: {
+ name: "ext"
+ type: TYPE_UNION
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig::Ext"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortDeviceExt"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "hwModule"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioDevice"
+ }
+ struct_value: {
+ name: "address"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 32
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioMixLatencyClass"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "LOW"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "NORMAL"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortMixExt"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "hwModule"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "ioHandle"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "latencyClass"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioMixLatencyClass"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPortSessionExt"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "session"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::audio::common::V2_0::AudioPort"
+ type: TYPE_STRUCT
+ sub_struct: {
+ name: "::android::hardware::audio::common::V2_0::AudioPort::Ext"
+ type: TYPE_UNION
+ union_value: {
+ name: "device"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortDeviceExt"
+ }
+ union_value: {
+ name: "mix"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortMixExt"
+ }
+ union_value: {
+ name: "session"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortSessionExt"
+ }
+ }
+ struct_value: {
+ name: "id"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "role"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortRole"
+ }
+ struct_value: {
+ name: "name"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "sampleRates"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+ struct_value: {
+ name: "channelMasks"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioChannelMask"
+ }
+ }
+ struct_value: {
+ name: "formats"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioFormat"
+ }
+ }
+ struct_value: {
+ name: "gains"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioGain"
+ }
+ }
+ struct_value: {
+ name: "activeConfig"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortConfig"
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPortType"
+ }
+ struct_value: {
+ name: "ext"
+ type: TYPE_UNION
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioPort::Ext"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::input::V1_0::Result"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "OK"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "UNKNOWN"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "NO_RESOURCE"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "INVALID_ARGUMENTS"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "INVALID_STATE"
+ scalar_value: {
+ int32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::input::V1_0::TvInputType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "OTHER"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "TUNER"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "COMPOSITE"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "SVIDEO"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "SCART"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "COMPONENT"
+ scalar_value: {
+ int32_t: 6
+ }
+ enumerator: "VGA"
+ scalar_value: {
+ int32_t: 7
+ }
+ enumerator: "DVI"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "HDMI"
+ scalar_value: {
+ int32_t: 9
+ }
+ enumerator: "DISPLAY_PORT"
+ scalar_value: {
+ int32_t: 10
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::input::V1_0::TvInputDeviceInfo"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "deviceId"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::input::V1_0::TvInputType"
+ }
+ struct_value: {
+ name: "portId"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "audioType"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::audio::common::V2_0::AudioDevice"
+ }
+ struct_value: {
+ name: "audioAddress"
+ type: TYPE_ARRAY
+ vector_value: {
+ vector_size: 32
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::input::V1_0::TvInputEventType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "DEVICE_AVAILABLE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "DEVICE_UNAVAILABLE"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "STREAM_CONFIGURATIONS_CHANGED"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::input::V1_0::TvInputEvent"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "type"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::tv::input::V1_0::TvInputEventType"
+ }
+ struct_value: {
+ name: "deviceInfo"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::tv::input::V1_0::TvInputDeviceInfo"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::tv::input::V1_0::TvStreamConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "streamId"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "maxVideoWidth"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ struct_value: {
+ name: "maxVideoHeight"
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+}
+
diff --git a/vehicle/2.0/types.hal b/vehicle/2.0/types.hal
index b19621c..0e0e3ea 100644
--- a/vehicle/2.0/types.hal
+++ b/vehicle/2.0/types.hal
@@ -2073,7 +2073,7 @@
METER_PER_SEC = 0x01,
RPM = 0x02,
- HZ = 0x03,
+ HERTZ = 0x03,
PERCENTILE = 0x10,
MILLIMETER = 0x20,
METER = 0x21,
@@ -2430,7 +2430,7 @@
};
-enum SubscribeFlags {
+enum SubscribeFlags : int32_t {
UNDEFINED = 0x0,
/*
@@ -2477,7 +2477,7 @@
};
/* Error codes used in vehicle HAL interface. */
-enum StatusCode {
+enum StatusCode : int32_t {
OK = 0,
/* Try again. */
diff --git a/vehicle/2.0/vts/Android.mk b/vehicle/2.0/vts/Android.mk
new file mode 100644
index 0000000..8370067
--- /dev/null
+++ b/vehicle/2.0/vts/Android.mk
@@ -0,0 +1,120 @@
+#
+# Copyright (C) 2016 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for Vehicle v2.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_vehicle@2.0
+
+LOCAL_SRC_FILES := \
+ Vehicle.vts \
+ VehicleCallback.vts \
+ types.vts \
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.vehicle@2.0 \
+ libbase \
+ libutils \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_datatype \
+ libvts_measurement \
+ libvts_multidevice_proto \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build profiler for Vehicle.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_vehicle@2.0
+
+LOCAL_SRC_FILES := \
+ Vehicle.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES := \
+ android.hardware.vehicle@2.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# build profiler for VehicleCallback.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_vehicle_callback_@2.0
+
+LOCAL_SRC_FILES := \
+ Vehicle.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES := \
+ android.hardware.vehicle@2.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidlbase \
+ libhidltransport \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
\ No newline at end of file
diff --git a/vehicle/2.0/vts/Vehicle.vts b/vehicle/2.0/vts/Vehicle.vts
new file mode 100644
index 0000000..7fecfa9
--- /dev/null
+++ b/vehicle/2.0/vts/Vehicle.vts
@@ -0,0 +1,116 @@
+component_class: HAL_HIDL
+component_type_version: 2.0
+component_name: "IVehicle"
+
+package: "android.hardware.vehicle"
+
+import: "android.hardware.vehicle@2.0::IVehicleCallback"
+import: "android.hardware.vehicle@2.0::types"
+
+interface: {
+ api: {
+ name: "getAllPropConfigs"
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropConfig"
+ }
+ }
+ }
+
+ api: {
+ name: "getPropConfigs"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+ }
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropConfig"
+ }
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ }
+ }
+ }
+
+ api: {
+ name: "get"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+ }
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+ }
+ }
+
+ api: {
+ name: "set"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+ }
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+ }
+ }
+
+ api: {
+ name: "subscribe"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IVehicleCallback"
+ is_callback: true
+ }
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::SubscribeOptions"
+ }
+ }
+ }
+
+ api: {
+ name: "unsubscribe"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+ }
+ arg: {
+ type: TYPE_HIDL_CALLBACK
+ predefined_type: "IVehicleCallback"
+ is_callback: true
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ }
+ }
+
+ api: {
+ name: "debugDump"
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ }
+
+}
diff --git a/vehicle/2.0/vts/VehicleCallback.vts b/vehicle/2.0/vts/VehicleCallback.vts
new file mode 100644
index 0000000..b5ee152
--- /dev/null
+++ b/vehicle/2.0/vts/VehicleCallback.vts
@@ -0,0 +1,45 @@
+component_class: HAL_HIDL
+component_type_version: 2.0
+component_name: "IVehicleCallback"
+
+package: "android.hardware.vehicle"
+
+import: "android.hardware.vehicle@2.0::types"
+
+interface: {
+ api: {
+ name: "onPropertyEvent"
+ arg: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+ }
+ }
+ }
+
+ api: {
+ name: "onPropertySet"
+ arg: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+ }
+ }
+
+ api: {
+ name: "onPropertySetError"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::StatusCode"
+ }
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+
+}
diff --git a/vehicle/2.0/vts/types.vts b/vehicle/2.0/vts/types.vts
new file mode 100644
index 0000000..fc63add
--- /dev/null
+++ b/vehicle/2.0/vts/types.vts
@@ -0,0 +1,1821 @@
+component_class: HAL_HIDL
+component_type_version: 2.0
+component_name: "types"
+
+package: "android.hardware.vehicle"
+
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropertyType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STRING"
+ scalar_value: {
+ int32_t: 1048576
+ }
+ enumerator: "BOOLEAN"
+ scalar_value: {
+ int32_t: 2097152
+ }
+ enumerator: "INT32"
+ scalar_value: {
+ int32_t: 4194304
+ }
+ enumerator: "INT32_VEC"
+ scalar_value: {
+ int32_t: 4259840
+ }
+ enumerator: "INT64"
+ scalar_value: {
+ int32_t: 5242880
+ }
+ enumerator: "FLOAT"
+ scalar_value: {
+ int32_t: 6291456
+ }
+ enumerator: "FLOAT_VEC"
+ scalar_value: {
+ int32_t: 6356992
+ }
+ enumerator: "BYTES"
+ scalar_value: {
+ int32_t: 7340032
+ }
+ enumerator: "MASK"
+ scalar_value: {
+ int32_t: 16711680
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleArea"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "GLOBAL"
+ scalar_value: {
+ int32_t: 16777216
+ }
+ enumerator: "ZONE"
+ scalar_value: {
+ int32_t: 33554432
+ }
+ enumerator: "WINDOW"
+ scalar_value: {
+ int32_t: 50331648
+ }
+ enumerator: "MIRROR"
+ scalar_value: {
+ int32_t: 67108864
+ }
+ enumerator: "SEAT"
+ scalar_value: {
+ int32_t: 83886080
+ }
+ enumerator: "DOOR"
+ scalar_value: {
+ int32_t: 100663296
+ }
+ enumerator: "MASK"
+ scalar_value: {
+ int32_t: 251658240
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropertyGroup"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "SYSTEM"
+ scalar_value: {
+ int32_t: 268435456
+ }
+ enumerator: "VENDOR"
+ scalar_value: {
+ int32_t: 536870912
+ }
+ enumerator: "MASK"
+ scalar_value: {
+ int32_t: -268435456
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INVALID"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "INFO_VIN"
+ scalar_value: {
+ int32_t: 286261504
+ }
+ enumerator: "INFO_MAKE"
+ scalar_value: {
+ int32_t: 286261505
+ }
+ enumerator: "INFO_MODEL"
+ scalar_value: {
+ int32_t: 286261506
+ }
+ enumerator: "INFO_MODEL_YEAR"
+ scalar_value: {
+ int32_t: 289407235
+ }
+ enumerator: "INFO_FUEL_CAPACITY"
+ scalar_value: {
+ int32_t: 291504388
+ }
+ enumerator: "PERF_ODOMETER"
+ scalar_value: {
+ int32_t: 291504644
+ }
+ enumerator: "PERF_VEHICLE_SPEED"
+ scalar_value: {
+ int32_t: 291504647
+ }
+ enumerator: "ENGINE_COOLANT_TEMP"
+ scalar_value: {
+ int32_t: 291504897
+ }
+ enumerator: "ENGINE_OIL_TEMP"
+ scalar_value: {
+ int32_t: 291504900
+ }
+ enumerator: "ENGINE_RPM"
+ scalar_value: {
+ int32_t: 291504901
+ }
+ enumerator: "GEAR_SELECTION"
+ scalar_value: {
+ int32_t: 289408000
+ }
+ enumerator: "CURRENT_GEAR"
+ scalar_value: {
+ int32_t: 289408001
+ }
+ enumerator: "PARKING_BRAKE_ON"
+ scalar_value: {
+ int32_t: 287310850
+ }
+ enumerator: "DRIVING_STATUS"
+ scalar_value: {
+ int32_t: 289408004
+ }
+ enumerator: "FUEL_LEVEL_LOW"
+ scalar_value: {
+ int32_t: 287310853
+ }
+ enumerator: "NIGHT_MODE"
+ scalar_value: {
+ int32_t: 287310855
+ }
+ enumerator: "TURN_SIGNAL_STATE"
+ scalar_value: {
+ int32_t: 289408008
+ }
+ enumerator: "HVAC_FAN_SPEED"
+ scalar_value: {
+ int32_t: 306185472
+ }
+ enumerator: "HVAC_FAN_DIRECTION"
+ scalar_value: {
+ int32_t: 306185473
+ }
+ enumerator: "HVAC_TEMPERATURE_CURRENT"
+ scalar_value: {
+ int32_t: 308282626
+ }
+ enumerator: "HVAC_TEMPERATURE_SET"
+ scalar_value: {
+ int32_t: 308282627
+ }
+ enumerator: "HVAC_DEFROSTER"
+ scalar_value: {
+ int32_t: 320865540
+ }
+ enumerator: "HVAC_AC_ON"
+ scalar_value: {
+ int32_t: 304088325
+ }
+ enumerator: "HVAC_MAX_AC_ON"
+ scalar_value: {
+ int32_t: 304088326
+ }
+ enumerator: "HVAC_MAX_DEFROST_ON"
+ scalar_value: {
+ int32_t: 304088327
+ }
+ enumerator: "HVAC_RECIRC_ON"
+ scalar_value: {
+ int32_t: 304088328
+ }
+ enumerator: "HVAC_DUAL_ON"
+ scalar_value: {
+ int32_t: 304088329
+ }
+ enumerator: "HVAC_AUTO_ON"
+ scalar_value: {
+ int32_t: 304088330
+ }
+ enumerator: "HVAC_SEAT_TEMPERATURE"
+ scalar_value: {
+ int32_t: 356517131
+ }
+ enumerator: "HVAC_SIDE_MIRROR_HEAT"
+ scalar_value: {
+ int32_t: 339739916
+ }
+ enumerator: "HVAC_STEERING_WHEEL_TEMP"
+ scalar_value: {
+ int32_t: 289408269
+ }
+ enumerator: "HVAC_TEMPERATURE_UNITS"
+ scalar_value: {
+ int32_t: 306185486
+ }
+ enumerator: "HVAC_ACTUAL_FAN_SPEED_RPM"
+ scalar_value: {
+ int32_t: 306185487
+ }
+ enumerator: "HVAC_FAN_DIRECTION_AVAILABLE"
+ scalar_value: {
+ int32_t: 306185489
+ }
+ enumerator: "HVAC_POWER_ON"
+ scalar_value: {
+ int32_t: 304088336
+ }
+ enumerator: "ENV_OUTSIDE_TEMPERATURE"
+ scalar_value: {
+ int32_t: 291505923
+ }
+ enumerator: "ENV_CABIN_TEMPERATURE"
+ scalar_value: {
+ int32_t: 291505924
+ }
+ enumerator: "RADIO_PRESET"
+ scalar_value: {
+ int32_t: 289474561
+ }
+ enumerator: "AUDIO_FOCUS"
+ scalar_value: {
+ int32_t: 289474816
+ }
+ enumerator: "AUDIO_VOLUME"
+ scalar_value: {
+ int32_t: 289474817
+ }
+ enumerator: "AUDIO_VOLUME_LIMIT"
+ scalar_value: {
+ int32_t: 289474818
+ }
+ enumerator: "AUDIO_ROUTING_POLICY"
+ scalar_value: {
+ int32_t: 289474819
+ }
+ enumerator: "AUDIO_HW_VARIANT"
+ scalar_value: {
+ int32_t: 289409284
+ }
+ enumerator: "AUDIO_EXT_ROUTING_HINT"
+ scalar_value: {
+ int32_t: 289474821
+ }
+ enumerator: "AP_POWER_STATE"
+ scalar_value: {
+ int32_t: 2560
+ }
+ enumerator: "DISPLAY_BRIGHTNESS"
+ scalar_value: {
+ int32_t: 289409537
+ }
+ enumerator: "AP_POWER_BOOTUP_REASON"
+ scalar_value: {
+ int32_t: 289409538
+ }
+ enumerator: "HW_KEY_INPUT"
+ scalar_value: {
+ int32_t: 289475088
+ }
+ enumerator: "INSTRUMENT_CLUSTER_INFO"
+ scalar_value: {
+ int32_t: 289475104
+ }
+ enumerator: "UNIX_TIME"
+ scalar_value: {
+ int32_t: 290458160
+ }
+ enumerator: "CURRENT_TIME_IN_SECONDS"
+ scalar_value: {
+ int32_t: 289409585
+ }
+ enumerator: "DOOR_POS"
+ scalar_value: {
+ int32_t: 373295872
+ }
+ enumerator: "DOOR_MOVE"
+ scalar_value: {
+ int32_t: 373295873
+ }
+ enumerator: "DOOR_LOCK"
+ scalar_value: {
+ int32_t: 371198722
+ }
+ enumerator: "MIRROR_Z_POS"
+ scalar_value: {
+ int32_t: 339741504
+ }
+ enumerator: "MIRROR_Z_MOVE"
+ scalar_value: {
+ int32_t: 339741505
+ }
+ enumerator: "MIRROR_Y_POS"
+ scalar_value: {
+ int32_t: 339741506
+ }
+ enumerator: "MIRROR_Y_MOVE"
+ scalar_value: {
+ int32_t: 339741507
+ }
+ enumerator: "MIRROR_LOCK"
+ scalar_value: {
+ int32_t: 287312708
+ }
+ enumerator: "MIRROR_FOLD"
+ scalar_value: {
+ int32_t: 287312709
+ }
+ enumerator: "SEAT_MEMORY_SELECT"
+ scalar_value: {
+ int32_t: 356518784
+ }
+ enumerator: "SEAT_MEMORY_SET"
+ scalar_value: {
+ int32_t: 356518785
+ }
+ enumerator: "SEAT_BELT_BUCKLED"
+ scalar_value: {
+ int32_t: 354421634
+ }
+ enumerator: "SEAT_BELT_HEIGHT_POS"
+ scalar_value: {
+ int32_t: 356518787
+ }
+ enumerator: "SEAT_BELT_HEIGHT_MOVE"
+ scalar_value: {
+ int32_t: 356518788
+ }
+ enumerator: "SEAT_FORE_AFT_POS"
+ scalar_value: {
+ int32_t: 356518789
+ }
+ enumerator: "SEAT_FORE_AFT_MOVE"
+ scalar_value: {
+ int32_t: 356518790
+ }
+ enumerator: "SEAT_BACKREST_ANGLE_1_POS"
+ scalar_value: {
+ int32_t: 356518791
+ }
+ enumerator: "SEAT_BACKREST_ANGLE_1_MOVE"
+ scalar_value: {
+ int32_t: 356518792
+ }
+ enumerator: "SEAT_BACKREST_ANGLE_2_POS"
+ scalar_value: {
+ int32_t: 356518793
+ }
+ enumerator: "SEAT_BACKREST_ANGLE_2_MOVE"
+ scalar_value: {
+ int32_t: 356518794
+ }
+ enumerator: "SEAT_HEIGHT_POS"
+ scalar_value: {
+ int32_t: 356518795
+ }
+ enumerator: "SEAT_HEIGHT_MOVE"
+ scalar_value: {
+ int32_t: 356518796
+ }
+ enumerator: "SEAT_DEPTH_POS"
+ scalar_value: {
+ int32_t: 356518797
+ }
+ enumerator: "SEAT_DEPTH_MOVE"
+ scalar_value: {
+ int32_t: 356518798
+ }
+ enumerator: "SEAT_TILT_POS"
+ scalar_value: {
+ int32_t: 356518799
+ }
+ enumerator: "SEAT_TILT_MOVE"
+ scalar_value: {
+ int32_t: 356518800
+ }
+ enumerator: "SEAT_LUMBAR_FORE_AFT_POS"
+ scalar_value: {
+ int32_t: 356518801
+ }
+ enumerator: "SEAT_LUMBAR_FORE_AFT_MOVE"
+ scalar_value: {
+ int32_t: 356518802
+ }
+ enumerator: "SEAT_LUMBAR_SIDE_SUPPORT_POS"
+ scalar_value: {
+ int32_t: 356518803
+ }
+ enumerator: "SEAT_LUMBAR_SIDE_SUPPORT_MOVE"
+ scalar_value: {
+ int32_t: 356518804
+ }
+ enumerator: "SEAT_HEADREST_HEIGHT_POS"
+ scalar_value: {
+ int32_t: 289409941
+ }
+ enumerator: "SEAT_HEADREST_HEIGHT_MOVE"
+ scalar_value: {
+ int32_t: 356518806
+ }
+ enumerator: "SEAT_HEADREST_ANGLE_POS"
+ scalar_value: {
+ int32_t: 356518807
+ }
+ enumerator: "SEAT_HEADREST_ANGLE_MOVE"
+ scalar_value: {
+ int32_t: 356518808
+ }
+ enumerator: "SEAT_HEADREST_FORE_AFT_POS"
+ scalar_value: {
+ int32_t: 356518809
+ }
+ enumerator: "SEAT_HEADREST_FORE_AFT_MOVE"
+ scalar_value: {
+ int32_t: 356518810
+ }
+ enumerator: "WINDOW_POS"
+ scalar_value: {
+ int32_t: 289409984
+ }
+ enumerator: "WINDOW_MOVE"
+ scalar_value: {
+ int32_t: 289409985
+ }
+ enumerator: "WINDOW_VENT_POS"
+ scalar_value: {
+ int32_t: 289409986
+ }
+ enumerator: "WINDOW_VENT_MOVE"
+ scalar_value: {
+ int32_t: 289409987
+ }
+ enumerator: "WINDOW_LOCK"
+ scalar_value: {
+ int32_t: 287312836
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleHvacFanDirection"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "FACE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "FLOOR"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "FACE_AND_FLOOR"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "DEFROST"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "DEFROST_AND_FLOOR"
+ scalar_value: {
+ int32_t: 5
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleRadioConstants"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "VEHICLE_RADIO_PRESET_MIN_VALUE"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioFocusRequest"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "REQUEST_GAIN"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "REQUEST_GAIN_TRANSIENT"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "REQUEST_GAIN_TRANSIENT_MAY_DUCK"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "REQUEST_GAIN_TRANSIENT_NO_DUCK"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "REQUEST_RELEASE"
+ scalar_value: {
+ int32_t: 5
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioFocusState"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STATE_GAIN"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "STATE_GAIN_TRANSIENT"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "STATE_LOSS_TRANSIENT_CAN_DUCK"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "STATE_LOSS_TRANSIENT"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "STATE_LOSS"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "STATE_LOSS_TRANSIENT_EXLCUSIVE"
+ scalar_value: {
+ int32_t: 6
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioStreamFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STREAM0_FLAG"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "STREAM1_FLAG"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "STREAM2_FLAG"
+ scalar_value: {
+ int32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioStream"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STREAM0"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "STREAM1"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioExtFocusFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE_FLAG"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "PERMANENT_FLAG"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "TRANSIENT_FLAG"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "PLAY_ONLY_FLAG"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "MUTE_MEDIA_FLAG"
+ scalar_value: {
+ int32_t: 8
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioFocusIndex"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "FOCUS"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "STREAMS"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "EXTERNAL_FOCUS_STATE"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "AUDIO_CONTEXTS"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioContextFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "MUSIC_FLAG"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "NAVIGATION_FLAG"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "VOICE_COMMAND_FLAG"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "CALL_FLAG"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "ALARM_FLAG"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "NOTIFICATION_FLAG"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "UNKNOWN_FLAG"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "SAFETY_ALERT_FLAG"
+ scalar_value: {
+ int32_t: 128
+ }
+ enumerator: "CD_ROM_FLAG"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "AUX_AUDIO_FLAG"
+ scalar_value: {
+ int32_t: 512
+ }
+ enumerator: "SYSTEM_SOUND_FLAG"
+ scalar_value: {
+ int32_t: 1024
+ }
+ enumerator: "RADIO_FLAG"
+ scalar_value: {
+ int32_t: 2048
+ }
+ enumerator: "EXT_SOURCE_FLAG"
+ scalar_value: {
+ int32_t: 4096
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeCapabilityFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "PERSISTENT_STORAGE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "MASTER_VOLUME_ONLY"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeState"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STATE_OK"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "LIMIT_REACHED"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeIndex"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INDEX_STREAM"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "INDEX_VOLUME"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "INDEX_STATE"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioVolumeLimitIndex"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STREAM"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "MAX_VOLUME"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioRoutingPolicyIndex"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STREAM"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "CONTEXTS"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAudioHwVariantConfigFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "INTERNAL_RADIO_FLAG"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleApPowerStateConfigFlag"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "ENABLE_DEEP_SLEEP_FLAG"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleApPowerState"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "OFF"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "DEEP_SLEEP"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "ON_DISP_OFF"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "ON_FULL"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "SHUTDOWN_PREPARE"
+ scalar_value: {
+ int32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleApPowerStateShutdownParam"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "SHUTDOWN_IMMEDIATELY"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "CAN_SLEEP"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "SHUTDOWN_ONLY"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleApPowerSetState"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "BOOT_COMPLETE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "DEEP_SLEEP_ENTRY"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "DEEP_SLEEP_EXIT"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "SHUTDOWN_POSTPONE"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "SHUTDOWN_START"
+ scalar_value: {
+ int32_t: 5
+ }
+ enumerator: "DISPLAY_OFF"
+ scalar_value: {
+ int32_t: 6
+ }
+ enumerator: "DISPLAY_ON"
+ scalar_value: {
+ int32_t: 7
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleApPowerStateIndex"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STATE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "ADDITIONAL"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleApPowerBootupReason"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "USER_POWER_ON"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "USER_UNLOCK"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "TIMER"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleHwKeyInputAction"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "ACTION_DOWN"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "ACTION_UP"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleDisplay"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "MAIN"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "INSTRUMENT_CLUSTER"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleInstrumentClusterType"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "HAL_INTERFACE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "EXTERNAL_DISPLAY"
+ scalar_value: {
+ int32_t: 2
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleUnit"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "SHOULD_NOT_USE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "METER_PER_SEC"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "RPM"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "HERTZ"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "PERCENTILE"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "MILLIMETER"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "METER"
+ scalar_value: {
+ int32_t: 33
+ }
+ enumerator: "KILOMETER"
+ scalar_value: {
+ int32_t: 35
+ }
+ enumerator: "CELSIUS"
+ scalar_value: {
+ int32_t: 48
+ }
+ enumerator: "FAHRENHEIT"
+ scalar_value: {
+ int32_t: 49
+ }
+ enumerator: "KELVIN"
+ scalar_value: {
+ int32_t: 50
+ }
+ enumerator: "MILLILITER"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "NANO_SECS"
+ scalar_value: {
+ int32_t: 80
+ }
+ enumerator: "SECS"
+ scalar_value: {
+ int32_t: 83
+ }
+ enumerator: "YEAR"
+ scalar_value: {
+ int32_t: 89
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropertyChangeMode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "STATIC"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "ON_CHANGE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "CONTINUOUS"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "POLL"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "ON_SET"
+ scalar_value: {
+ int32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropertyAccess"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "READ"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "WRITE"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "READ_WRITE"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePermissionModel"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NO_RESTRICTION"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "OEM_ONLY"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "SYSTEM_APP_ONLY"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "OEM_OR_SYSTEM_APP"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleDrivingStatus"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "UNRESTRICTED"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "NO_VIDEO"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "NO_KEYBOARD_INPUT"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "NO_VOICE_INPUT"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "NO_CONFIG"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "LIMIT_MESSAGE_LEN"
+ scalar_value: {
+ int32_t: 16
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleGear"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "GEAR_NEUTRAL"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "GEAR_REVERSE"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "GEAR_PARK"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "GEAR_DRIVE"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "GEAR_LOW"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "GEAR_1"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "GEAR_2"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "GEAR_3"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "GEAR_4"
+ scalar_value: {
+ int32_t: 128
+ }
+ enumerator: "GEAR_5"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "GEAR_6"
+ scalar_value: {
+ int32_t: 512
+ }
+ enumerator: "GEAR_7"
+ scalar_value: {
+ int32_t: 1024
+ }
+ enumerator: "GEAR_8"
+ scalar_value: {
+ int32_t: 2048
+ }
+ enumerator: "GEAR_9"
+ scalar_value: {
+ int32_t: 4096
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAreaZone"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "ROW_1_LEFT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "ROW_1_CENTER"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "ROW_1_RIGHT"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "ROW_1"
+ scalar_value: {
+ int32_t: 8
+ }
+ enumerator: "ROW_2_LEFT"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "ROW_2_CENTER"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "ROW_2_RIGHT"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "ROW_2"
+ scalar_value: {
+ int32_t: 128
+ }
+ enumerator: "ROW_3_LEFT"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "ROW_3_CENTER"
+ scalar_value: {
+ int32_t: 512
+ }
+ enumerator: "ROW_3_RIGHT"
+ scalar_value: {
+ int32_t: 1024
+ }
+ enumerator: "ROW_3"
+ scalar_value: {
+ int32_t: 2048
+ }
+ enumerator: "ROW_4_LEFT"
+ scalar_value: {
+ int32_t: 4096
+ }
+ enumerator: "ROW_4_CENTER"
+ scalar_value: {
+ int32_t: 8192
+ }
+ enumerator: "ROW_4_RIGHT"
+ scalar_value: {
+ int32_t: 16384
+ }
+ enumerator: "ROW_4"
+ scalar_value: {
+ int32_t: 32768
+ }
+ enumerator: "WHOLE_CABIN"
+ scalar_value: {
+ int32_t: -2147483648
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAreaSeat"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "ROW_1_LEFT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "ROW_1_CENTER"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "ROW_1_RIGHT"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "ROW_2_LEFT"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "ROW_2_CENTER"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "ROW_2_RIGHT"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "ROW_3_LEFT"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "ROW_3_CENTER"
+ scalar_value: {
+ int32_t: 512
+ }
+ enumerator: "ROW_3_RIGHT"
+ scalar_value: {
+ int32_t: 1024
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAreaWindow"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "FRONT_WINDSHIELD"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "REAR_WINDSHIELD"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "ROOF_TOP"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "ROW_1_LEFT"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "ROW_1_RIGHT"
+ scalar_value: {
+ int32_t: 32
+ }
+ enumerator: "ROW_2_LEFT"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "ROW_2_RIGHT"
+ scalar_value: {
+ int32_t: 512
+ }
+ enumerator: "ROW_3_LEFT"
+ scalar_value: {
+ int32_t: 4096
+ }
+ enumerator: "ROW_3_RIGHT"
+ scalar_value: {
+ int32_t: 8192
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAreaDoor"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "ROW_1_LEFT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "ROW_1_RIGHT"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "ROW_2_LEFT"
+ scalar_value: {
+ int32_t: 16
+ }
+ enumerator: "ROW_2_RIGHT"
+ scalar_value: {
+ int32_t: 64
+ }
+ enumerator: "ROW_3_LEFT"
+ scalar_value: {
+ int32_t: 256
+ }
+ enumerator: "ROW_3_RIGHT"
+ scalar_value: {
+ int32_t: 1024
+ }
+ enumerator: "HOOD"
+ scalar_value: {
+ int32_t: 268435456
+ }
+ enumerator: "REAR"
+ scalar_value: {
+ int32_t: 536870912
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAreaMirror"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "DRIVER_LEFT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "DRIVER_RIGHT"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "DRIVER_CENTER"
+ scalar_value: {
+ int32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleTurnSignal"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "NONE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "RIGHT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "LEFT"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "EMERGENCY"
+ scalar_value: {
+ int32_t: 4
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehicleAreaConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "areaId"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "minInt32Value"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "maxInt32Value"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "minInt64Value"
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ struct_value: {
+ name: "maxInt64Value"
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ struct_value: {
+ name: "minFloatValue"
+ type: TYPE_SCALAR
+ scalar_type: "float_t"
+ }
+ struct_value: {
+ name: "maxFloatValue"
+ type: TYPE_SCALAR
+ scalar_type: "float_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropConfig"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "prop"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ }
+ struct_value: {
+ name: "access"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropertyAccess"
+ }
+ struct_value: {
+ name: "changeMode"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropertyChangeMode"
+ }
+ struct_value: {
+ name: "permissionModel"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePermissionModel"
+ }
+ struct_value: {
+ name: "supportedAreas"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "areaConfigs"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleAreaConfig"
+ }
+ }
+ struct_value: {
+ name: "configFlags"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "configArray"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+ struct_value: {
+ name: "configString"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "minSampleRate"
+ type: TYPE_SCALAR
+ scalar_type: "float_t"
+ }
+ struct_value: {
+ name: "maxSampleRate"
+ type: TYPE_SCALAR
+ scalar_type: "float_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropValue"
+ type: TYPE_STRUCT
+ sub_struct: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropValue::RawValue"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "int32Values"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+ struct_value: {
+ name: "floatValues"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "float_t"
+ }
+ }
+ struct_value: {
+ name: "int64Values"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ }
+ struct_value: {
+ name: "bytes"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_SCALAR
+ scalar_type: "uint8_t"
+ }
+ }
+ struct_value: {
+ name: "stringValue"
+ type: TYPE_STRING
+ }
+ }
+ struct_value: {
+ name: "prop"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ }
+ struct_value: {
+ name: "timestamp"
+ type: TYPE_SCALAR
+ scalar_type: "int64_t"
+ }
+ struct_value: {
+ name: "areaId"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "value"
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::vehicle::V2_0::VehiclePropValue::RawValue"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::VehiclePropertyOperation"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "GENERIC"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "SET"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "GET"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "SUBSCRIBE"
+ scalar_value: {
+ int32_t: 3
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::SubscribeFlags"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "UNDEFINED"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "HAL_EVENT"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "SET_CALL"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "DEFAULT"
+ scalar_value: {
+ int32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::SubscribeOptions"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "propId"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::VehicleProperty"
+ }
+ struct_value: {
+ name: "vehicleAreas"
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ struct_value: {
+ name: "sampleRate"
+ type: TYPE_SCALAR
+ scalar_type: "float_t"
+ }
+ struct_value: {
+ name: "flags"
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::vehicle::V2_0::SubscribeFlags"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::vehicle::V2_0::StatusCode"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "OK"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "TRY_AGAIN"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "INVALID_ARG"
+ scalar_value: {
+ int32_t: 2
+ }
+ enumerator: "NOT_AVAILABLE"
+ scalar_value: {
+ int32_t: 3
+ }
+ enumerator: "ACCESS_DENIED"
+ scalar_value: {
+ int32_t: 4
+ }
+ enumerator: "INTERNAL_ERROR"
+ scalar_value: {
+ int32_t: 5
+ }
+ }
+}
+
diff --git a/vibrator/1.0/default/Vibrator.h b/vibrator/1.0/default/Vibrator.h
index 36c4cc1..061b364 100644
--- a/vibrator/1.0/default/Vibrator.h
+++ b/vibrator/1.0/default/Vibrator.h
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_vibrator_V1_0_Vibrator_H_
-#define HIDL_GENERATED_android_hardware_vibrator_V1_0_Vibrator_H_
+#ifndef ANDROID_HARDWARE_VIBRATOR_V1_0_VIBRATOR_H
+#define ANDROID_HARDWARE_VIBRATOR_V1_0_VIBRATOR_H
#include <android/hardware/vibrator/1.0/IVibrator.h>
#include <hidl/Status.h>
@@ -53,4 +53,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_vibrator_V1_0_Vibrator_H_
+#endif // ANDROID_HARDWARE_VIBRATOR_V1_0_VIBRATOR_H
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/AndroidTest.xml b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/AndroidTest.xml
index 713e9d0..54830f0 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/AndroidTest.xml
+++ b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/AndroidTest.xml
@@ -24,6 +24,6 @@
<test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
<option name="test-module-name" value="VibratorHidlProfilingTest" />
<option name="test-case-path" value="vts/testcases/hal/vibrator/hidl/host/VibratorHidlTest" />
- <option name="test-config-path" value="vts/testcases/hal/vibrator/hidl/host_profiling/VibratorHidlProfilingTest.config" />
+ <option name="enable-profiling" value="true" />
</test>
</configuration>
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/VibratorHidlProfilingTest.config b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/VibratorHidlProfilingTest.config
deleted file mode 100644
index 912d8d5..0000000
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/host_profiling/VibratorHidlProfilingTest.config
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "enable_profiling": true
-}
\ No newline at end of file
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/AndroidTest.xml b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/AndroidTest.xml
index addd67e..4643e23 100644
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/AndroidTest.xml
+++ b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/AndroidTest.xml
@@ -24,9 +24,9 @@
_32bit::DATA/nativetest/vibrator_hidl_hal_test/vibrator_hidl_hal_test,
_64bit::DATA/nativetest64/vibrator_hidl_hal_test/vibrator_hidl_hal_test,
"/>
- <option name="test-config-path" value="vts/testcases/hal/vibrator/hidl/target_profiling/VibratorHidlTargetProfilingTest.config" />
<option name="binary-test-type" value="gtest" />
<option name="test-timeout" value="1m" />
+ <option name="enable-profiling" value="true" />
</test>
</configuration>
diff --git a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/VibratorHidlTargetProfilingTest.config b/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/VibratorHidlTargetProfilingTest.config
deleted file mode 100644
index 912d8d5..0000000
--- a/vibrator/1.0/vts/functional/vts/testcases/hal/vibrator/hidl/target_profiling/VibratorHidlTargetProfilingTest.config
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "enable_profiling": true
-}
\ No newline at end of file
diff --git a/vr/1.0/default/Vr.h b/vr/1.0/default/Vr.h
index 90694d9..dd5e764 100644
--- a/vr/1.0/default/Vr.h
+++ b/vr/1.0/default/Vr.h
@@ -13,8 +13,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef HIDL_GENERATED_android_hardware_vr_V1_0_Vr_H_
-#define HIDL_GENERATED_android_hardware_vr_V1_0_Vr_H_
+#ifndef ANDROID_HARDWARE_VR_V1_0_VR_H
+#define ANDROID_HARDWARE_VR_V1_0_VR_H
#include <android/hardware/vr/1.0/IVr.h>
#include <hardware/vr.h>
@@ -48,4 +48,4 @@
} // namespace hardware
} // namespace android
-#endif // HIDL_GENERATED_android_hardware_vr_V1_0_Vr_H_
+#endif // ANDROID_HARDWARE_VR_V1_0_VR_H
diff --git a/wifi/1.0/default/Android.mk b/wifi/1.0/default/Android.mk
index 646613b..62d2e0b 100644
--- a/wifi/1.0/default/Android.mk
+++ b/wifi/1.0/default/Android.mk
@@ -16,7 +16,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.wifi@1.0-service
LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_CPPFLAGS := -std=c++11 -Wall -Wno-unused-parameter -Werror -Wextra
+LOCAL_CPPFLAGS := -Wall -Wno-unused-parameter -Werror -Wextra
LOCAL_SRC_FILES := \
service.cpp \
wifi.cpp \
diff --git a/wifi/1.0/types.hal b/wifi/1.0/types.hal
index 066662c..9e53377 100644
--- a/wifi/1.0/types.hal
+++ b/wifi/1.0/types.hal
@@ -486,7 +486,7 @@
/**
* Mask of flags set in the |ScanData| instance.
*/
-enum StaScanDataFlagMask {
+enum StaScanDataFlagMask : int32_t {
/**
* Indicates that a scan was interrupted/did not occur so results may be
* incomplete.