Always specify underlying enum type.

Bug: 33197891
Test: compiles
Change-Id: I3d4822ea9a665708302d3bd1460425fddf1dcda9
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/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/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/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/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/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/media/omx/1.0/types.hal b/media/omx/1.0/types.hal
index c0350de..0b7b66e 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,
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/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/vehicle/2.0/types.hal b/vehicle/2.0/types.hal
index b19621c..aff6edd 100644
--- a/vehicle/2.0/types.hal
+++ b/vehicle/2.0/types.hal
@@ -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/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.