summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2012-11-27 17:34:23 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-11-27 17:34:23 -0800
commit6e406b10353af2c8ae9f7cd38f9053d4e017b4b1 (patch)
tree924c52ec646264915c5944c4b07675cc5c5c1de1 /services
parentd3d2eefa88f353438bef47ddb6ee1110edfa886b (diff)
parentb8fa1240eedeb487a7ee0cf7d60e17bed9b25cf4 (diff)
downloadframeworks_av-6e406b10353af2c8ae9f7cd38f9053d4e017b4b1.zip
frameworks_av-6e406b10353af2c8ae9f7cd38f9053d4e017b4b1.tar.gz
frameworks_av-6e406b10353af2c8ae9f7cd38f9053d4e017b4b1.tar.bz2
am b8fa1240: am aa9e3e01: Camera: Play shutter sound iff enableShutterSound(true) && ShutterCallback !null
* commit 'b8fa1240eedeb487a7ee0cf7d60e17bed9b25cf4': Camera: Play shutter sound iff enableShutterSound(true) && ShutterCallback !null
Diffstat (limited to 'services')
-rw-r--r--services/camera/libcameraservice/Camera2Client.cpp2
-rw-r--r--services/camera/libcameraservice/camera2/CaptureSequencer.cpp16
-rw-r--r--services/camera/libcameraservice/camera2/CaptureSequencer.h5
3 files changed, 14 insertions, 9 deletions
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp
index 9627416..d468aa6 100644
--- a/services/camera/libcameraservice/Camera2Client.cpp
+++ b/services/camera/libcameraservice/Camera2Client.cpp
@@ -1106,7 +1106,7 @@ status_t Camera2Client::takePicture(int /*msgType*/) {
// Need HAL to have correct settings before (possibly) triggering precapture
syncWithDevice();
- res = mCaptureSequencer->startCapture();
+ res = mCaptureSequencer->startCapture(msgType);
if (res != OK) {
ALOGE("%s: Camera %d: Unable to start capture: %s (%d)",
__FUNCTION__, mCameraId, strerror(-res), res);
diff --git a/services/camera/libcameraservice/camera2/CaptureSequencer.cpp b/services/camera/libcameraservice/camera2/CaptureSequencer.cpp
index b228faf..513a47e 100644
--- a/services/camera/libcameraservice/camera2/CaptureSequencer.cpp
+++ b/services/camera/libcameraservice/camera2/CaptureSequencer.cpp
@@ -45,7 +45,8 @@ CaptureSequencer::CaptureSequencer(wp<Camera2Client> client):
mCaptureState(IDLE),
mTriggerId(0),
mTimeoutCount(0),
- mCaptureId(Camera2Client::kCaptureRequestIdStart) {
+ mCaptureId(Camera2Client::kCaptureRequestIdStart),
+ mMsgType(0) {
ALOGV("%s", __FUNCTION__);
}
@@ -58,7 +59,7 @@ void CaptureSequencer::setZslProcessor(wp<ZslProcessor> processor) {
mZslProcessor = processor;
}
-status_t CaptureSequencer::startCapture() {
+status_t CaptureSequencer::startCapture(int msgType) {
ALOGV("%s", __FUNCTION__);
ATRACE_CALL();
Mutex::Autolock l(mInputMutex);
@@ -67,6 +68,7 @@ status_t CaptureSequencer::startCapture() {
return INVALID_OPERATION;
}
if (!mStartCapture) {
+ mMsgType = msgType;
mStartCapture = true;
mStartCaptureSignal.signal();
}
@@ -343,7 +345,7 @@ CaptureSequencer::CaptureState CaptureSequencer::manageZslStart(
SharedParameters::Lock l(client->getParameters());
/* warning: this also locks a SharedCameraClient */
- shutterNotifyLocked(l.mParameters, client);
+ shutterNotifyLocked(l.mParameters, client, mMsgType);
mShutterNotified = true;
mTimeoutCount = kMaxTimeoutsForCaptureEnd;
return STANDARD_CAPTURE_WAIT;
@@ -495,7 +497,7 @@ CaptureSequencer::CaptureState CaptureSequencer::manageStandardCaptureWait(
if (mNewFrameReceived && !mShutterNotified) {
SharedParameters::Lock l(client->getParameters());
/* warning: this also locks a SharedCameraClient */
- shutterNotifyLocked(l.mParameters, client);
+ shutterNotifyLocked(l.mParameters, client, mMsgType);
mShutterNotified = true;
}
while (mNewFrameReceived && !mNewCaptureReceived) {
@@ -639,10 +641,12 @@ status_t CaptureSequencer::updateCaptureRequest(const Parameters &params,
}
/*static*/ void CaptureSequencer::shutterNotifyLocked(const Parameters &params,
- sp<Camera2Client> client) {
+ sp<Camera2Client> client, int msgType) {
ATRACE_CALL();
- if (params.state == Parameters::STILL_CAPTURE && params.playShutterSound) {
+ if (params.state == Parameters::STILL_CAPTURE
+ && params.playShutterSound
+ && (msgType & CAMERA_MSG_SHUTTER)) {
client->getCameraService()->playSound(CameraService::SOUND_SHUTTER);
}
diff --git a/services/camera/libcameraservice/camera2/CaptureSequencer.h b/services/camera/libcameraservice/camera2/CaptureSequencer.h
index 4cde9c8..c42df05 100644
--- a/services/camera/libcameraservice/camera2/CaptureSequencer.h
+++ b/services/camera/libcameraservice/camera2/CaptureSequencer.h
@@ -51,7 +51,7 @@ class CaptureSequencer:
void setZslProcessor(wp<ZslProcessor> processor);
// Begin still image capture
- status_t startCapture();
+ status_t startCapture(int msgType);
// Wait until current image capture completes; returns immediately if no
// capture is active. Returns TIMED_OUT if capture does not complete during
@@ -138,6 +138,7 @@ class CaptureSequencer:
bool mAeInPrecapture;
int32_t mCaptureId;
+ int mMsgType;
// Main internal methods
@@ -167,7 +168,7 @@ class CaptureSequencer:
// Emit Shutter/Raw callback to java, and maybe play a shutter sound
static void shutterNotifyLocked(const Parameters &params,
- sp<Camera2Client> client);
+ sp<Camera2Client> client, int msgType);
};
}; // namespace camera2