Merge "Correctly initialize recognition events upon abort" into rvc-dev am: 69f12d249c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11740392 Change-Id: I6083a1aab91e563b21b1bbdc2f3c95834eb62f6b
This commit is contained in:
@@ -20,11 +20,16 @@ import android.annotation.NonNull;
|
|||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback;
|
import android.hardware.soundtrigger.V2_1.ISoundTriggerHwCallback;
|
||||||
import android.hardware.soundtrigger.V2_2.ISoundTriggerHw;
|
import android.hardware.soundtrigger.V2_2.ISoundTriggerHw;
|
||||||
|
import android.media.audio.common.AudioConfig;
|
||||||
|
import android.media.audio.common.AudioOffloadInfo;
|
||||||
import android.media.soundtrigger_middleware.ISoundTriggerCallback;
|
import android.media.soundtrigger_middleware.ISoundTriggerCallback;
|
||||||
import android.media.soundtrigger_middleware.ISoundTriggerModule;
|
import android.media.soundtrigger_middleware.ISoundTriggerModule;
|
||||||
import android.media.soundtrigger_middleware.ModelParameterRange;
|
import android.media.soundtrigger_middleware.ModelParameterRange;
|
||||||
|
import android.media.soundtrigger_middleware.PhraseRecognitionEvent;
|
||||||
|
import android.media.soundtrigger_middleware.PhraseRecognitionExtra;
|
||||||
import android.media.soundtrigger_middleware.PhraseSoundModel;
|
import android.media.soundtrigger_middleware.PhraseSoundModel;
|
||||||
import android.media.soundtrigger_middleware.RecognitionConfig;
|
import android.media.soundtrigger_middleware.RecognitionConfig;
|
||||||
|
import android.media.soundtrigger_middleware.RecognitionEvent;
|
||||||
import android.media.soundtrigger_middleware.SoundModel;
|
import android.media.soundtrigger_middleware.SoundModel;
|
||||||
import android.media.soundtrigger_middleware.SoundModelType;
|
import android.media.soundtrigger_middleware.SoundModelType;
|
||||||
import android.media.soundtrigger_middleware.SoundTriggerModuleProperties;
|
import android.media.soundtrigger_middleware.SoundTriggerModuleProperties;
|
||||||
@@ -540,20 +545,20 @@ class SoundTriggerModule implements IHwBinder.DeathRecipient {
|
|||||||
switch (mModelType) {
|
switch (mModelType) {
|
||||||
case SoundModelType.GENERIC: {
|
case SoundModelType.GENERIC: {
|
||||||
android.media.soundtrigger_middleware.RecognitionEvent event =
|
android.media.soundtrigger_middleware.RecognitionEvent event =
|
||||||
new android.media.soundtrigger_middleware.RecognitionEvent();
|
newEmptyRecognitionEvent();
|
||||||
event.status =
|
event.status =
|
||||||
android.media.soundtrigger_middleware.RecognitionStatus.ABORTED;
|
android.media.soundtrigger_middleware.RecognitionStatus.ABORTED;
|
||||||
|
event.type = SoundModelType.GENERIC;
|
||||||
mCallback.onRecognition(mHandle, event);
|
mCallback.onRecognition(mHandle, event);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SoundModelType.KEYPHRASE: {
|
case SoundModelType.KEYPHRASE: {
|
||||||
android.media.soundtrigger_middleware.PhraseRecognitionEvent event =
|
android.media.soundtrigger_middleware.PhraseRecognitionEvent event =
|
||||||
new android.media.soundtrigger_middleware.PhraseRecognitionEvent();
|
newEmptyPhraseRecognitionEvent();
|
||||||
event.common =
|
|
||||||
new android.media.soundtrigger_middleware.RecognitionEvent();
|
|
||||||
event.common.status =
|
event.common.status =
|
||||||
android.media.soundtrigger_middleware.RecognitionStatus.ABORTED;
|
android.media.soundtrigger_middleware.RecognitionStatus.ABORTED;
|
||||||
|
event.common.type = SoundModelType.KEYPHRASE;
|
||||||
mCallback.onPhraseRecognition(mHandle, event);
|
mCallback.onPhraseRecognition(mHandle, event);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -614,4 +619,35 @@ class SoundTriggerModule implements IHwBinder.DeathRecipient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a default-initialized recognition event.
|
||||||
|
*
|
||||||
|
* Object fields are default constructed.
|
||||||
|
* Array fields are initialized to 0 length.
|
||||||
|
*
|
||||||
|
* @return The event.
|
||||||
|
*/
|
||||||
|
private static RecognitionEvent newEmptyRecognitionEvent() {
|
||||||
|
RecognitionEvent result = new RecognitionEvent();
|
||||||
|
result.audioConfig = new AudioConfig();
|
||||||
|
result.audioConfig.offloadInfo = new AudioOffloadInfo();
|
||||||
|
result.data = new byte[0];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a default-initialized phrase recognition event.
|
||||||
|
*
|
||||||
|
* Object fields are default constructed.
|
||||||
|
* Array fields are initialized to 0 length.
|
||||||
|
*
|
||||||
|
* @return The event.
|
||||||
|
*/
|
||||||
|
private static PhraseRecognitionEvent newEmptyPhraseRecognitionEvent() {
|
||||||
|
PhraseRecognitionEvent result = new PhraseRecognitionEvent();
|
||||||
|
result.common = newEmptyRecognitionEvent();
|
||||||
|
result.phraseExtras = new PhraseRecognitionExtra[0];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user