summaryrefslogtreecommitdiffstats
path: root/modules/soundtrigger
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-07-06 16:08:45 -0700
committerEric Laurent <elaurent@google.com>2014-07-07 10:15:45 -0700
commit30f3e6d348e5267320b40dbd8a67ffd77d179b4b (patch)
treefa07d0ea30546b5fddf4fd83927351dd6b1ef9df /modules/soundtrigger
parent99e35eba21fe36364cdb6a09b35921027c367895 (diff)
downloadhardware_libhardware-30f3e6d348e5267320b40dbd8a67ffd77d179b4b.zip
hardware_libhardware-30f3e6d348e5267320b40dbd8a67ffd77d179b4b.tar.gz
hardware_libhardware-30f3e6d348e5267320b40dbd8a67ffd77d179b4b.tar.bz2
sound trigger: update HAL
New start_recognition() prototype with recognition configuration structure specifying: - List of keyphrases to listen to. - Recognition mode for each keyphrase - List of users and min confidence levels for each users New recognition event format with confidence level and user ID for each user. Bug: 12378680. Change-Id: I95e998c735321ceb5c27f477d894b574a6eca860
Diffstat (limited to 'modules/soundtrigger')
-rw-r--r--modules/soundtrigger/sound_trigger_hw.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/modules/soundtrigger/sound_trigger_hw.c b/modules/soundtrigger/sound_trigger_hw.c
index 8347d02..b78a0d1 100644
--- a/modules/soundtrigger/sound_trigger_hw.c
+++ b/modules/soundtrigger/sound_trigger_hw.c
@@ -81,8 +81,9 @@ static void *callback_thread_loop(void *context)
event->key_phrase_in_capture = false;
event->num_phrases = 1;
event->phrase_extras[0].recognition_modes = RECOGNITION_MODE_VOICE_TRIGGER;
- event->phrase_extras[0].num_users = 1;
- event->phrase_extras[0].confidence_levels[0] = 100;
+ event->phrase_extras[0].num_levels = 1;
+ event->phrase_extras[0].levels[0].level = 100;
+ event->phrase_extras[0].levels[0].user_id = 0;
event->common.data_offset = sizeof(struct sound_trigger_phrase_recognition_event);
event->common.data_size = 1;
data[event->common.data_offset] = 8;
@@ -183,12 +184,9 @@ exit:
static int stdev_start_recognition(const struct sound_trigger_hw_device *dev,
sound_model_handle_t sound_model_handle,
- audio_io_handle_t capture_handle __unused,
- audio_devices_t capture_device __unused,
+ const struct sound_trigger_recognition_config *config,
recognition_callback_t callback,
- void *cookie,
- unsigned int data_size,
- char *data)
+ void *cookie)
{
struct stub_sound_trigger_device *stdev = (struct stub_sound_trigger_device *)dev;
int status = 0;
@@ -202,13 +200,10 @@ static int stdev_start_recognition(const struct sound_trigger_hw_device *dev,
status = -ENOSYS;
goto exit;
}
- if (data_size != 0 && data == NULL) {
- status = -EINVAL;
- goto exit;
- }
- if (data_size != 0) {
+ if (config->data_size != 0) {
+ char *data = (char *)config + config->data_offset;
ALOGI("%s data size %d data %d - %d", __func__,
- data_size, data[0], data[data_size - 1]);
+ config->data_size, data[0], data[config->data_size - 1]);
}
stdev->recognition_callback = callback;