Loading services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +28 −32 Original line number Original line Diff line number Diff line Loading @@ -171,7 +171,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Fetch a ModelData instance from the hash map. Creates a new one if none // Fetch a ModelData instance from the hash map. Creates a new one if none // exists. // exists. ModelData modelData = getOrCreateGenericModelData(modelId); ModelData modelData = getOrCreateGenericModelDataLocked(modelId); IRecognitionStatusCallback oldCallback = modelData.getCallback(); IRecognitionStatusCallback oldCallback = modelData.getCallback(); if (oldCallback != null) { if (oldCallback != null) { Loading Loading @@ -373,7 +373,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Also clear the internal state once the recognition has been stopped. // Also clear the internal state once the recognition has been stopped. modelData.setLoaded(); modelData.setLoaded(); modelData.clearCallback(); modelData.clearCallback(); if (!computeRecognitionRunning()) { if (!computeRecognitionRunningLocked()) { internalClearGlobalStateLocked(); internalClearGlobalStateLocked(); } } return status; return status; Loading Loading @@ -505,12 +505,12 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { if (modelId == null || mModule == null) { if (modelId == null || mModule == null) { return STATUS_ERROR; return STATUS_ERROR; } } synchronized (mLock) { ModelData modelData = mGenericModelDataMap.get(modelId); ModelData modelData = mGenericModelDataMap.get(modelId); if (modelData == null) { if (modelData == null) { Slog.w(TAG, "Unload error: Attempting unload invalid generic model with id:" + modelId); Slog.w(TAG, "Unload error: Attempting unload invalid generic model with id:" + modelId); return STATUS_ERROR; return STATUS_ERROR; } } synchronized (mLock) { if (!modelData.isModelLoaded()) { if (!modelData.isModelLoaded()) { // Nothing to do here. // Nothing to do here. Slog.i(TAG, "Unload: Given generic model is not loaded:" + modelId); Slog.i(TAG, "Unload: Given generic model is not loaded:" + modelId); Loading @@ -530,7 +530,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { Slog.w(TAG, "unloadGenericSoundModel() force-marking model as unloaded."); Slog.w(TAG, "unloadGenericSoundModel() force-marking model as unloaded."); } } mGenericModelDataMap.remove(modelId); mGenericModelDataMap.remove(modelId); if (DBG) dumpGenericModelState(); if (DBG) dumpGenericModelStateLocked(); return status; return status; } } } } Loading Loading @@ -580,7 +580,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { if (event.status != SoundTrigger.RECOGNITION_STATUS_SUCCESS) { if (event.status != SoundTrigger.RECOGNITION_STATUS_SUCCESS) { return; return; } } ModelData model = getModelDataFor(event.soundModelHandle); ModelData model = getModelDataForLocked(event.soundModelHandle); if (model == null) { if (model == null) { Slog.w(TAG, "Generic recognition event: Model does not exist for handle: " + Slog.w(TAG, "Generic recognition event: Model does not exist for handle: " + event.soundModelHandle); event.soundModelHandle); Loading Loading @@ -919,7 +919,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { mIsPowerSaveMode = mPowerManager.isPowerSaveMode(); mIsPowerSaveMode = mPowerManager.isPowerSaveMode(); } } private ModelData getOrCreateGenericModelData(UUID modelId) { private ModelData getOrCreateGenericModelDataLocked(UUID modelId) { ModelData modelData = mGenericModelDataMap.get(modelId); ModelData modelData = mGenericModelDataMap.get(modelId); if (modelData == null) { if (modelData == null) { modelData = new ModelData(modelId); modelData = new ModelData(modelId); Loading @@ -932,7 +932,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Instead of maintaining a second hashmap of modelHandle -> ModelData, we just // Instead of maintaining a second hashmap of modelHandle -> ModelData, we just // iterate through to find the right object (since we don't expect 100s of models // iterate through to find the right object (since we don't expect 100s of models // to be stored). // to be stored). private ModelData getModelDataFor(int modelHandle) { private ModelData getModelDataForLocked(int modelHandle) { // Fetch ModelData object corresponding to the model handle. // Fetch ModelData object corresponding to the model handle. for (ModelData model : mGenericModelDataMap.values()) { for (ModelData model : mGenericModelDataMap.values()) { if (model.getHandle() == modelHandle) { if (model.getHandle() == modelHandle) { Loading Loading @@ -988,7 +988,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { } } } } } } if (DBG) dumpGenericModelState(); if (DBG) dumpGenericModelStateLocked(); return status; return status; } } Loading Loading @@ -1017,11 +1017,11 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { } } } } } } if (DBG) dumpGenericModelState(); if (DBG) dumpGenericModelStateLocked(); return status; return status; } } private void dumpGenericModelState() { private void dumpGenericModelStateLocked() { for (UUID modelId : mGenericModelDataMap.keySet()) { for (UUID modelId : mGenericModelDataMap.keySet()) { ModelData modelData = mGenericModelDataMap.get(modelId); ModelData modelData = mGenericModelDataMap.get(modelId); Slog.i(TAG, "Model :" + modelData.toString()); Slog.i(TAG, "Model :" + modelData.toString()); Loading @@ -1030,16 +1030,13 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Computes whether we have any recognition running at all (voice or generic). Sets // Computes whether we have any recognition running at all (voice or generic). Sets // the mRecognitionRunning variable with the result. // the mRecognitionRunning variable with the result. private boolean computeRecognitionRunning() { private boolean computeRecognitionRunningLocked() { synchronized (mLock) { if (mModuleProperties == null || mModule == null) { if (mModuleProperties == null || mModule == null) { mRecognitionRunning = false; mRecognitionRunning = false; return mRecognitionRunning; return mRecognitionRunning; } } if (mKeyphraseListener != null && if (mKeyphraseListener != null && mKeyphraseStarted && mKeyphraseStarted && mCurrentKeyphraseModelHandle != INVALID_VALUE && mCurrentSoundModel != null) { mCurrentKeyphraseModelHandle != INVALID_VALUE && mCurrentSoundModel != null) { mRecognitionRunning = true; mRecognitionRunning = true; return mRecognitionRunning; return mRecognitionRunning; } } Loading @@ -1051,7 +1048,6 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { } } } } mRecognitionRunning = false; mRecognitionRunning = false; } return mRecognitionRunning; return mRecognitionRunning; } } Loading Loading
services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +28 −32 Original line number Original line Diff line number Diff line Loading @@ -171,7 +171,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Fetch a ModelData instance from the hash map. Creates a new one if none // Fetch a ModelData instance from the hash map. Creates a new one if none // exists. // exists. ModelData modelData = getOrCreateGenericModelData(modelId); ModelData modelData = getOrCreateGenericModelDataLocked(modelId); IRecognitionStatusCallback oldCallback = modelData.getCallback(); IRecognitionStatusCallback oldCallback = modelData.getCallback(); if (oldCallback != null) { if (oldCallback != null) { Loading Loading @@ -373,7 +373,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Also clear the internal state once the recognition has been stopped. // Also clear the internal state once the recognition has been stopped. modelData.setLoaded(); modelData.setLoaded(); modelData.clearCallback(); modelData.clearCallback(); if (!computeRecognitionRunning()) { if (!computeRecognitionRunningLocked()) { internalClearGlobalStateLocked(); internalClearGlobalStateLocked(); } } return status; return status; Loading Loading @@ -505,12 +505,12 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { if (modelId == null || mModule == null) { if (modelId == null || mModule == null) { return STATUS_ERROR; return STATUS_ERROR; } } synchronized (mLock) { ModelData modelData = mGenericModelDataMap.get(modelId); ModelData modelData = mGenericModelDataMap.get(modelId); if (modelData == null) { if (modelData == null) { Slog.w(TAG, "Unload error: Attempting unload invalid generic model with id:" + modelId); Slog.w(TAG, "Unload error: Attempting unload invalid generic model with id:" + modelId); return STATUS_ERROR; return STATUS_ERROR; } } synchronized (mLock) { if (!modelData.isModelLoaded()) { if (!modelData.isModelLoaded()) { // Nothing to do here. // Nothing to do here. Slog.i(TAG, "Unload: Given generic model is not loaded:" + modelId); Slog.i(TAG, "Unload: Given generic model is not loaded:" + modelId); Loading @@ -530,7 +530,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { Slog.w(TAG, "unloadGenericSoundModel() force-marking model as unloaded."); Slog.w(TAG, "unloadGenericSoundModel() force-marking model as unloaded."); } } mGenericModelDataMap.remove(modelId); mGenericModelDataMap.remove(modelId); if (DBG) dumpGenericModelState(); if (DBG) dumpGenericModelStateLocked(); return status; return status; } } } } Loading Loading @@ -580,7 +580,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { if (event.status != SoundTrigger.RECOGNITION_STATUS_SUCCESS) { if (event.status != SoundTrigger.RECOGNITION_STATUS_SUCCESS) { return; return; } } ModelData model = getModelDataFor(event.soundModelHandle); ModelData model = getModelDataForLocked(event.soundModelHandle); if (model == null) { if (model == null) { Slog.w(TAG, "Generic recognition event: Model does not exist for handle: " + Slog.w(TAG, "Generic recognition event: Model does not exist for handle: " + event.soundModelHandle); event.soundModelHandle); Loading Loading @@ -919,7 +919,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { mIsPowerSaveMode = mPowerManager.isPowerSaveMode(); mIsPowerSaveMode = mPowerManager.isPowerSaveMode(); } } private ModelData getOrCreateGenericModelData(UUID modelId) { private ModelData getOrCreateGenericModelDataLocked(UUID modelId) { ModelData modelData = mGenericModelDataMap.get(modelId); ModelData modelData = mGenericModelDataMap.get(modelId); if (modelData == null) { if (modelData == null) { modelData = new ModelData(modelId); modelData = new ModelData(modelId); Loading @@ -932,7 +932,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Instead of maintaining a second hashmap of modelHandle -> ModelData, we just // Instead of maintaining a second hashmap of modelHandle -> ModelData, we just // iterate through to find the right object (since we don't expect 100s of models // iterate through to find the right object (since we don't expect 100s of models // to be stored). // to be stored). private ModelData getModelDataFor(int modelHandle) { private ModelData getModelDataForLocked(int modelHandle) { // Fetch ModelData object corresponding to the model handle. // Fetch ModelData object corresponding to the model handle. for (ModelData model : mGenericModelDataMap.values()) { for (ModelData model : mGenericModelDataMap.values()) { if (model.getHandle() == modelHandle) { if (model.getHandle() == modelHandle) { Loading Loading @@ -988,7 +988,7 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { } } } } } } if (DBG) dumpGenericModelState(); if (DBG) dumpGenericModelStateLocked(); return status; return status; } } Loading Loading @@ -1017,11 +1017,11 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { } } } } } } if (DBG) dumpGenericModelState(); if (DBG) dumpGenericModelStateLocked(); return status; return status; } } private void dumpGenericModelState() { private void dumpGenericModelStateLocked() { for (UUID modelId : mGenericModelDataMap.keySet()) { for (UUID modelId : mGenericModelDataMap.keySet()) { ModelData modelData = mGenericModelDataMap.get(modelId); ModelData modelData = mGenericModelDataMap.get(modelId); Slog.i(TAG, "Model :" + modelData.toString()); Slog.i(TAG, "Model :" + modelData.toString()); Loading @@ -1030,16 +1030,13 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { // Computes whether we have any recognition running at all (voice or generic). Sets // Computes whether we have any recognition running at all (voice or generic). Sets // the mRecognitionRunning variable with the result. // the mRecognitionRunning variable with the result. private boolean computeRecognitionRunning() { private boolean computeRecognitionRunningLocked() { synchronized (mLock) { if (mModuleProperties == null || mModule == null) { if (mModuleProperties == null || mModule == null) { mRecognitionRunning = false; mRecognitionRunning = false; return mRecognitionRunning; return mRecognitionRunning; } } if (mKeyphraseListener != null && if (mKeyphraseListener != null && mKeyphraseStarted && mKeyphraseStarted && mCurrentKeyphraseModelHandle != INVALID_VALUE && mCurrentSoundModel != null) { mCurrentKeyphraseModelHandle != INVALID_VALUE && mCurrentSoundModel != null) { mRecognitionRunning = true; mRecognitionRunning = true; return mRecognitionRunning; return mRecognitionRunning; } } Loading @@ -1051,7 +1048,6 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { } } } } mRecognitionRunning = false; mRecognitionRunning = false; } return mRecognitionRunning; return mRecognitionRunning; } } Loading