AudioEffect: make Descriptor not final

Make AudioEffect.Descriptor class not final and not implement Parcelable.
Directly implement read/write from parcel.

Bug: 123234025
Bug: 111438757
Test: make
Change-Id: I429341d59b9bad68f3a5b4c6c56603a8f6cb96af
This commit is contained in:
Eric Laurent
2019-01-22 16:38:08 -08:00
parent 6f19cbdd2f
commit aa081fdebc
4 changed files with 20 additions and 36 deletions

View File

@@ -26577,12 +26577,9 @@ package android.media.audiofx {
field public static final int SUCCESS = 0; // 0x0
}
public static final class AudioEffect.Descriptor implements android.os.Parcelable {
public static class AudioEffect.Descriptor {
ctor public AudioEffect.Descriptor();
ctor public AudioEffect.Descriptor(String, String, String, String, 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 String connectMode;
field public String implementor;
field public String name;

View File

@@ -772,6 +772,11 @@ package android.media.audiofx {
field public static final java.util.UUID EFFECT_TYPE_NULL;
}
public static class AudioEffect.Descriptor {
ctor public AudioEffect.Descriptor(android.os.Parcel);
method public void writeToParcel(android.os.Parcel);
}
public static interface AudioEffect.OnParameterChangeListener {
method public void onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]);
}

View File

@@ -356,11 +356,11 @@ public final class AudioRecordingConfiguration implements Parcelable {
dest.writeInt(mDeviceSource);
dest.writeInt(mClientEffects.length);
for (int i = 0; i < mClientEffects.length; i++) {
mClientEffects[i].writeToParcel(dest, 0);
mClientEffects[i].writeToParcel(dest);
}
dest.writeInt(mDeviceEffects.length);
for (int i = 0; i < mDeviceEffects.length; i++) {
mDeviceEffects[i].writeToParcel(dest, 0);
mDeviceEffects[i].writeToParcel(dest);
}
}
@@ -375,13 +375,13 @@ public final class AudioRecordingConfiguration implements Parcelable {
mClientPortId = in.readInt();
mClientSilenced = in.readBoolean();
mDeviceSource = in.readInt();
mClientEffects = AudioEffect.Descriptor.CREATOR.newArray(in.readInt());
mClientEffects = new AudioEffect.Descriptor[in.readInt()];
for (int i = 0; i < mClientEffects.length; i++) {
mClientEffects[i] = AudioEffect.Descriptor.CREATOR.createFromParcel(in);
mClientEffects[i] = new AudioEffect.Descriptor(in);
}
mDeviceEffects = AudioEffect.Descriptor.CREATOR.newArray(in.readInt());
for (int i = 0; i < mClientEffects.length; i++) {
mDeviceEffects[i] = AudioEffect.Descriptor.CREATOR.createFromParcel(in);
mDeviceEffects = new AudioEffect.Descriptor[in.readInt()];
for (int i = 0; i < mDeviceEffects.length; i++) {
mDeviceEffects[i] = new AudioEffect.Descriptor(in);
}
}

View File

@@ -26,7 +26,6 @@ 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;
@@ -229,7 +228,7 @@ public class AudioEffect {
* The method {@link #queryEffects()} returns an array of Descriptors to facilitate effects
* enumeration.
*/
public static final class Descriptor implements Parcelable {
public static class Descriptor {
public Descriptor() {
}
@@ -294,7 +293,9 @@ public class AudioEffect {
this.implementor = implementor;
}
private Descriptor(Parcel in) {
/** @hide */
@TestApi
public Descriptor(Parcel in) {
type = UUID.fromString(in.readString());
uuid = UUID.fromString(in.readString());
connectMode = in.readString();
@@ -302,33 +303,14 @@ public class AudioEffect {
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) {
/** @hide */
@TestApi
public void writeToParcel(Parcel dest) {
dest.writeString(type.toString());
dest.writeString(uuid.toString());
dest.writeString(connectMode);