diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2015-05-12 16:10:52 -0700 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2015-05-12 16:10:52 -0700 |
commit | be0b6b4a3770a9dd2ff357fe3e88a6ba11a976ff (patch) | |
tree | 108a879cb7c9f99d5c00695498863c65a66db14e /services/camera/libcameraservice/CameraService.cpp | |
parent | 804a77d1045c6c4023f73a0975a09025b2e8eef2 (diff) | |
download | frameworks_av-be0b6b4a3770a9dd2ff357fe3e88a6ba11a976ff.zip frameworks_av-be0b6b4a3770a9dd2ff357fe3e88a6ba11a976ff.tar.gz frameworks_av-be0b6b4a3770a9dd2ff357fe3e88a6ba11a976ff.tar.bz2 |
camera2: Fix arbitration priority calculation.
- Simplify priority calculation + handle constants
added for device sleep: FOREGROUND_SERVICE and
TOP_SLEEPING.
Bug: 19186859
Change-Id: Ia2a5517cd3150deaccb58a0aa1eaa583cb769add
Diffstat (limited to 'services/camera/libcameraservice/CameraService.cpp')
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 3f80faf..3209be6 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -519,34 +519,12 @@ String8 CameraService::getFormattedCurrentTime() { int CameraService::getCameraPriorityFromProcState(int procState) { // Find the priority for the camera usage based on the process state. Higher priority clients // win for evictions. - // Note: Unlike the ordering for ActivityManager, persistent system processes will always lose - // the camera to the top/foreground applications. - switch(procState) { - case PROCESS_STATE_TOP: // User visible - return 100; - case PROCESS_STATE_IMPORTANT_FOREGROUND: // Foreground - return 90; - case PROCESS_STATE_PERSISTENT: // Persistent system services - case PROCESS_STATE_PERSISTENT_UI: - return 80; - case PROCESS_STATE_IMPORTANT_BACKGROUND: // "Important" background processes - return 70; - case PROCESS_STATE_BACKUP: // Everything else - case PROCESS_STATE_HEAVY_WEIGHT: - case PROCESS_STATE_SERVICE: - case PROCESS_STATE_RECEIVER: - case PROCESS_STATE_HOME: - case PROCESS_STATE_LAST_ACTIVITY: - case PROCESS_STATE_CACHED_ACTIVITY: - case PROCESS_STATE_CACHED_ACTIVITY_CLIENT: - case PROCESS_STATE_CACHED_EMPTY: - return 1; - case PROCESS_STATE_NONEXISTENT: - return -1; - default: - ALOGE("%s: Received unknown process state from ActivityManagerService!", __FUNCTION__); - return -1; + if (procState < 0) { + ALOGE("%s: Received invalid process state %d from ActivityManagerService!", __FUNCTION__, + procState); + return -1; } + return INT_MAX - procState; } status_t CameraService::getCameraVendorTagDescriptor(/*out*/sp<VendorTagDescriptor>& desc) { |