From 2202ea225f3f4db1be37b8cce3f54a272498cefc Mon Sep 17 00:00:00 2001 From: zhangchao Date: Mon, 23 Sep 2024 10:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=98=E5=8F=A0=E5=B1=8F?= =?UTF-8?q?=E9=95=9C=E5=A4=B4=E7=BB=9F=E4=B8=80=E4=B8=8A=E6=8A=A5=E9=9C=80?= =?UTF-8?q?=E6=B1=82=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangchao --- multimedia/camera_framework/camera.h | 23 +++++++ multimedia/camera_framework/camera.ndk.json | 16 +++++ multimedia/camera_framework/camera_manager.h | 67 ++++++++++++++++++++ 3 files changed, 106 insertions(+) diff --git a/multimedia/camera_framework/camera.h b/multimedia/camera_framework/camera.h index 50e6f143b..0b41e9ff9 100644 --- a/multimedia/camera_framework/camera.h +++ b/multimedia/camera_framework/camera.h @@ -973,6 +973,29 @@ typedef struct Camera_FrameShutterEndInfo { int32_t captureId; } Camera_FrameShutterEndInfo; +/** +* @brief Enum for fold status. +* +* @since 13 +* @version 1.0 +*/ +typedef enum Camera_FoldStatus { + /** + * Non_foldable status. + */ + NON_FOLDABLE = 0, + + /** + * Expanded status. + */ + EXPANDED = 1, + + /** + * Folded status. + */ + FOLDED = 2 +} Camera_FoldStatus; + /** * @brief Creates a CameraManager instance. * diff --git a/multimedia/camera_framework/camera.ndk.json b/multimedia/camera_framework/camera.ndk.json index e5faf336c..6c5e4e01c 100644 --- a/multimedia/camera_framework/camera.ndk.json +++ b/multimedia/camera_framework/camera.ndk.json @@ -602,5 +602,21 @@ { "first_introduced": "12", "name": "OH_PhotoNative_Release" + }, + { + "first_introduced": "13", + "name": "OH_CameraManager_RegisterFoldStatusCallback" + }, + { + "first_introduced": "13", + "name": "OH_CameraManager_UnregisterFoldStatusCallback" + }, + { + "first_introduced": "13", + "name": "OH_CameraManager_RegisterSupportedCamerasCallback" + }, + { + "first_introduced": "13", + "name": "OH_CameraManager_UnregisterSupportedCamerasCallback" } ] diff --git a/multimedia/camera_framework/camera_manager.h b/multimedia/camera_framework/camera_manager.h index 42bcc1aaa..ea5e96ee6 100644 --- a/multimedia/camera_framework/camera_manager.h +++ b/multimedia/camera_framework/camera_manager.h @@ -72,6 +72,26 @@ typedef void (*OH_CameraManager_StatusCallback)(Camera_Manager* cameraManager, C */ typedef void (*OH_CameraManager_TorchStatusCallback)(Camera_Manager* cameraManager, Camera_TorchStatusInfo* status); +/** + * @brief Camera manager fold status callback. + * + * @param cameraManager the {@link Camera_Manager} which deliver the callback. + * @param foldStatus the {@link Camera_FoldStatus} of the device. + * @since 13 + */ +typedef void (*OH_CameraManager_OnFoldStatusChange)(Camera_Manager* cameraManager, Camera_FoldStatus* foldStatus); + +/** + * @brief Camera manager supported cameras callback. + * + * @param cameraManager the {@link Camera_Manager} which deliver the callback. + * @param cameras the supported {@link Camera_Device} list under the fold status. + * @param size the size of supported {@link Camera_Device} list. + * @since 13 + */ +typedef void (*OH_CameraManager_OnSupportedCamerasChange)(Camera_Manager* cameraManager, + Camera_Device** cameras, uint32_t* size); + /** * @brief A listener for camera devices status. * @@ -132,6 +152,53 @@ Camera_ErrorCode OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager* ca Camera_ErrorCode OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager* cameraManager, OH_CameraManager_TorchStatusCallback torchStatusCallback); +/** + * @brief Register fold status change event callback. + * + * @param cameraManager the {@link Camera_Manager} instance. + * @param foldStatusCallback the {@link OH_CameraManager_OnFoldStatusChange} to be registered. + * @return {@link #CAMERA_OK} if the method call succeeds. + * {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect. + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_RegisterFoldStatusCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnFoldStatusChange foldStatusCallback); + +/** + * @brief Unregister fold status change event callback. + * + * @param cameraManager the {@link Camera_Manager} instance. + * @param foldStatusCallback the {@link OH_CameraManager_OnFoldStatusChange} to be unregistered. + * @return {@link #CAMERA_OK} if the method call succeeds. + * {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect. + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnFoldStatusChange foldStatusCallback); +/** + * @brief Register supported cameras change event callback. + * + * @param cameraManager the {@link Camera_Manager} instance. + * @param supportedCamerasCallback the {@link OH_CameraManager_OnSupportedCamerasChange} to be registered. + * @return {@link #CAMERA_OK} if the method call succeeds. + * {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect. + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_RegisterSupportedCamerasCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnSupportedCamerasChange supportedCamerasCallback); + +/** + * @brief Unregister supported cameras change event callback. + * + * @param cameraManager the {@link Camera_Manager} instance. + * @param supportedCamerasCallback the {@link OH_CameraManager_OnSupportedCamerasChange} to be unregistered. + * @return {@link #CAMERA_OK} if the method call succeeds. + * {@link #CAMERA_INVALID_ARGUMENT} if parameter missing or parameter type incorrect. + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_UnregisterSupportedCamerasCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnSupportedCamerasChange supportedCamerasCallback); + /** * @brief Gets supported camera descriptions. * -- Gitee