• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "kits/native/include/camera/camera_manager.h"
17 #include "impl/camera_manager_impl.h"
18 #include "camera_log.h"
19 #include "hilog/log.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
OH_Camera_GetCameraManager(Camera_Manager ** cameraManager)25 Camera_ErrorCode OH_Camera_GetCameraManager(Camera_Manager** cameraManager)
26 {
27     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
28         "lnvalid argument, cameraManager is null!");
29     *cameraManager = new Camera_Manager();
30     return CAMERA_OK;
31 }
32 
OH_Camera_DeleteCameraManager(Camera_Manager * cameraManager)33 Camera_ErrorCode OH_Camera_DeleteCameraManager(Camera_Manager* cameraManager)
34 {
35     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
36         "lnvalid argument, cameraManager is null!");
37     delete cameraManager;
38     return CAMERA_OK;
39 }
40 
OH_CameraManager_RegisterCallback(Camera_Manager * cameraManager,CameraManager_Callbacks * callback)41 Camera_ErrorCode OH_CameraManager_RegisterCallback(Camera_Manager* cameraManager, CameraManager_Callbacks* callback)
42 {
43     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
44         "lnvalid argument, cameraManager is null!");
45     CHECK_ERROR_RETURN_RET_LOG(callback == nullptr, CAMERA_INVALID_ARGUMENT,
46         "lnvalid argument, callback is null!");
47     CHECK_ERROR_RETURN_RET_LOG(callback->onCameraStatus == nullptr,
48         CAMERA_INVALID_ARGUMENT, "lnvalid argument, callback onCameraStatus is null!");
49 
50     cameraManager->RegisterCallback(callback);
51     return CAMERA_OK;
52 }
53 
OH_CameraManager_UnregisterCallback(Camera_Manager * cameraManager,CameraManager_Callbacks * callback)54 Camera_ErrorCode OH_CameraManager_UnregisterCallback(Camera_Manager* cameraManager, CameraManager_Callbacks* callback)
55 {
56     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
57         "lnvalid argument, cameraManager is null!");
58     CHECK_ERROR_RETURN_RET_LOG(callback == nullptr, CAMERA_INVALID_ARGUMENT,
59         "lnvalid argument, callback is null!");
60     CHECK_ERROR_RETURN_RET_LOG(callback->onCameraStatus == nullptr,
61         CAMERA_INVALID_ARGUMENT, "lnvalid argument, callback onCameraStatus is null!");
62 
63     cameraManager->UnregisterCallback(callback);
64     return CAMERA_OK;
65 }
66 
OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager * cameraManager,OH_CameraManager_TorchStatusCallback torchStatusCallback)67 Camera_ErrorCode OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager* cameraManager,
68     OH_CameraManager_TorchStatusCallback torchStatusCallback)
69 {
70     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
71         "lnvalid argument, cameraManager is null!");
72     CHECK_ERROR_RETURN_RET_LOG(torchStatusCallback == nullptr, CAMERA_INVALID_ARGUMENT,
73         "lnvalid argument, callback is null!");
74     cameraManager->RegisterTorchStatusCallback(torchStatusCallback);
75     return CAMERA_OK;
76 }
77 
OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager * cameraManager,OH_CameraManager_TorchStatusCallback torchStatusCallback)78 Camera_ErrorCode OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager* cameraManager,
79     OH_CameraManager_TorchStatusCallback torchStatusCallback)
80 {
81     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
82         "lnvalid argument, cameraManager is null!");
83     CHECK_ERROR_RETURN_RET_LOG(torchStatusCallback == nullptr, CAMERA_INVALID_ARGUMENT,
84         "lnvalid argument, callback is null!");
85     cameraManager->UnregisterTorchStatusCallback(torchStatusCallback);
86     return CAMERA_OK;
87 }
88 
OH_CameraManager_GetSupportedCameras(Camera_Manager * cameraManager,Camera_Device ** cameras,uint32_t * size)89 Camera_ErrorCode OH_CameraManager_GetSupportedCameras(Camera_Manager* cameraManager,
90     Camera_Device** cameras, uint32_t* size)
91 {
92     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
93         "lnvalid argument, cameraManager is null!");
94     CHECK_ERROR_RETURN_RET_LOG(cameras == nullptr, CAMERA_INVALID_ARGUMENT,
95         "lnvalid argument, cameras is null!");
96     CHECK_ERROR_RETURN_RET_LOG(size == nullptr, CAMERA_INVALID_ARGUMENT,
97         "lnvalid argument, size is null!");
98 
99     return cameraManager->GetSupportedCameras(cameras, size);
100 }
101 
OH_CameraManager_DeleteSupportedCameras(Camera_Manager * cameraManager,Camera_Device * cameras,uint32_t size)102 Camera_ErrorCode OH_CameraManager_DeleteSupportedCameras(Camera_Manager* cameraManager,
103     Camera_Device* cameras, uint32_t size)
104 {
105     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
106         "lnvalid argument, cameraManager is null!");
107     CHECK_ERROR_RETURN_RET_LOG(cameras == nullptr, CAMERA_INVALID_ARGUMENT,
108         "lnvalid argument, cameras is null!");
109     uint32_t sizeMax = 0;
110     cameraManager->GetSupportedCameras(&cameras, &sizeMax);
111     CHECK_ERROR_RETURN_RET_LOG(size > sizeMax, CAMERA_INVALID_ARGUMENT,
112         "lnvalid argument,size is lnvalid");
113 
114     return cameraManager->DeleteSupportedCameras(cameras, size);
115 }
116 
OH_CameraManager_GetSupportedCameraOutputCapability(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_OutputCapability ** cameraOutputCapability)117 Camera_ErrorCode OH_CameraManager_GetSupportedCameraOutputCapability(Camera_Manager* cameraManager,
118     const Camera_Device* camera, Camera_OutputCapability** cameraOutputCapability)
119 {
120     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
121         "lnvalid argument, cameraManager is null!");
122     CHECK_ERROR_RETURN_RET_LOG(cameraOutputCapability == nullptr, CAMERA_INVALID_ARGUMENT,
123         "lnvalid argument, cameraOutputCapability is null!");
124     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
125         "lnvalid argument,camera is null!");
126 
127     return cameraManager->GetSupportedCameraOutputCapability(camera, cameraOutputCapability);
128 }
129 
OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_SceneMode sceneMode,Camera_OutputCapability ** cameraOutputCapability)130 Camera_ErrorCode OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode(Camera_Manager* cameraManager,
131     const Camera_Device* camera, Camera_SceneMode sceneMode, Camera_OutputCapability** cameraOutputCapability)
132 {
133     MEDIA_DEBUG_LOG("OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode is called.");
134     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
135         "lnvalid argument, cameraManager is null!");
136     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
137         "lnvalid argument, camera is null!");
138     CHECK_ERROR_RETURN_RET_LOG(cameraOutputCapability == nullptr, CAMERA_INVALID_ARGUMENT,
139         "lnvalid argument, cameraOutputCapability is null!");
140 
141     return cameraManager->GetSupportedCameraOutputCapabilityWithSceneMode(camera, sceneMode, cameraOutputCapability);
142 }
143 
OH_CameraManager_DeleteSupportedCameraOutputCapability(Camera_Manager * cameraManager,Camera_OutputCapability * cameraOutputCapability)144 Camera_ErrorCode OH_CameraManager_DeleteSupportedCameraOutputCapability(Camera_Manager* cameraManager,
145     Camera_OutputCapability* cameraOutputCapability)
146 {
147     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
148         "lnvalid argument, cameraManager is null!");
149     CHECK_ERROR_RETURN_RET_LOG(cameraOutputCapability == nullptr, CAMERA_INVALID_ARGUMENT,
150         "lnvalid argument, cameraOutputCapability is null!");
151 
152     return cameraManager->DeleteSupportedCameraOutputCapability(cameraOutputCapability);
153 }
154 
OH_CameraManager_IsCameraMuted(Camera_Manager * cameraManager,bool * isCameraMuted)155 Camera_ErrorCode OH_CameraManager_IsCameraMuted(Camera_Manager* cameraManager, bool* isCameraMuted)
156 {
157     MEDIA_DEBUG_LOG("OH_CameraManager_IsCameraMuted is called");
158     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
159         "lnvalid argument, cameraManager is null!");
160 
161     return cameraManager->IsCameraMuted(isCameraMuted);
162 }
163 
OH_CameraManager_CreateCaptureSession(Camera_Manager * cameraManager,Camera_CaptureSession ** captureSession)164 Camera_ErrorCode OH_CameraManager_CreateCaptureSession(Camera_Manager* cameraManager,
165     Camera_CaptureSession** captureSession)
166 {
167     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
168         "lnvalid argument, cameraManager is null!");
169     CHECK_ERROR_RETURN_RET_LOG(captureSession == nullptr, CAMERA_INVALID_ARGUMENT,
170         "lnvalid argument, captureSession is null!");
171 
172     return cameraManager->CreateCaptureSession(captureSession);
173 }
174 
OH_CameraManager_CreateCameraInput(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_Input ** cameraInput)175 Camera_ErrorCode OH_CameraManager_CreateCameraInput(Camera_Manager* cameraManager,
176     const Camera_Device* camera, Camera_Input** cameraInput)
177 {
178     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
179         "lnvalid argument, cameraManager is null!");
180     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
181         "lnvalid argument, cameraDevice is null!");
182     CHECK_ERROR_RETURN_RET_LOG(cameraInput == nullptr, CAMERA_INVALID_ARGUMENT,
183         "lnvalid argument, cameraInput is null!");
184 
185     return cameraManager->CreateCameraInput(camera, cameraInput);
186 }
187 
OH_CameraManager_CreateCameraInput_WithPositionAndType(Camera_Manager * cameraManager,Camera_Position position,Camera_Type type,Camera_Input ** cameraInput)188 Camera_ErrorCode OH_CameraManager_CreateCameraInput_WithPositionAndType(Camera_Manager* cameraManager,
189     Camera_Position position, Camera_Type type, Camera_Input** cameraInput)
190 {
191     MEDIA_DEBUG_LOG("OH_CameraManager_CreateCameraInput_WithPositionAndType is called");
192     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
193         "lnvalid argument, cameraManager is null!");
194     CHECK_ERROR_RETURN_RET_LOG(cameraInput == nullptr, CAMERA_INVALID_ARGUMENT,
195         "lnvalid argument, cameraInput is null!");
196     return cameraManager->CreateCameraInputWithPositionAndType(position, type, cameraInput);
197 }
198 
OH_CameraManager_CreatePreviewOutput(Camera_Manager * cameraManager,const Camera_Profile * profile,const char * surfaceId,Camera_PreviewOutput ** previewOutput)199 Camera_ErrorCode OH_CameraManager_CreatePreviewOutput(Camera_Manager* cameraManager, const Camera_Profile* profile,
200     const char* surfaceId, Camera_PreviewOutput** previewOutput)
201 {
202     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
203         "lnvalid argument, cameraManager is null!");
204     CHECK_ERROR_RETURN_RET_LOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
205         "lnvalid argument, profile is null!");
206     CHECK_ERROR_RETURN_RET_LOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
207         "lnvalid argument, surfaceId is null!");
208     CHECK_ERROR_RETURN_RET_LOG(previewOutput == nullptr, CAMERA_INVALID_ARGUMENT,
209         "lnvalid argument, previewOutput is null!");
210 
211     return cameraManager->CreatePreviewOutput(profile, surfaceId, previewOutput);
212 }
213 
OH_CameraManager_CreatePreviewOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_PreviewOutput ** previewOutput)214 Camera_ErrorCode OH_CameraManager_CreatePreviewOutputUsedInPreconfig(Camera_Manager* cameraManager,
215     const char* surfaceId, Camera_PreviewOutput** previewOutput)
216 {
217     MEDIA_DEBUG_LOG("OH_CameraManager_CreatePreviewOutputUsedInPreconfig is called.");
218     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
219         "lnvalid argument, cameraManager is null!");
220     CHECK_ERROR_RETURN_RET_LOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
221         "lnvalid argument, surfaceId is null!");
222     CHECK_ERROR_RETURN_RET_LOG(previewOutput == nullptr, CAMERA_INVALID_ARGUMENT,
223         "lnvalid argument, previewOutput is null!");
224 
225     return cameraManager->CreatePreviewOutputUsedInPreconfig(surfaceId, previewOutput);
226 }
227 
OH_CameraManager_CreatePhotoOutput(Camera_Manager * cameraManager,const Camera_Profile * profile,const char * surfaceId,Camera_PhotoOutput ** photoOutput)228 Camera_ErrorCode OH_CameraManager_CreatePhotoOutput(Camera_Manager* cameraManager, const Camera_Profile* profile,
229     const char* surfaceId, Camera_PhotoOutput** photoOutput)
230 {
231     MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutput is called");
232     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
233         "lnvalid argument, cameraManager is null!");
234     CHECK_ERROR_RETURN_RET_LOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
235         "lnvalid argument, profile is null!");
236     CHECK_ERROR_RETURN_RET_LOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
237         "lnvalid argument, surfaceId is null!");
238     CHECK_ERROR_RETURN_RET_LOG(photoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
239         "lnvalid argument, photoOutput is null!");
240 
241     return cameraManager->CreatePhotoOutput(profile, surfaceId, photoOutput);
242 }
243 
OH_CameraManager_CreatePhotoOutputWithoutSurface(Camera_Manager * cameraManager,const Camera_Profile * profile,Camera_PhotoOutput ** photoOutput)244 Camera_ErrorCode OH_CameraManager_CreatePhotoOutputWithoutSurface(Camera_Manager* cameraManager,
245     const Camera_Profile* profile, Camera_PhotoOutput** photoOutput)
246 {
247     MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutputWithoutSurface is called");
248     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
249         "lnvalid argument, cameraManager is null!");
250     CHECK_ERROR_RETURN_RET_LOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
251         "lnvalid argument, profile is null!");
252     CHECK_ERROR_RETURN_RET_LOG(photoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
253         "lnvalid argument, photoOutput is null!");
254 
255     return cameraManager->CreatePhotoOutputWithoutSurface(profile, photoOutput);
256 }
257 
OH_CameraManager_CreatePhotoOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_PhotoOutput ** photoOutput)258 Camera_ErrorCode OH_CameraManager_CreatePhotoOutputUsedInPreconfig(Camera_Manager* cameraManager,
259     const char* surfaceId, Camera_PhotoOutput** photoOutput)
260 {
261     MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutputUsedInPreconfig is called.");
262     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
263         "lnvalid argument, cameraManager is null!");
264     CHECK_ERROR_RETURN_RET_LOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
265         "lnvalid argument, surfaceId is null!");
266     CHECK_ERROR_RETURN_RET_LOG(photoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
267         "lnvalid argument, photoOutput is null!");
268 
269     return cameraManager->CreatePhotoOutputUsedInPreconfig(surfaceId, photoOutput);
270 }
271 
OH_CameraManager_CreateVideoOutput(Camera_Manager * cameraManager,const Camera_VideoProfile * profile,const char * surfaceId,Camera_VideoOutput ** videoOutput)272 Camera_ErrorCode OH_CameraManager_CreateVideoOutput(Camera_Manager* cameraManager, const Camera_VideoProfile* profile,
273     const char* surfaceId, Camera_VideoOutput** videoOutput)
274 {
275     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
276         "lnvalid argument, cameraManager is null!");
277     CHECK_ERROR_RETURN_RET_LOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
278         "lnvalid argument, profile is null!");
279     CHECK_ERROR_RETURN_RET_LOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
280         "lnvalid argument, surfaceId is null!");
281     CHECK_ERROR_RETURN_RET_LOG(videoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
282         "lnvalid argument, videoOutput is null!");
283 
284     return cameraManager->CreateVideoOutput(profile, surfaceId, videoOutput);
285 }
286 
OH_CameraManager_CreateVideoOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_VideoOutput ** videoOutput)287 Camera_ErrorCode OH_CameraManager_CreateVideoOutputUsedInPreconfig(Camera_Manager* cameraManager,
288     const char* surfaceId, Camera_VideoOutput** videoOutput)
289 {
290     MEDIA_DEBUG_LOG("OH_CameraManager_CreateVideoOutputUsedInPreconfig is called.");
291     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
292         "lnvalid argument, cameraManager is null!");
293     CHECK_ERROR_RETURN_RET_LOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
294         "lnvalid argument, surfaceId is null!");
295     CHECK_ERROR_RETURN_RET_LOG(videoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
296         "lnvalid argument, videoOutput is null!");
297 
298     return cameraManager->CreateVideoOutputUsedInPreconfig(surfaceId, videoOutput);
299 }
300 
OH_CameraManager_CreateMetadataOutput(Camera_Manager * cameraManager,const Camera_MetadataObjectType * type,Camera_MetadataOutput ** metadataOutput)301 Camera_ErrorCode OH_CameraManager_CreateMetadataOutput(Camera_Manager* cameraManager,
302     const Camera_MetadataObjectType* type, Camera_MetadataOutput** metadataOutput)
303 {
304     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
305         "lnvalid argument, cameraManager is null!");
306     CHECK_ERROR_RETURN_RET_LOG(type == nullptr, CAMERA_INVALID_ARGUMENT,
307         "lnvalid argument, type is null!");
308     CHECK_ERROR_RETURN_RET_LOG(metadataOutput == nullptr, CAMERA_INVALID_ARGUMENT,
309         "lnvalid argument, metadataOutput is null!");
310 
311     return cameraManager->CreateMetadataOutput(type, metadataOutput);
312 }
313 
OH_CameraDevice_GetCameraOrientation(Camera_Device * camera,uint32_t * orientation)314 Camera_ErrorCode OH_CameraDevice_GetCameraOrientation(Camera_Device* camera, uint32_t* orientation)
315 {
316     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
317         "lnvalid argument, cameraDevice is null!");
318     CHECK_ERROR_RETURN_RET_LOG(orientation == nullptr, CAMERA_INVALID_ARGUMENT,
319         "lnvalid argument, orientation is null!");
320     return Camera_Manager::GetCameraOrientation(camera, orientation);
321 }
322 
OH_CameraDevice_GetHostDeviceName(Camera_Device * camera,char ** hostDeviceName)323 Camera_ErrorCode OH_CameraDevice_GetHostDeviceName(Camera_Device* camera, char** hostDeviceName)
324 {
325     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
326         "lnvalid argument, cameraDevice is null!");
327     CHECK_ERROR_RETURN_RET_LOG(hostDeviceName == nullptr, CAMERA_INVALID_ARGUMENT,
328         "lnvalid argument, hostDeviceName is null!");
329     return Camera_Manager::GetHostDeviceName(camera, hostDeviceName);
330 }
331 
OH_CameraDevice_GetHostDeviceType(Camera_Device * camera,Camera_HostDeviceType * hostDeviceType)332 Camera_ErrorCode OH_CameraDevice_GetHostDeviceType(Camera_Device* camera, Camera_HostDeviceType* hostDeviceType)
333 {
334     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
335         "lnvalid argument, cameraDevice is null!");
336     CHECK_ERROR_RETURN_RET_LOG(hostDeviceType == nullptr, CAMERA_INVALID_ARGUMENT,
337         "lnvalid argument, hostDeviceType is null!");
338     return Camera_Manager::GetHostDeviceType(camera, hostDeviceType);
339 }
340 
OH_CameraManager_GetSupportedSceneModes(Camera_Device * camera,Camera_SceneMode ** sceneModes,uint32_t * size)341 Camera_ErrorCode OH_CameraManager_GetSupportedSceneModes(Camera_Device* camera,
342     Camera_SceneMode** sceneModes, uint32_t* size)
343 {
344     MEDIA_DEBUG_LOG("OH_CameraManager_GetSupportedSceneModes is called.");
345     CHECK_ERROR_RETURN_RET_LOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
346         "lnvalid argument, camera is null!");
347     CHECK_ERROR_RETURN_RET_LOG(sceneModes == nullptr, CAMERA_INVALID_ARGUMENT,
348         "lnvalid argument, sceneModes is null!");
349     CHECK_ERROR_RETURN_RET_LOG(size == nullptr, CAMERA_INVALID_ARGUMENT,
350         "lnvalid argument, size is null!");
351 
352     return Camera_Manager::GetSupportedSceneModes(camera, sceneModes, size);
353 }
354 
OH_CameraManager_DeleteSceneModes(Camera_Manager * cameraManager,Camera_SceneMode * sceneModes)355 Camera_ErrorCode OH_CameraManager_DeleteSceneModes(Camera_Manager* cameraManager, Camera_SceneMode* sceneModes)
356 {
357     MEDIA_DEBUG_LOG("OH_CameraManager_DeleteSceneModes is called.");
358     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
359         "lnvalid argument, cameraManager is null!");
360     CHECK_ERROR_RETURN_RET_LOG(sceneModes == nullptr, CAMERA_INVALID_ARGUMENT,
361         "lnvalid argument, sceneModes is null!");
362 
363     return cameraManager->DeleteSceneModes(sceneModes);
364 }
365 
366 /**
367  * @since 12
368  * @version 1.0
369  */
OH_CameraManager_IsTorchSupported(Camera_Manager * cameraManager,bool * isTorchSupported)370 Camera_ErrorCode OH_CameraManager_IsTorchSupported(Camera_Manager* cameraManager,
371     bool* isTorchSupported)
372 {
373     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
374         "lnvalid argument, cameraManager is null!");
375     CHECK_ERROR_RETURN_RET_LOG(isTorchSupported == nullptr, CAMERA_INVALID_ARGUMENT,
376         "lnvalid argument, isTorchSupported is null!");
377 
378     return cameraManager->IsTorchSupported(isTorchSupported);
379 }
380 
381 /**
382  * @since 12
383  * @version 1.0
384  */
OH_CameraManager_IsTorchSupportedByTorchMode(Camera_Manager * cameraManager,Camera_TorchMode torchMode,bool * isTorchSupported)385 Camera_ErrorCode OH_CameraManager_IsTorchSupportedByTorchMode(Camera_Manager* cameraManager,
386     Camera_TorchMode torchMode, bool* isTorchSupported)
387 {
388     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
389         "lnvalid argument, cameraManager is null");
390     CHECK_ERROR_RETURN_RET_LOG(isTorchSupported == nullptr, CAMERA_INVALID_ARGUMENT,
391         "lnvalid argument, isTorchSupported is null");
392 
393     return cameraManager->IsTorchSupportedByTorchMode(torchMode, isTorchSupported);
394 }
395 
396 /**
397  * @since 12
398  * @version 1.0
399  */
OH_CameraManager_SetTorchMode(Camera_Manager * cameraManager,Camera_TorchMode torchMode)400 Camera_ErrorCode OH_CameraManager_SetTorchMode(Camera_Manager* cameraManager, Camera_TorchMode torchMode)
401 {
402     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
403         "lnvalid argument, cameraManager is null!");
404 
405     return cameraManager->SetTorchMode(torchMode);
406 }
407 
OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager * cameraManager,OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)408 Camera_ErrorCode OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
409     OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
410 {
411     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
412         "lnvalid argument, cameraManager is null!");
413     CHECK_ERROR_RETURN_RET_LOG(foldStatusInfoCallback == nullptr, CAMERA_INVALID_ARGUMENT,
414         "lnvalid argument, callback is null!");
415     cameraManager->RegisterFoldStatusCallback(foldStatusInfoCallback);
416     return CAMERA_OK;
417 }
418 
OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager * cameraManager,OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)419 Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
420     OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
421 {
422     CHECK_ERROR_RETURN_RET_LOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
423         "lnvalid argument, cameraManager is null!");
424     CHECK_ERROR_RETURN_RET_LOG(foldStatusInfoCallback == nullptr, CAMERA_INVALID_ARGUMENT,
425         "lnvalid argument, callback is null!");
426     cameraManager->UnregisterFoldStatusCallback(foldStatusInfoCallback);
427     return CAMERA_OK;
428 }
429 
430 /**
431  * @since 16
432  * @version 1.0
433  */
OH_CameraManager_GetCameraDevice(Camera_Manager * cameraManager,Camera_Position position,Camera_Type type,Camera_Device * camera)434 Camera_ErrorCode OH_CameraManager_GetCameraDevice(Camera_Manager *cameraManager, Camera_Position position,
435                                                   Camera_Type type, Camera_Device *camera)
436 {
437     return cameraManager->GetCameraDevice(position, type, camera);
438 }
439 
440 /**
441  * @since 16
442  * @version 1.0
443  */
OH_CameraManager_GetCameraConcurrentInfos(Camera_Manager * cameraManager,const Camera_Device * camera,uint32_t deviceSize,Camera_ConcurrentInfo ** CameraConcurrentInfo,uint32_t * infoSize)444 Camera_ErrorCode OH_CameraManager_GetCameraConcurrentInfos(Camera_Manager *cameraManager, const Camera_Device *camera,
445                                                            uint32_t deviceSize,
446                                                            Camera_ConcurrentInfo **CameraConcurrentInfo,
447                                                            uint32_t *infoSize)
448 {
449     return cameraManager->GetCameraConcurrentInfos(camera, deviceSize, CameraConcurrentInfo, infoSize);
450 }
451 #ifdef __cplusplus
452 }
453 #endif