OSDN Git Service

VolumeShaper: API change for duration
authorJean-Michel Trivi <jmtrivi@google.com>
Fri, 21 Apr 2017 01:13:34 +0000 (18:13 -0700)
committerJean-Michel Trivi <jmtrivi@google.com>
Mon, 24 Apr 2017 22:58:22 +0000 (22:58 +0000)
Time in milliseconds is a long.
Update API to not specify the unit in the setter/getter for
  the VolumeShaper duration.

Test: cts-tradefed run cts CtsMediaTestCases -t android.media.cts.VolumeShaperTest

Change-Id: If5f95cc43418d831105cbef2c43b6e9cfcf9082b

api/current.txt
api/system-current.txt
api/test-current.txt
media/java/android/media/VolumeShaper.java
services/core/java/com/android/server/audio/PlaybackActivityMonitor.java

index 30db015..a3006b8 100644 (file)
@@ -23642,7 +23642,7 @@ package android.media {
 
   public static final class VolumeShaper.Configuration implements android.os.Parcelable {
     method public int describeContents();
-    method public double getDurationMillis();
+    method public long getDuration();
     method public int getInterpolatorType();
     method public static int getMaximumCurvePoints();
     method public float[] getTimes();
@@ -23668,7 +23668,7 @@ package android.media {
     method public android.media.VolumeShaper.Configuration.Builder scaleToEndVolume(float);
     method public android.media.VolumeShaper.Configuration.Builder scaleToStartVolume(float);
     method public android.media.VolumeShaper.Configuration.Builder setCurve(float[], float[]);
-    method public android.media.VolumeShaper.Configuration.Builder setDurationMillis(double);
+    method public android.media.VolumeShaper.Configuration.Builder setDuration(long);
     method public android.media.VolumeShaper.Configuration.Builder setInterpolatorType(int);
   }
 
index 9103e0b..8d8c227 100644 (file)
@@ -25489,7 +25489,7 @@ package android.media {
 
   public static final class VolumeShaper.Configuration implements android.os.Parcelable {
     method public int describeContents();
-    method public double getDurationMillis();
+    method public long getDuration();
     method public int getInterpolatorType();
     method public static int getMaximumCurvePoints();
     method public float[] getTimes();
@@ -25515,7 +25515,7 @@ package android.media {
     method public android.media.VolumeShaper.Configuration.Builder scaleToEndVolume(float);
     method public android.media.VolumeShaper.Configuration.Builder scaleToStartVolume(float);
     method public android.media.VolumeShaper.Configuration.Builder setCurve(float[], float[]);
-    method public android.media.VolumeShaper.Configuration.Builder setDurationMillis(double);
+    method public android.media.VolumeShaper.Configuration.Builder setDuration(long);
     method public android.media.VolumeShaper.Configuration.Builder setInterpolatorType(int);
   }
 
index 3957532..bc43cd6 100644 (file)
@@ -23749,7 +23749,7 @@ package android.media {
 
   public static final class VolumeShaper.Configuration implements android.os.Parcelable {
     method public int describeContents();
-    method public double getDurationMillis();
+    method public long getDuration();
     method public int getInterpolatorType();
     method public static int getMaximumCurvePoints();
     method public float[] getTimes();
@@ -23775,7 +23775,7 @@ package android.media {
     method public android.media.VolumeShaper.Configuration.Builder scaleToEndVolume(float);
     method public android.media.VolumeShaper.Configuration.Builder scaleToStartVolume(float);
     method public android.media.VolumeShaper.Configuration.Builder setCurve(float[], float[]);
-    method public android.media.VolumeShaper.Configuration.Builder setDurationMillis(double);
+    method public android.media.VolumeShaper.Configuration.Builder setDuration(long);
     method public android.media.VolumeShaper.Configuration.Builder setInterpolatorType(int);
   }
 
index 1dda6a4..8f4721f 100644 (file)
@@ -301,7 +301,7 @@ public final class VolumeShaper implements AutoCloseable {
                 .setInterpolatorType(INTERPOLATOR_TYPE_LINEAR)
                 .setCurve(new float[] {0.f, 1.f} /* times */,
                         new float[] {0.f, 1.f} /* volumes */)
-                .setDurationMillis(1000.)
+                .setDuration(1000)
                 .build();
 
         /**
@@ -314,7 +314,7 @@ public final class VolumeShaper implements AutoCloseable {
                 .setInterpolatorType(INTERPOLATOR_TYPE_CUBIC)
                 .setCurve(new float[] {0.f, 1.f} /* times */,
                         new float[] {0.f, 1.f}  /* volumes */)
-                .setDurationMillis(1000.)
+                .setDuration(1000)
                 .build();
 
         /**
@@ -348,12 +348,12 @@ public final class VolumeShaper implements AutoCloseable {
             SINE_RAMP = new VolumeShaper.Configuration.Builder()
                 .setInterpolatorType(INTERPOLATOR_TYPE_CUBIC)
                 .setCurve(times, sines)
-                .setDurationMillis(1000.)
+                .setDuration(1000)
                 .build();
             SCURVE_RAMP = new VolumeShaper.Configuration.Builder()
                 .setInterpolatorType(INTERPOLATOR_TYPE_CUBIC)
                 .setCurve(times, scurve)
-                .setDurationMillis(1000.)
+                .setDuration(1000)
                 .build();
         }
 
@@ -569,8 +569,9 @@ public final class VolumeShaper implements AutoCloseable {
         /**
          * Returns the duration of the volume shape in milliseconds.
          */
-        public double getDurationMillis() {
-            return mDurationMs;
+        public long getDuration() {
+            // casting is safe here as the duration was set as a long in the Builder
+            return (long) mDurationMs;
         }
 
         /**
@@ -700,7 +701,7 @@ public final class VolumeShaper implements AutoCloseable {
          *             .setInterpolatorType(VolumeShaper.Configuration.INTERPOLATOR_TYPE_LINEAR)
          *             .setCurve(new float[] { 0.f, 1.f }, // times
          *                       new float[] { 0.f, 1.f }) // volumes
-         *             .setDurationMillis(1000.)
+         *             .setDuration(1000)
          *             .build();
          * </pre>
          * <p>
@@ -731,7 +732,7 @@ public final class VolumeShaper implements AutoCloseable {
                 mId = configuration.getId();
                 mOptionFlags = configuration.getAllOptionFlags();
                 mInterpolatorType = configuration.getInterpolatorType();
-                mDurationMs = configuration.getDurationMillis();
+                mDurationMs = configuration.getDuration();
                 mTimes = configuration.getTimes().clone();
                 mVolumes = configuration.getVolumes().clone();
             }
@@ -810,12 +811,12 @@ public final class VolumeShaper implements AutoCloseable {
              * @throws IllegalArgumentException if {@code durationMillis}
              *         is not strictly positive.
              */
-            public @NonNull Builder setDurationMillis(double durationMillis) {
-                if (durationMillis <= 0.) {
+            public @NonNull Builder setDuration(long durationMillis) {
+                if (durationMillis <= 0) {
                     throw new IllegalArgumentException(
                             "duration: " + durationMillis + " not positive");
                 }
-                mDurationMs = durationMillis;
+                mDurationMs = (double) durationMillis;
                 return this;
             }
 
@@ -833,7 +834,7 @@ public final class VolumeShaper implements AutoCloseable {
              * time (x) coordinates should be monotonically increasing, from 0.f to 1.f;
              * volume (y) coordinates must be within 0.f to 1.f.
              * <p>
-             * The time scale is set by {@link #setDurationMillis}.
+             * The time scale is set by {@link #setDuration}.
              * <p>
              * @param times an array of float values representing
              *        the time line of the volume curve.
index 9eda929..66a6edd 100644 (file)
@@ -57,7 +57,7 @@ public final class PlaybackActivityMonitor
                 .setCurve(new float[] { 0.f, 1.f } /* times */,
                     new float[] { 1.f, 0.2f } /* volumes */)
                 .setOptionFlags(VolumeShaper.Configuration.OPTION_FLAG_CLOCK_TIME)
-                .setDurationMillis(MediaFocusControl.getFocusRampTimeMs(
+                .setDuration(MediaFocusControl.getFocusRampTimeMs(
                     AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK,
                     new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION)
                             .build()))