diff options
Diffstat (limited to 'services/camera')
-rw-r--r-- | services/camera/libcameraservice/Android.bp | 1 | ||||
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/Android.bp b/services/camera/libcameraservice/Android.bp index 4427cb8cf6..c4bc0f1a9f 100644 --- a/services/camera/libcameraservice/Android.bp +++ b/services/camera/libcameraservice/Android.bp @@ -107,6 +107,7 @@ cc_library_shared { "android.hardware.camera.device@3.3", "android.hardware.camera.device@3.4", "android.hardware.camera.device@3.5", + "vendor.lineage.camera.motor@1.0", ], export_shared_lib_headers: [ diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index cca11784db..6d264c1d12 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -76,6 +76,8 @@ #include "utils/TagMonitor.h" #include "utils/CameraThreadState.h" +#include <vendor/lineage/camera/motor/1.0/ICameraMotor.h> + namespace { const char* kPermissionServiceName = "permission"; }; // namespace anonymous @@ -91,6 +93,7 @@ using hardware::ICameraServiceProxy; using hardware::ICameraServiceListener; using hardware::camera::common::V1_0::CameraDeviceStatus; using hardware::camera::common::V1_0::TorchModeStatus; +using vendor::lineage::camera::motor::V1_0::ICameraMotor; // ---------------------------------------------------------------------------- // Logging support -- this is for debugging only @@ -1539,6 +1542,11 @@ Status CameraService::connectHelper(const sp<CALLBACK>& cameraCb, const String8& } else { // Otherwise, add client to active clients list finishConnectLocked(client, partial); + + sp<ICameraMotor> cameraMotor = ICameraMotor::getService(); + if (cameraMotor != nullptr) { + cameraMotor->onConnect(cameraId.string()); + } } } // lock is destroyed, allow further connect calls @@ -2402,6 +2410,11 @@ binder::Status CameraService::BasicClient::disconnect() { } mDisconnected = true; + sp<ICameraMotor> cameraMotor = ICameraMotor::getService(); + if (cameraMotor != nullptr) { + cameraMotor->onDisconnect(mCameraIdStr.string()); + } + sCameraService->removeByClient(this); sCameraService->logDisconnected(mCameraIdStr, mClientPid, String8(mClientPackageName)); sCameraService->mCameraProviderManager->removeRef(CameraProviderManager::DeviceMode::CAMERA, |