summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/CameraService.cpp
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2014-08-19 14:53:08 -0700
committerIgor Murashkin <iam@google.com>2014-08-19 15:19:58 -0700
commita858ea0495c887621a2fd9c0afc13780deccb597 (patch)
treedbe17ab6e77cfe3e40ce6c8114898e3ac5aef5b4 /services/camera/libcameraservice/CameraService.cpp
parent97c7fa1b1596a062147f034a2b44781193c052cf (diff)
downloadframeworks_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.cpp44
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;
}