add version entry to soundtrigger model database
Bug:147159435
Test: manual hotword trigger with upgraded database
&& dumpsys voiceinteraction
Change-Id: I45497c1159fe879e1de119a18aac8f7ecc2b0686
diff --git a/core/java/android/hardware/soundtrigger/SoundTrigger.java b/core/java/android/hardware/soundtrigger/SoundTrigger.java
index d872009..6507ecd 100644
--- a/core/java/android/hardware/soundtrigger/SoundTrigger.java
+++ b/core/java/android/hardware/soundtrigger/SoundTrigger.java
@@ -265,16 +265,20 @@
@NonNull
public final UUID vendorUuid;
+ /** vendor specific version number of the model */
+ public final int version;
+
/** Opaque data. For use by vendor implementation and enrollment application */
@UnsupportedAppUsage
@NonNull
public final byte[] data;
public SoundModel(@NonNull UUID uuid, @Nullable UUID vendorUuid, int type,
- @Nullable byte[] data) {
+ @Nullable byte[] data, int version) {
this.uuid = requireNonNull(uuid);
this.vendorUuid = vendorUuid != null ? vendorUuid : new UUID(0, 0);
this.type = type;
+ this.version = version;
this.data = data != null ? data : new byte[0];
}
@@ -282,6 +286,7 @@
public int hashCode() {
final int prime = 31;
int result = 1;
+ result = prime * result + version;
result = prime * result + Arrays.hashCode(data);
result = prime * result + type;
result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
@@ -312,6 +317,8 @@
return false;
if (!Arrays.equals(data, other.data))
return false;
+ if (version != other.version)
+ return false;
return true;
}
}
@@ -461,14 +468,19 @@
@NonNull
public final Keyphrase[] keyphrases; // keyword phrases in model
- @UnsupportedAppUsage
public KeyphraseSoundModel(
@NonNull UUID uuid, @NonNull UUID vendorUuid, @Nullable byte[] data,
- @Nullable Keyphrase[] keyphrases) {
- super(uuid, vendorUuid, TYPE_KEYPHRASE, data);
+ @Nullable Keyphrase[] keyphrases, int version) {
+ super(uuid, vendorUuid, TYPE_KEYPHRASE, data, version);
this.keyphrases = keyphrases != null ? keyphrases : new Keyphrase[0];
}
+ @UnsupportedAppUsage
+ public KeyphraseSoundModel(@NonNull UUID uuid, @NonNull UUID vendorUuid,
+ @Nullable byte[] data, @Nullable Keyphrase[] keyphrases) {
+ this(uuid, vendorUuid, data, keyphrases, -1);
+ }
+
public static final @android.annotation.NonNull Parcelable.Creator<KeyphraseSoundModel> CREATOR
= new Parcelable.Creator<KeyphraseSoundModel>() {
public KeyphraseSoundModel createFromParcel(Parcel in) {
@@ -487,9 +499,10 @@
if (length >= 0) {
vendorUuid = UUID.fromString(in.readString());
}
+ int version = in.readInt();
byte[] data = in.readBlob();
Keyphrase[] keyphrases = in.createTypedArray(Keyphrase.CREATOR);
- return new KeyphraseSoundModel(uuid, vendorUuid, data, keyphrases);
+ return new KeyphraseSoundModel(uuid, vendorUuid, data, keyphrases, version);
}
@Override
@@ -508,13 +521,16 @@
}
dest.writeBlob(data);
dest.writeTypedArray(keyphrases, flags);
+ dest.writeInt(version);
}
@Override
public String toString() {
return "KeyphraseSoundModel [keyphrases=" + Arrays.toString(keyphrases)
+ ", uuid=" + uuid + ", vendorUuid=" + vendorUuid
- + ", type=" + type + ", data=" + (data == null ? 0 : data.length) + "]";
+ + ", type=" + type
+ + ", data=" + (data == null ? 0 : data.length)
+ + ", version=" + version + "]";
}
@Override
@@ -560,10 +576,15 @@
}
};
+ public GenericSoundModel(@NonNull UUID uuid, @NonNull UUID vendorUuid,
+ @Nullable byte[] data, int version) {
+ super(uuid, vendorUuid, TYPE_GENERIC_SOUND, data, version);
+ }
+
@UnsupportedAppUsage
public GenericSoundModel(@NonNull UUID uuid, @NonNull UUID vendorUuid,
@Nullable byte[] data) {
- super(uuid, vendorUuid, TYPE_GENERIC_SOUND, data);
+ this(uuid, vendorUuid, data, -1);
}
@Override
@@ -579,7 +600,8 @@
vendorUuid = UUID.fromString(in.readString());
}
byte[] data = in.readBlob();
- return new GenericSoundModel(uuid, vendorUuid, data);
+ int version = in.readInt();
+ return new GenericSoundModel(uuid, vendorUuid, data, version);
}
@Override
@@ -592,12 +614,15 @@
dest.writeString(vendorUuid.toString());
}
dest.writeBlob(data);
+ dest.writeInt(version);
}
@Override
public String toString() {
return "GenericSoundModel [uuid=" + uuid + ", vendorUuid=" + vendorUuid
- + ", type=" + type + ", data=" + (data == null ? 0 : data.length) + "]";
+ + ", type=" + type
+ + ", data=" + (data == null ? 0 : data.length)
+ + ", version=" + version + "]";
}
}