summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/jni/android_hardware_SoundTrigger.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/core/jni/android_hardware_SoundTrigger.cpp b/core/jni/android_hardware_SoundTrigger.cpp
index 8a280343e731..c7805ea12f02 100644
--- a/core/jni/android_hardware_SoundTrigger.cpp
+++ b/core/jni/android_hardware_SoundTrigger.cpp
@@ -221,12 +221,23 @@ void JNISoundTriggerCallback::onRecognitionEvent(struct sound_trigger_recognitio
jobject jAudioFormat = NULL;
if (event->trigger_in_data || event->capture_available) {
+ jint channelMask = (jint)audio_channel_mask_get_bits(event->audio_config.channel_mask);
+ jint channelIndexMask = (jint)AUDIO_CHANNEL_NONE;
+
+ switch (audio_channel_mask_get_representation(event->audio_config.channel_mask)) {
+ case AUDIO_CHANNEL_REPRESENTATION_INDEX:
+ channelIndexMask = channelMask;
+ channelMask = (jint)AUDIO_CHANNEL_NONE;
+ break;
+ default:
+ break;
+ }
jAudioFormat = env->NewObject(gAudioFormatClass,
gAudioFormatCstor,
audioFormatFromNative(event->audio_config.format),
event->audio_config.sample_rate,
- inChannelMaskFromNative(event->audio_config.channel_mask),
- (jint)0 /* channelIndexMask */);
+ channelMask,
+ channelIndexMask);
}
if (event->type == SOUND_MODEL_TYPE_KEYPHRASE) {