diff options
Diffstat (limited to 'camera/device/1.0/default/CameraDevice.cpp')
-rw-r--r-- | camera/device/1.0/default/CameraDevice.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/camera/device/1.0/default/CameraDevice.cpp b/camera/device/1.0/default/CameraDevice.cpp index 6f4e70f834..c53c0d8b56 100644 --- a/camera/device/1.0/default/CameraDevice.cpp +++ b/camera/device/1.0/default/CameraDevice.cpp @@ -116,7 +116,7 @@ CameraDevice::~CameraDevice() { Mutex::Autolock _l(mLock); if (mDevice != nullptr) { ALOGW("%s: camera %s is deleted while open", __FUNCTION__, mCameraId.c_str()); - close(); + closeLocked(); } mHalPreviewWindow.cleanUpCirculatingBuffers(); } @@ -130,7 +130,7 @@ void CameraDevice::setConnectionStatus(bool connected) { } if (!connected) { ALOGW("%s: camera %s is disconneted. Closing", __FUNCTION__, mCameraId.c_str()); - close(); + closeLocked(); } return; } @@ -982,8 +982,13 @@ Return<Status> CameraDevice::sendCommand(CommandType cmd, int32_t arg1, int32_t } Return<void> CameraDevice::close() { - ALOGI("Closing camera %s", mCameraId.c_str()); Mutex::Autolock _l(mLock); + closeLocked(); + return Void(); +} + +void CameraDevice::closeLocked() { + ALOGI("Closing camera %s", mCameraId.c_str()); if(mDevice) { int rc = mDevice->common.close(&mDevice->common); if (rc != OK) { @@ -991,7 +996,6 @@ Return<void> CameraDevice::close() { } mDevice = nullptr; } - return Void(); } } // namespace implementation |