diff options
author | Igor Murashkin <iam@google.com> | 2014-08-19 14:53:08 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2014-08-19 15:19:58 -0700 |
commit | a858ea0495c887621a2fd9c0afc13780deccb597 (patch) | |
tree | dbe17ab6e77cfe3e40ce6c8114898e3ac5aef5b4 /services/camera/libcameraservice/CameraService.cpp | |
parent | 97c7fa1b1596a062147f034a2b44781193c052cf (diff) | |
download | frameworks_av-a858ea0495c887621a2fd9c0afc13780deccb597.zip frameworks_av-a858ea0495c887621a2fd9c0afc13780deccb597.tar.gz frameworks_av-a858ea0495c887621a2fd9c0afc13780deccb597.tar.bz2 |
camera: Allow shutter sounds to be disabled from camera2 api
When using the connectLegacy binder interface (available only
through an @hide java api), then consider the camera to be in the
camera2 api legacy mode.
In legacy mode, allow disabling the shutter sound unconditionally.
Bug: 17109582
Change-Id: Ieb3fc61ff111d792cc657c018e278349c25472cf
Diffstat (limited to 'services/camera/libcameraservice/CameraService.cpp')
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 7766b90..fd5a426 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -487,12 +487,12 @@ status_t CameraService::initializeShimMetadata(int cameraId) { } if (client == NULL) { needsNewClient = true; - ret = connectHelperLocked(/*cameraClient*/NULL, // Empty binder callbacks + ret = connectHelperLocked(/*out*/client, + /*cameraClient*/NULL, // Empty binder callbacks cameraId, internalPackageName, uid, - pid, - client); + pid); if (ret != OK) { // Error already logged by callee @@ -659,14 +659,17 @@ bool CameraService::canConnectUnsafe(int cameraId, return true; } -status_t CameraService::connectHelperLocked(const sp<ICameraClient>& cameraClient, - int cameraId, - const String16& clientPackageName, - int clientUid, - int callingPid, - /*out*/ - sp<Client>& client, - int halVersion) { +status_t CameraService::connectHelperLocked( + /*out*/ + sp<Client>& client, + /*in*/ + const sp<ICameraClient>& cameraClient, + int cameraId, + const String16& clientPackageName, + int clientUid, + int callingPid, + int halVersion, + bool legacyMode) { int facing = -1; int deviceVersion = getDeviceVersion(cameraId, &facing); @@ -678,7 +681,7 @@ status_t CameraService::connectHelperLocked(const sp<ICameraClient>& cameraClien case CAMERA_DEVICE_API_VERSION_1_0: client = new CameraClient(this, cameraClient, clientPackageName, cameraId, - facing, callingPid, clientUid, getpid()); + facing, callingPid, clientUid, getpid(), legacyMode); break; case CAMERA_DEVICE_API_VERSION_2_0: case CAMERA_DEVICE_API_VERSION_2_1: @@ -687,7 +690,7 @@ status_t CameraService::connectHelperLocked(const sp<ICameraClient>& cameraClien case CAMERA_DEVICE_API_VERSION_3_2: client = new Camera2Client(this, cameraClient, clientPackageName, cameraId, - facing, callingPid, clientUid, getpid()); + facing, callingPid, clientUid, getpid(), legacyMode); break; case -1: ALOGE("Invalid camera id %d", cameraId); @@ -704,7 +707,7 @@ status_t CameraService::connectHelperLocked(const sp<ICameraClient>& cameraClien // Only support higher HAL version device opened as HAL1.0 device. client = new CameraClient(this, cameraClient, clientPackageName, cameraId, - facing, callingPid, clientUid, getpid()); + facing, callingPid, clientUid, getpid(), legacyMode); } else { // Other combinations (e.g. HAL3.x open as HAL2.x) are not supported yet. ALOGE("Invalid camera HAL version %x: HAL %x device can only be" @@ -760,12 +763,12 @@ status_t CameraService::connect( return OK; } - status = connectHelperLocked(cameraClient, + status = connectHelperLocked(/*out*/client, + cameraClient, cameraId, clientPackageName, clientUid, - callingPid, - client); + callingPid); if (status != OK) { return status; } @@ -823,13 +826,14 @@ status_t CameraService::connectLegacy( return OK; } - status = connectHelperLocked(cameraClient, + status = connectHelperLocked(/*out*/client, + cameraClient, cameraId, clientPackageName, clientUid, callingPid, - client, - halVersion); + halVersion, + /*legacyMode*/true); if (status != OK) { return status; } |