add native SoundTrigger modes in battery saver

Control over the SoundTrigger service behavior in battery saver mode is
expanded to from a boolean to multiple modes. Modes include enabled,
disabled, and privileged. Adding the privedged mode allows for the
SoundTrigger service to selectively control clients which are deemed
esential to the Android system.

Bug: 172294448
Test: atest libpowermanager_test
Test: build and verify backward compatibility with SoundTrigger system
service behavior

Change-Id: I087a5817c832e194fc8ba670d5c90506d548544e
diff --git a/services/powermanager/include/android/PowerSaveState.h b/services/powermanager/include/android/PowerSaveState.h
index b421f6a..1818db2 100644
--- a/services/powermanager/include/android/PowerSaveState.h
+++ b/services/powermanager/include/android/PowerSaveState.h
@@ -24,6 +24,7 @@
 namespace android::os {
 
 enum class LocationMode : int32_t;
+enum class SoundTriggerMode : int32_t;
 /**
  * PowerSaveState is a structure to encapsulate PowerSaveState status.
  * This file needs to be kept in sync with frameworks/base/core/java/android/os/PowerSaveState.java
@@ -33,16 +34,19 @@
     PowerSaveState(bool batterySaverEnabled = false,
                    bool globalBatterySaverEnabled = false,
                    LocationMode locationMode = static_cast<LocationMode>(0),
+                   SoundTriggerMode soundTriggerMode = static_cast<SoundTriggerMode>(0),
                    float brightnessFactor = 0.5f)
             : mBatterySaverEnabled(batterySaverEnabled),
               mGlobalBatterySaverEnabled(globalBatterySaverEnabled),
               mLocationMode(locationMode),
+              mSoundTriggerMode(soundTriggerMode),
               mBrightnessFactor(brightnessFactor) {
     }
 
     bool getBatterySaverEnabled() const { return mBatterySaverEnabled; }
     bool getGlobalBatterySaverEnabled() const { return mGlobalBatterySaverEnabled; }
     LocationMode getLocationMode() const { return mLocationMode; }
+    SoundTriggerMode getSoundTriggerMode() const { return mSoundTriggerMode; }
     float getBrightnessFactor() const { return mBrightnessFactor; }
     bool operator == (const PowerSaveState &ps) const {
         return mBatterySaverEnabled == ps.mBatterySaverEnabled &&
@@ -61,6 +65,8 @@
     bool mGlobalBatterySaverEnabled;
     /** Location mode */
     LocationMode mLocationMode;
+    /** SoundTrigger mode */
+    SoundTriggerMode mSoundTriggerMode;
     /** Screen brightness factor. */
     float mBrightnessFactor;
 };