diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera.h b/zh-cn/native_sdk/multimedia/camera_framework/camera.h index ec368b999d37249411cd3470f516149f1998ca57..17eb847a1ebd1a9a489783b9a21638384e810c54 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera.h @@ -31,6 +31,7 @@ * @brief 声明相机的基本概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -994,6 +995,70 @@ typedef struct Camera_FrameShutterEndInfo { int32_t captureId; } Camera_FrameShutterEndInfo; +/** + * @brief 折叠状态枚举。 + * + * @since 13 + * @version 1.0 + */ +typedef enum Camera_FoldStatus { + /** + * 不可折叠状态。 + */ + NON_FOLDABLE = 0, + + /** + * 展开状态。 + */ + EXPANDED = 1, + + /** + * 折叠状态。 + */ + FOLDED = 2 +} Camera_FoldStatus; + +/** + * @brief 折叠状态信息。 + * + * @since 13 + * version 1.0 + */ +typedef struct Camera_FoldStatusInfo { + /** + * 相机实例列表。 + */ + Camera_Device** supportedCameras; + + /** + * 相机列表数量。 + */ + uint32_t cameraSize; + + /** + * 当前折叠状态。 + */ + Camera_FoldStatus foldStatus; +} Camera_FoldStatusInfo; + +/** + * @brief 自动设备切换状态信息。 + * + * @since 13 + * @version 1.0 + */ +typedef struct Camera_AutoDeviceSwitchStatusInfo { + /** + * 设备是否已切换。 + */ + bool isDeviceSwitched; + + /** + * 设备功能是否改变。 + */ + bool isDeviceCapabilityChanged; +} Camera_AutoDeviceSwitchStatusInfo; + /** * @brief 创建CameraManager实例。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h b/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h index 483dd347a97e6edb02bba89a16fe8240423302c8..a85999c313a14adadaa544f3a164aee2b3f69dcb 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera_device.h @@ -21,7 +21,7 @@ * * @syscap SystemCapability.Multimedia.Camera.Core * - * @since 11 + * @since 12 * @version 1.0 */ @@ -31,6 +31,7 @@ * @brief 声明相机的基本概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 12 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h b/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h index f1e3847d1ab79c3f157a9d559a7e7213b9fde50c..cb1140b9d6010720da8e932fdbb6bc853831d85b 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera_input.h @@ -31,6 +31,7 @@ * @brief 声明相机输入概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h b/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h index 4d507a30937eef0494038c6c5caa7ab855e7370e..d7b7441b86168113961828dac790e71860b16d7f 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/camera_manager.h @@ -31,6 +31,7 @@ * @brief 声明相机管理器的概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -71,6 +72,16 @@ typedef void (*OH_CameraManager_StatusCallback)(Camera_Manager* cameraManager, C */ typedef void (*OH_CameraManager_TorchStatusCallback)(Camera_Manager* cameraManager, Camera_TorchStatusInfo* status); +/** + * @brief 相机管理器折叠状态信息回调。 + * + * @param cameraManager 传递回调的{@link Camera_Manager}。 + * @param foldStatusInfo 设备的折叠状态信息{@link Camera_FoldStatusInfo}。 + * @since 13 + */ +typedef void (*OH_CameraManager_OnFoldStatusInfoChange)(Camera_Manager* cameraManager, + Camera_FoldStatusInfo* foldStatusInfo); + /** * @brief 相机设备状态的回调。 * @@ -131,6 +142,30 @@ Camera_ErrorCode OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager* ca Camera_ErrorCode OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager* cameraManager, OH_CameraManager_TorchStatusCallback torchStatusCallback); +/** + * @brief 注册折叠状态信息变更事件回调。 + * + * @param cameraManager 相机管理器实例{@link Camera_Manager}。 + * @param foldStatusInfoCallback 要注册的折叠状态信息变更事件回调{@link OH_CameraManager_OnFoldStatusInfoChange}。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback); + +/** + * @brief 注销折叠状态信息变更事件回调。 + * + * @param cameraManager 相机管理器实例{@link Camera_Manager}。 + * @param foldStatusInfoCallback 要注销的折叠状态信息变更事件回调{@link OH_CameraManager_OnFoldStatusInfoChange}。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager, + OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback); + /** * @brief 获取支持相机的描述。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h b/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h index 79f591118bc6df57d744b1fc10a3bfdbaf2c2d07..bf80351d22b1227bfb967e72400b07707efb6dc8 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/capture_session.h @@ -31,6 +31,7 @@ * @brief 声明捕获会话概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -93,6 +94,16 @@ typedef void (*OH_CaptureSession_OnError)(Camera_CaptureSession* session, Camera typedef void (*OH_CaptureSession_OnSmoothZoomInfo)(Camera_CaptureSession* session, Camera_SmoothZoomInfo* smoothZoomInfo); +/** + * @brief 捕获会话设备切换状态回调。 + * + * @param session 传递回调的{@link Camera_CaptureSession}。 + * @param autoDeviceSwitchStatusInfo 回调传递的{@link Camera_AutoDeviceSwitchStatusInfo}。 + * @since 13 + */ +typedef void (*OH_CaptureSession_OnAutoDeviceSwitchStatusChange)(Camera_CaptureSession* session, + Camera_AutoDeviceSwitchStatusInfo* autoDeviceSwitchStatusInfo); + /** * @brief 捕获会话的回调。 * @@ -162,6 +173,9 @@ Camera_ErrorCode OH_CaptureSession_UnregisterSmoothZoomInfoCallback(Camera_Captu /** * @brief 设置会话模式。 + * + * 此接口不能在{@link OH_CaptureSession_BeginConfig}之后使用。 + * 建议在使用{@link OH_CameraManager_CreateCaptureSession}后立即使用此接口。 * * @param session {@link Camera_CaptureSession}实例。 * @param sceneMode {@link Camera_SceneMode}实例。 @@ -853,6 +867,55 @@ Camera_ErrorCode OH_CaptureSession_GetActiveColorSpace(Camera_CaptureSession* se Camera_ErrorCode OH_CaptureSession_SetActiveColorSpace(Camera_CaptureSession* session, OH_NativeBuffer_ColorSpace colorSpace); +/** + * @brief 注册设备切换事件回调。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param autoDeviceSwitchStatusChange 要注册的{@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange}。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_RegisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session, + OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange); + +/** + * @brief 注销设备切换事件回调。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param autoDeviceSwitchStatusChange 要取消注册的{@link OH_CaptureSession_OnAutoDeviceSwitchStatusChange}。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_UnregisterAutoDeviceSwitchStatusCallback(Camera_CaptureSession* session, + OH_CaptureSession_OnAutoDeviceSwitchStatusChange autoDeviceSwitchStatusChange); + +/** + * @brief 检查是否支持自动设备切换。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param isSupported 是否支持自动设备切换的结果。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SESSION_NOT_CONFIG} 如果捕获会话未配置。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_IsAutoDeviceSwitchSupported(Camera_CaptureSession* session, bool* isSupported); + +/** + * @brief 启用或不启用相机设备的自动切换。 + * + * @param session {@link Camera_CaptureSession}实例。 + * @param enabled 是否启用自动切换的标志。 + * @return {@link #CAMERA_OK} 如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT} 如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SESSION_NOT_CONFIG} 如果捕获会话未配置。 + * {@link #CAMERA_SERVICE_FATAL_ERROR} 如果相机服务出现致命错误。 + * @since 13 + */ +Camera_ErrorCode OH_CaptureSession_EnableAutoDeviceSwitch(Camera_CaptureSession* session, bool enabled); + /** * @brief 设置录像质量优先级。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h b/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h index c82e7e1302aa19ef4ae4e833b4aa232d0206e9af..c536fadcfdc0a932d1463592a5bbd5ce20944b08 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/metadata_output.h @@ -31,6 +31,7 @@ * @brief 声明元数据输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h b/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h index 6251756a1dc56e9e33e8dc67c46a664b38ff44c4..29b3ca328fe49a6c74c57a420f975055baeebb15 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/photo_native.h @@ -31,6 +31,7 @@ * @brief 声明相机照片概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 12 * @version 1.0 diff --git a/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h b/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h index ef09ec1edf58a6d1cbde2c2c1e6a49f70c481c5c..e3bbe145777a755ccb4a4cecdd5dda7e03e4b105 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/photo_output.h @@ -31,6 +31,7 @@ * @brief 声明拍照输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -221,6 +222,20 @@ Camera_ErrorCode OH_PhotoOutput_UnregisterCallback(Camera_PhotoOutput* photoOutp Camera_ErrorCode OH_PhotoOutput_RegisterCaptureStartWithInfoCallback(Camera_PhotoOutput* photoOutput, OH_PhotoOutput_CaptureStartWithInfo callback); +/** + * @brief 获取照片旋转角度。 + * + * @param photoOutput 用于获取照片旋转角度的{@link Camera_PhotoOutput}实例。 + * @param deviceDegree 当前设备旋转角度。 + * @param imageRotation 照片旋转角度的{@link Camera_ImageRotation}结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_PhotoOutput_GetPhotoRotation(Camera_PhotoOutput* photoOutput, int deviceDegree, + Camera_ImageRotation* imageRotation); + /** * @brief 注销拍照开始事件回调。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h b/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h index fab8db8661754ed3196f4f7207d4ecbe80097ccb..c61850a9d86188725bafa122e580de949df413b3 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/preview_output.h @@ -31,6 +31,7 @@ * @brief 声明预览输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -189,6 +190,34 @@ Camera_ErrorCode OH_PreviewOutput_GetActiveProfile(Camera_PreviewOutput* preview */ Camera_ErrorCode OH_PreviewOutput_DeleteProfile(Camera_Profile* profile); +/** + * @brief 获取预览旋转角度。 + * + * @param previewOutput 用于获取预览旋转角度的{@link Camera_PreviewOutput}实例。 + * @param displayRotation 当前显示的旋转角度。 + * @param imageRotation 预览旋转角度的{@link Camera_ImageRotation}结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_PreviewOutput_GetPreviewRotation(Camera_PreviewOutput* previewOutput, int displayRotation, + Camera_ImageRotation* imageRotation); + +/** + * @brief 设置预览旋转角度。 + * + * @param previewOutput 用于设置预览旋转角度的{@link Camera_PreviewOutput}实例。 + * @param previewRotation 预览的{@link Camera_ImageRotation}显示旋转角度。 + * @param isDisplayLocked TRUE表示显示器被锁定。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_PreviewOutput_SetPreviewRotation(Camera_PreviewOutput* previewOutput, + Camera_ImageRotation previewRotation, bool isDisplayLocked); + /** * @brief 获取支持的预览输出帧率列表。 * diff --git a/zh-cn/native_sdk/multimedia/camera_framework/video_output.h b/zh-cn/native_sdk/multimedia/camera_framework/video_output.h index e1dcc5d8b9f94013556edfbf55447ad1dff5c081..a7c583e7b7cd000925a8e402c48b05ed0e2463d1 100644 --- a/zh-cn/native_sdk/multimedia/camera_framework/video_output.h +++ b/zh-cn/native_sdk/multimedia/camera_framework/video_output.h @@ -31,6 +31,7 @@ * @brief 声明录像输出概念。 * * @library libohcamera.so + * @kit CameraKit * @syscap SystemCapability.Multimedia.Camera.Core * @since 11 * @version 1.0 @@ -187,6 +188,44 @@ Camera_ErrorCode OH_VideoOutput_GetActiveProfile(Camera_VideoOutput* videoOutput */ Camera_ErrorCode OH_VideoOutput_DeleteProfile(Camera_VideoProfile* profile); +/** + * @brief 检查视频输出是否支持镜像模式 + * + * @param videoOutput {@link Camera_VideoOutput}实例 + * @param isSupported 镜像模式是否支持的结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 15 + */ +Camera_ErrorCode OH_VideoOutput_IsMirrorSupported(Camera_VideoOutput* videoOutput, bool* isSupported); + +/** + * @brief 启用或禁用视频输出的镜像模式 + * + * @param videoOutput {@link Camera_VideoOutput}实例 + * @param mirrorMode 如果mirrorMode为真,则启用镜像模式,否则禁用 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 15 + */ +Camera_ErrorCode OH_VideoOutput_EnableMirror(Camera_VideoOutput* videoOutput, bool mirrorMode); + +/** + * @brief 获取视频旋转角度。 + * + * @param videoOutput 用于获取视频旋转角度的{@link Camera_VideoOutput}实例。 + * @param deviceDegree 当前设备旋转角度。 + * @param imageRotation 视频旋转角度的{@link Camera_ImageRotation}结果。 + * @return {@link #CAMERA_OK}如果方法调用成功。 + * {@link #CAMERA_INVALID_ARGUMENT}如果参数丢失或参数类型不正确。 + * {@link #CAMERA_SERVICE_FATAL_ERROR}如果相机服务出现致命错误。 + * @since 12 + */ +Camera_ErrorCode OH_VideoOutput_GetVideoRotation(Camera_VideoOutput* videoOutput, int deviceDegree, + Camera_ImageRotation* imageRotation); + /** * @brief 获取支持的视频输出帧率列表。 *