summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt5
-rw-r--r--media/java/android/media/audiofx/AudioEffect.java112
2 files changed, 90 insertions, 27 deletions
diff --git a/api/current.txt b/api/current.txt
index ae7ca9824373..aac5cc1fbac1 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -26320,9 +26320,12 @@ package android.media.audiofx {
field public static final int SUCCESS = 0; // 0x0
}
- public static class AudioEffect.Descriptor {
+ public static final class AudioEffect.Descriptor implements android.os.Parcelable {
ctor public AudioEffect.Descriptor();
ctor public AudioEffect.Descriptor(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.media.audiofx.AudioEffect.Descriptor> CREATOR;
field public java.lang.String connectMode;
field public java.lang.String implementor;
field public java.lang.String name;
diff --git a/media/java/android/media/audiofx/AudioEffect.java b/media/java/android/media/audiofx/AudioEffect.java
index 7480fa0f2101..52e9ae191f0c 100644
--- a/media/java/android/media/audiofx/AudioEffect.java
+++ b/media/java/android/media/audiofx/AudioEffect.java
@@ -25,10 +25,14 @@ import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.util.Log;
+
import java.lang.ref.WeakReference;
-import java.nio.ByteOrder;
import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.Objects;
import java.util.UUID;
/**
@@ -225,35 +229,12 @@ public class AudioEffect {
* The method {@link #queryEffects()} returns an array of Descriptors to facilitate effects
* enumeration.
*/
- public static class Descriptor {
+ public static final class Descriptor implements Parcelable {
public Descriptor() {
}
/**
- * @param type UUID identifying the effect type. May be one of:
- * {@link AudioEffect#EFFECT_TYPE_AEC}, {@link AudioEffect#EFFECT_TYPE_AGC},
- * {@link AudioEffect#EFFECT_TYPE_BASS_BOOST}, {@link AudioEffect#EFFECT_TYPE_ENV_REVERB},
- * {@link AudioEffect#EFFECT_TYPE_EQUALIZER}, {@link AudioEffect#EFFECT_TYPE_NS},
- * {@link AudioEffect#EFFECT_TYPE_PRESET_REVERB},
- * {@link AudioEffect#EFFECT_TYPE_VIRTUALIZER},
- * {@link AudioEffect#EFFECT_TYPE_DYNAMICS_PROCESSING}.
- * @param uuid UUID for this particular implementation
- * @param connectMode {@link #EFFECT_INSERT} or {@link #EFFECT_AUXILIARY}
- * @param name human readable effect name
- * @param implementor human readable effect implementor name
- *
- */
- public Descriptor(String type, String uuid, String connectMode,
- String name, String implementor) {
- this.type = UUID.fromString(type);
- this.uuid = UUID.fromString(uuid);
- this.connectMode = connectMode;
- this.name = name;
- this.implementor = implementor;
- }
-
- /**
* Indicates the generic type of the effect (Equalizer, Bass boost ...).
* One of {@link AudioEffect#EFFECT_TYPE_AEC},
* {@link AudioEffect#EFFECT_TYPE_AGC}, {@link AudioEffect#EFFECT_TYPE_BASS_BOOST},
@@ -289,7 +270,86 @@ public class AudioEffect {
* Human readable effect implementor name
*/
public String implementor;
- };
+
+ /**
+ * @param type UUID identifying the effect type. May be one of:
+ * {@link AudioEffect#EFFECT_TYPE_AEC}, {@link AudioEffect#EFFECT_TYPE_AGC},
+ * {@link AudioEffect#EFFECT_TYPE_BASS_BOOST}, {@link AudioEffect#EFFECT_TYPE_ENV_REVERB},
+ * {@link AudioEffect#EFFECT_TYPE_EQUALIZER}, {@link AudioEffect#EFFECT_TYPE_NS},
+ * {@link AudioEffect#EFFECT_TYPE_PRESET_REVERB},
+ * {@link AudioEffect#EFFECT_TYPE_VIRTUALIZER},
+ * {@link AudioEffect#EFFECT_TYPE_DYNAMICS_PROCESSING}.
+ * @param uuid UUID for this particular implementation
+ * @param connectMode {@link #EFFECT_INSERT} or {@link #EFFECT_AUXILIARY}
+ * @param name human readable effect name
+ * @param implementor human readable effect implementor name
+ *
+ */
+ public Descriptor(String type, String uuid, String connectMode,
+ String name, String implementor) {
+ this.type = UUID.fromString(type);
+ this.uuid = UUID.fromString(uuid);
+ this.connectMode = connectMode;
+ this.name = name;
+ this.implementor = implementor;
+ }
+
+ private Descriptor(Parcel in) {
+ type = UUID.fromString(in.readString());
+ uuid = UUID.fromString(in.readString());
+ connectMode = in.readString();
+ name = in.readString();
+ implementor = in.readString();
+ }
+
+ public static final Parcelable.Creator<Descriptor> CREATOR =
+ new Parcelable.Creator<Descriptor>() {
+ /**
+ * Rebuilds a Descriptor previously stored with writeToParcel().
+ * @param p Parcel object to read the Descriptor from
+ * @return a new Descriptor created from the data in the parcel
+ */
+ public Descriptor createFromParcel(Parcel p) {
+ return new Descriptor(p);
+ }
+ public Descriptor[] newArray(int size) {
+ return new Descriptor[size];
+ }
+ };
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, uuid, connectMode, name, implementor);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeString(type.toString());
+ dest.writeString(uuid.toString());
+ dest.writeString(connectMode);
+ dest.writeString(name);
+ dest.writeString(implementor);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || !(o instanceof Descriptor)) return false;
+
+ Descriptor that = (Descriptor) o;
+
+ return (type.equals(that.type)
+ && uuid.equals(that.uuid)
+ && connectMode.equals(that.connectMode)
+ && name.equals(that.name)
+ && implementor.equals(that.implementor));
+ }
+ }
/**
* Effect connection mode is insert. Specifying an audio session ID when creating the effect