Loading services/soundtrigger/SoundTriggerHwService.cpp +27 −26 Original line number Diff line number Diff line Loading @@ -750,11 +750,12 @@ void SoundTriggerHwService::Module::onCallbackEvent(const sp<CallbackEvent>& eve return; } Vector< sp<ModuleClient> > clients; switch (event->mType) { case CallbackEvent::TYPE_RECOGNITION: { struct sound_trigger_recognition_event *recognitionEvent = (struct sound_trigger_recognition_event *)eventMemory->pointer(); sp<ISoundTriggerClient> client; { AutoMutex lock(mLock); sp<Model> model = getModel(recognitionEvent->model); Loading @@ -769,16 +770,12 @@ void SoundTriggerHwService::Module::onCallbackEvent(const sp<CallbackEvent>& eve recognitionEvent->capture_session = model->mCaptureSession; model->mState = Model::STATE_IDLE; client = model->mModuleClient->client(); } if (client != 0) { client->onRecognitionEvent(eventMemory); clients.add(model->mModuleClient); } } break; case CallbackEvent::TYPE_SOUNDMODEL: { struct sound_trigger_model_event *soundmodelEvent = (struct sound_trigger_model_event *)eventMemory->pointer(); sp<ISoundTriggerClient> client; { AutoMutex lock(mLock); sp<Model> model = getModel(soundmodelEvent->model); Loading @@ -786,29 +783,26 @@ void SoundTriggerHwService::Module::onCallbackEvent(const sp<CallbackEvent>& eve ALOGW("%s model == 0", __func__); return; } client = model->mModuleClient->client(); } if (client != 0) { client->onSoundModelEvent(eventMemory); clients.add(model->mModuleClient); } } break; case CallbackEvent::TYPE_SERVICE_STATE: { Vector< sp<ISoundTriggerClient> > clients; { AutoMutex lock(mLock); for (size_t i = 0; i < mModuleClients.size(); i++) { if (mModuleClients[i] != 0) { clients.add(mModuleClients[i]->client()); clients.add(mModuleClients[i]); } } } for (size_t i = 0; i < clients.size(); i++) { clients[i]->onServiceStateChange(eventMemory); } } break; default: LOG_ALWAYS_FATAL("onCallbackEvent unknown event type %d", event->mType); } for (size_t i = 0; i < clients.size(); i++) { clients[i]->onCallbackEvent(event); } } sp<SoundTriggerHwService::Model> SoundTriggerHwService::Module::getModel( Loading Loading @@ -1070,21 +1064,28 @@ void SoundTriggerHwService::ModuleClient::onCallbackEvent(const sp<CallbackEvent return; } switch (event->mType) { case CallbackEvent::TYPE_SERVICE_STATE: { sp<ISoundTriggerClient> client; { AutoMutex lock(mLock); client = mClient; } if (client != 0) { switch (event->mType) { case CallbackEvent::TYPE_RECOGNITION: { client->onRecognitionEvent(eventMemory); } break; case CallbackEvent::TYPE_SOUNDMODEL: { client->onSoundModelEvent(eventMemory); } break; case CallbackEvent::TYPE_SERVICE_STATE: { client->onServiceStateChange(eventMemory); } } break; default: LOG_ALWAYS_FATAL("onCallbackEvent unknown event type %d", event->mType); } } } void SoundTriggerHwService::ModuleClient::binderDied( const wp<IBinder> &who __unused) { Loading Loading
services/soundtrigger/SoundTriggerHwService.cpp +27 −26 Original line number Diff line number Diff line Loading @@ -750,11 +750,12 @@ void SoundTriggerHwService::Module::onCallbackEvent(const sp<CallbackEvent>& eve return; } Vector< sp<ModuleClient> > clients; switch (event->mType) { case CallbackEvent::TYPE_RECOGNITION: { struct sound_trigger_recognition_event *recognitionEvent = (struct sound_trigger_recognition_event *)eventMemory->pointer(); sp<ISoundTriggerClient> client; { AutoMutex lock(mLock); sp<Model> model = getModel(recognitionEvent->model); Loading @@ -769,16 +770,12 @@ void SoundTriggerHwService::Module::onCallbackEvent(const sp<CallbackEvent>& eve recognitionEvent->capture_session = model->mCaptureSession; model->mState = Model::STATE_IDLE; client = model->mModuleClient->client(); } if (client != 0) { client->onRecognitionEvent(eventMemory); clients.add(model->mModuleClient); } } break; case CallbackEvent::TYPE_SOUNDMODEL: { struct sound_trigger_model_event *soundmodelEvent = (struct sound_trigger_model_event *)eventMemory->pointer(); sp<ISoundTriggerClient> client; { AutoMutex lock(mLock); sp<Model> model = getModel(soundmodelEvent->model); Loading @@ -786,29 +783,26 @@ void SoundTriggerHwService::Module::onCallbackEvent(const sp<CallbackEvent>& eve ALOGW("%s model == 0", __func__); return; } client = model->mModuleClient->client(); } if (client != 0) { client->onSoundModelEvent(eventMemory); clients.add(model->mModuleClient); } } break; case CallbackEvent::TYPE_SERVICE_STATE: { Vector< sp<ISoundTriggerClient> > clients; { AutoMutex lock(mLock); for (size_t i = 0; i < mModuleClients.size(); i++) { if (mModuleClients[i] != 0) { clients.add(mModuleClients[i]->client()); clients.add(mModuleClients[i]); } } } for (size_t i = 0; i < clients.size(); i++) { clients[i]->onServiceStateChange(eventMemory); } } break; default: LOG_ALWAYS_FATAL("onCallbackEvent unknown event type %d", event->mType); } for (size_t i = 0; i < clients.size(); i++) { clients[i]->onCallbackEvent(event); } } sp<SoundTriggerHwService::Model> SoundTriggerHwService::Module::getModel( Loading Loading @@ -1070,21 +1064,28 @@ void SoundTriggerHwService::ModuleClient::onCallbackEvent(const sp<CallbackEvent return; } switch (event->mType) { case CallbackEvent::TYPE_SERVICE_STATE: { sp<ISoundTriggerClient> client; { AutoMutex lock(mLock); client = mClient; } if (client != 0) { switch (event->mType) { case CallbackEvent::TYPE_RECOGNITION: { client->onRecognitionEvent(eventMemory); } break; case CallbackEvent::TYPE_SOUNDMODEL: { client->onSoundModelEvent(eventMemory); } break; case CallbackEvent::TYPE_SERVICE_STATE: { client->onServiceStateChange(eventMemory); } } break; default: LOG_ALWAYS_FATAL("onCallbackEvent unknown event type %d", event->mType); } } } void SoundTriggerHwService::ModuleClient::binderDied( const wp<IBinder> &who __unused) { Loading