From 7554ff0e8413c83e43f6092bb359678508564fc7 Mon Sep 17 00:00:00 2001 From: Chris Thornton Date: Sun, 30 Apr 2017 19:46:39 -0700 Subject: Add getData() member to SoundTriggerDetector.EventPayload. If the HAL populates the recognition event with data that isn't trigger audio, it's currently impossible for clients to actually read that opaque data. By adding this getter, clients who understand how the detection engine works can react to whatever is in the data blob. Test: Modify SoundTriggerTestApp to verify that the data is accessible. Change-Id: I8a9feccab98e2d15653dd55f28a43095f8ee1e44 --- .../test/soundtrigger/SoundTriggerTestService.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'tests/SoundTriggerTestApp') diff --git a/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java b/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java index b550cfad74cf..00bf33ad691e 100644 --- a/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java +++ b/tests/SoundTriggerTestApp/src/com/android/test/soundtrigger/SoundTriggerTestService.java @@ -689,8 +689,20 @@ public class SoundTriggerTestService extends Service { AudioFormat format = event.getCaptureAudioFormat(); result = result + "AudioFormat: " + ((format == null) ? "null" : format.toString()); byte[] triggerAudio = event.getTriggerAudio(); - result = result + "TriggerAudio: " + (triggerAudio == null ? "null" : triggerAudio.length); - result = result + "CaptureSession: " + event.getCaptureSession(); + result = result + ", TriggerAudio: " + (triggerAudio == null ? "null" : triggerAudio.length); + byte[] data = event.getData(); + result = result + ", Data: " + (data == null ? "null" : data.length); + if (data != null) { + try { + String decodedData = new String(data, "UTF-8"); + if (decodedData.chars().allMatch(c -> (c >= 32 && c < 128) || c == 0)) { + result = result + ", Decoded Data: '" + decodedData + "'"; + } + } catch (Exception e) { + Log.e(TAG, "Failed to decode data"); + } + } + result = result + ", CaptureSession: " + event.getCaptureSession(); result += " )"; return result; } -- cgit v1.2.3-59-g8ed1b