1# camera_manager.h
2
3
4## Overview
5
6The **camera_manager.h** file declares the camera manager concepts.
7
8**Library**: libohcamera.so
9
10**File to include**: <ohcamera/camera_manager.h>
11
12**System capability**: SystemCapability.Multimedia.Camera.Core
13
14**Since**: 11
15
16**Related module**: [OH_Camera](_o_h___camera.md)
17
18
19## Summary
20
21
22### Structs
23
24| Name| Description|
25| -------- | -------- |
26| struct  [CameraManager_Callbacks](_camera_manager___callbacks.md) | Describes the callbacks used to listen for camera status changes.|
27
28
29### Types
30
31| Name| Description|
32| -------- | -------- |
33| typedef void(\* [OH_CameraManager_StatusCallback](_o_h___camera.md#oh_cameramanager_statuscallback)) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_StatusInfo](_camera___status_info.md) \*status) | Defines the callback defined in the [CameraManager_Callbacks](_camera_manager___callbacks.md) struct and used to report the camera manager status.|
34| typedef void(\* [OH_CameraManager_TorchStatusCallback](_o_h___camera.md#oh_cameramanager_torchstatuscallback)) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_TorchStatusInfo](_camera___torch_status_info.md) \*status) | Defines the callback invoked when the flashlight status changes.|
35| typedef struct [CameraManager_Callbacks](_camera_manager___callbacks.md) [CameraManager_Callbacks](_o_h___camera.md#cameramanager_callbacks) | Defines a struct for the callbacks used to listen for camera status changes.|
36
37
38### Functions
39
40| Name| Description|
41| -------- | -------- |
42| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_RegisterCallback](_o_h___camera.md#oh_cameramanager_registercallback) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [CameraManager_Callbacks](_camera_manager___callbacks.md) \*callback) | Registers a callback to listen for camera status changes.|
43| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_UnregisterCallback](_o_h___camera.md#oh_cameramanager_unregistercallback) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [CameraManager_Callbacks](_camera_manager___callbacks.md) \*callback) | Unregisters the callback used to listen for camera status changes.|
44| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_RegisterTorchStatusCallback](_o_h___camera.md#oh_cameramanager_registertorchstatuscallback) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [OH_CameraManager_TorchStatusCallback](_o_h___camera.md#oh_cameramanager_torchstatuscallback) torchStatusCallback) | Registers a callback to listen for flashlight status changes.|
45| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_UnregisterTorchStatusCallback](_o_h___camera.md#oh_cameramanager_unregistertorchstatuscallback) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [OH_CameraManager_TorchStatusCallback](_o_h___camera.md#oh_cameramanager_torchstatuscallback) torchStatusCallback) | Unregisters the callback used to listen for flashlight status changes.|
46| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_GetSupportedCameras](_o_h___camera.md#oh_cameramanager_getsupportedcameras) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_Device](_camera___device.md) \*\*cameras, uint32_t \*size) | Obtains supported cameras.|
47| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_DeleteSupportedCameras](_o_h___camera.md#oh_cameramanager_deletesupportedcameras) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_Device](_camera___device.md) \*cameras, uint32_t size) | Deletes supported cameras.|
48| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_GetSupportedCameraOutputCapability](_o_h___camera.md#oh_cameramanager_getsupportedcameraoutputcapability) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_Device](_camera___device.md) \*camera, [Camera_OutputCapability](_camera___output_capability.md) \*\*cameraOutputCapability) | Obtains the output capability supported by a camera.|
49| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode](_o_h___camera.md#oh_cameramanager_getsupportedcameraoutputcapabilitywithscenemode) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_Device](_camera___device.md) \*camera, [Camera_SceneMode](_o_h___camera.md#camera_scenemode) sceneMode, [Camera_OutputCapability](_camera___output_capability.md) \*\*cameraOutputCapability) | Obtains the output capability supported by a camera in a given scene mode.|
50| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_DeleteSupportedCameraOutputCapability](_o_h___camera.md#oh_cameramanager_deletesupportedcameraoutputcapability) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_OutputCapability](_camera___output_capability.md) \*cameraOutputCapability) | Deletes the output capability supported by a camera.|
51| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_IsCameraMuted](_o_h___camera.md#oh_cameramanager_iscameramuted) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, bool \*isCameraMuted) | Checks whether a camera is muted.|
52| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreateCaptureSession](_o_h___camera.md#oh_cameramanager_createcapturesession) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_CaptureSession](_o_h___camera.md#camera_capturesession) \*\*captureSession) | Creates a **CaptureSession** instance.|
53| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreateCameraInput](_o_h___camera.md#oh_cameramanager_createcamerainput) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_Device](_camera___device.md) \*camera, [Camera_Input](_o_h___camera.md#camera_input) \*\*cameraInput) | Creates a **CameraInput** instance.|
54| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreateCameraInput_WithPositionAndType](_o_h___camera.md#oh_cameramanager_createcamerainput_withpositionandtype) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_Position](_o_h___camera.md#camera_position) position, [Camera_Type](_o_h___camera.md#camera_type) type, [Camera_Input](_o_h___camera.md#camera_input) \*\*cameraInput) | Creates a **CameraInput** instance with the specified location and type.|
55| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreatePreviewOutput](_o_h___camera.md#oh_cameramanager_createpreviewoutput) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_Profile](_camera___profile.md) \*profile, const char \*surfaceId, [Camera_PreviewOutput](_o_h___camera.md#camera_previewoutput) \*\*previewOutput) | Creates a **PreviewOutput** instance.|
56| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreatePreviewOutputUsedInPreconfig](_o_h___camera.md#oh_cameramanager_createpreviewoutputusedinpreconfig) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const char \*surfaceId, [Camera_PreviewOutput](_o_h___camera.md#camera_previewoutput) \*\*previewOutput) | Creates a **PreviewOutput** instance to be used in a preconfiguration stream.|
57| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreatePhotoOutput](_o_h___camera.md#oh_cameramanager_createphotooutput) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_Profile](_camera___profile.md) \*profile, const char \*surfaceId, [Camera_PhotoOutput](_o_h___camera.md#camera_photooutput) \*\*photoOutput) | Creates a **PhotoOutput** instance.|
58| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreatePhotoOutputUsedInPreconfig](_o_h___camera.md#oh_cameramanager_createphotooutputusedinpreconfig) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const char \*surfaceId, [Camera_PhotoOutput](_o_h___camera.md#camera_photooutput) \*\*photoOutput) | Creates a **PhotoOutput** instance to be used in a preconfiguration stream.|
59| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreatePhotoOutputWithoutSurface](_o_h___camera.md#oh_cameramanager_createphotooutputwithoutsurface) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_Profile](_camera___profile.md) \*profile, [Camera_PhotoOutput](_o_h___camera.md#camera_photooutput) \*\*photoOutput) | Creates a **PhotoOutput** instance. **surfaceId** is not required in this function.|
60| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreateVideoOutput](_o_h___camera.md#oh_cameramanager_createvideooutput) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_VideoProfile](_camera___video_profile.md) \*profile, const char \*surfaceId, [Camera_VideoOutput](_o_h___camera.md#camera_videooutput) \*\*videoOutput) | Creates a **VideoOutput** instance.|
61| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreateVideoOutputUsedInPreconfig](_o_h___camera.md#oh_cameramanager_createvideooutputusedinpreconfig) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const char \*surfaceId, [Camera_VideoOutput](_o_h___camera.md#camera_videooutput) \*\*videoOutput) | Creates a **VideoOutput** instance to be used in a preconfiguration stream.|
62| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_CreateMetadataOutput](_o_h___camera.md#oh_cameramanager_createmetadataoutput) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, const [Camera_MetadataObjectType](_o_h___camera.md#camera_metadataobjecttype) \*profile, [Camera_MetadataOutput](_o_h___camera.md#camera_metadataoutput) \*\*metadataOutput) | Creates a **MetadataOutput** instance.|
63| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_GetSupportedSceneModes](_o_h___camera.md#oh_cameramanager_getsupportedscenemodes) ([Camera_Device](_camera___device.md) \*camera, [Camera_SceneMode](_o_h___camera.md#camera_scenemode) \*\*sceneModes, uint32_t \*size) | Obtains the scene modes supported by a camera.|
64| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_DeleteSceneModes](_o_h___camera.md#oh_cameramanager_deletescenemodes) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_SceneMode](_o_h___camera.md#camera_scenemode) \*sceneModes) | Deletes scene modes.|
65| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_IsTorchSupported](_o_h___camera.md#oh_cameramanager_istorchsupported) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, bool \*isTorchSupported) | Checks whether the device supports the flashlight.|
66| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_IsTorchSupportedByTorchMode](_o_h___camera.md#oh_cameramanager_istorchsupportedbytorchmode) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_TorchMode](_o_h___camera.md#camera_torchmode) torchMode, bool \*isTorchSupported) | Checks whether the device supports the specified flashlight mode.|
67| [Camera_ErrorCode](_o_h___camera.md#camera_errorcode) [OH_CameraManager_SetTorchMode](_o_h___camera.md#oh_cameramanager_settorchmode) ([Camera_Manager](_o_h___camera.md#camera_manager) \*cameraManager, [Camera_TorchMode](_o_h___camera.md#camera_torchmode) torchMode) | Sets a flashlight mode.|
68