diff --git a/multimedia/camera_framework/camera.h b/multimedia/camera_framework/camera.h index 50e6f143ba73242533560af28a7fd91e0aec9975..0b41e9ff95d8634b61477e8de0aa6a7dbf13f4e8 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 e5faf336c140e94faf771e865c161e19bb25efa2..6c5e4e01c995685bbee48c65e3449b4d7b38e9ba 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 42bcc1aaaaec9ea5616078ab178ecdc4e2117cd0..ea5e96ee63f51ed5680c89ab9fe8e9b36af74905 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. *