diff options
Diffstat (limited to 'camera/device/3.2/default/CameraDevice.cpp')
-rw-r--r-- | camera/device/3.2/default/CameraDevice.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/camera/device/3.2/default/CameraDevice.cpp b/camera/device/3.2/default/CameraDevice.cpp index 637a1e6616..295ee32865 100644 --- a/camera/device/3.2/default/CameraDevice.cpp +++ b/camera/device/3.2/default/CameraDevice.cpp @@ -177,7 +177,7 @@ Return<void> CameraDevice::open(const sp<ICameraDeviceCallback>& callback, open_ if (callback == nullptr) { ALOGE("%s: cannot open camera %s. callback is null!", __FUNCTION__, mCameraId.c_str()); - _hidl_cb(Status::ILLEGAL_ARGUMENT, session); + _hidl_cb(Status::ILLEGAL_ARGUMENT, nullptr); return Void(); } @@ -186,7 +186,7 @@ Return<void> CameraDevice::open(const sp<ICameraDeviceCallback>& callback, open_ // this must be a disconnected camera ALOGE("%s: cannot open camera %s. camera is disconnected!", __FUNCTION__, mCameraId.c_str()); - _hidl_cb(Status::CAMERA_DISCONNECTED, session); + _hidl_cb(Status::CAMERA_DISCONNECTED, nullptr); return Void(); } else { mLock.lock(); @@ -239,7 +239,7 @@ Return<void> CameraDevice::open(const sp<ICameraDeviceCallback>& callback, open_ return Void(); } - session = new CameraDeviceSession( + session = createSession( device, info.static_camera_characteristics, callback); if (session == nullptr) { ALOGE("%s: camera device session allocation failed", __FUNCTION__); @@ -255,9 +255,19 @@ Return<void> CameraDevice::open(const sp<ICameraDeviceCallback>& callback, open_ return Void(); } mSession = session; + + IF_ALOGV() { + session->getInterface()->interfaceChain([]( + ::android::hardware::hidl_vec<::android::hardware::hidl_string> interfaceChain) { + ALOGV("Session interface chain:"); + for (auto iface : interfaceChain) { + ALOGV(" %s", iface.c_str()); + } + }); + } mLock.unlock(); } - _hidl_cb(status, session); + _hidl_cb(status, session->getInterface()); return Void(); } @@ -286,6 +296,13 @@ Return<void> CameraDevice::dumpState(const ::android::hardware::hidl_handle& han session->dumpState(handle); return Void(); } + +sp<CameraDeviceSession> CameraDevice::createSession(camera3_device_t* device, + const camera_metadata_t* deviceInfo, + const sp<ICameraDeviceCallback>& callback) { + return new CameraDeviceSession(device, deviceInfo, callback); +} + // End of methods from ::android::hardware::camera::device::V3_2::ICameraDevice. } // namespace implementation |