Converting sound trigger v2.2 getModelState to be asynchronous
Test: built android with checkbuild flag
Change-Id: I68bebde980d2c3a76765cee4c70e213f4430dec1
Bug-Id: 70206501
diff --git a/soundtrigger/2.2/default/SoundTriggerHw.cpp b/soundtrigger/2.2/default/SoundTriggerHw.cpp
index ffdf9fb..9d930ac 100644
--- a/soundtrigger/2.2/default/SoundTriggerHw.cpp
+++ b/soundtrigger/2.2/default/SoundTriggerHw.cpp
@@ -690,45 +690,26 @@
// Begin V2_2 implementation
-Return<void> SoundTriggerHw::getModelState(int32_t modelHandle, getModelState_cb hidl_cb) {
- int ret = 0;
- V2_0::ISoundTriggerHwCallback::RecognitionEvent event;
- struct sound_trigger_recognition_event* halEvent = NULL;
+Return<int32_t> SoundTriggerHw::getModelState(int32_t modelHandle) {
sp<SoundModelClient> client;
if (mHwDevice == NULL) {
- ret = -ENODEV;
- goto exit;
+ return -ENODEV;
}
{
AutoMutex lock(mLock);
client = mClients.valueFor(modelHandle);
if (client == 0) {
- ret = -ENOSYS;
- goto exit;
+ return -ENOSYS;
}
}
if (mHwDevice->get_model_state == NULL) {
ALOGE("Failed to get model state from device, no such method");
- ret = -ENODEV;
- goto exit;
+ return -ENODEV;
}
- // Get the state from the device (as a recognition event)
- halEvent = mHwDevice->get_model_state(mHwDevice, client->getHalHandle());
- if (halEvent == NULL) {
- ALOGE("Failed to get model state from device");
- ret = -ENODEV;
- goto exit;
- }
-
- convertRecognitionEventFromHal(&event, halEvent);
-
-exit:
- hidl_cb(ret, event);
- free(halEvent);
- return Void();
+ return mHwDevice->get_model_state(mHwDevice, client->getHalHandle());
}
// Methods from ::android::hidl::base::V1_0::IBase follow.
diff --git a/soundtrigger/2.2/default/SoundTriggerHw.h b/soundtrigger/2.2/default/SoundTriggerHw.h
index 876b990..6676318 100644
--- a/soundtrigger/2.2/default/SoundTriggerHw.h
+++ b/soundtrigger/2.2/default/SoundTriggerHw.h
@@ -82,7 +82,7 @@
int32_t cookie) override;
// Methods from V2_2::ISoundTriggerHw follow.
- Return<void> getModelState(int32_t modelHandle, getModelState_cb _hidl_cb) override;
+ Return<int32_t> getModelState(int32_t modelHandle) override;
SoundTriggerHw();