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_RETURN_RET_ELOG(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_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
44 "lnvalid argument, cameraManager is null!");
45 CHECK_RETURN_RET_ELOG(callback == nullptr, CAMERA_INVALID_ARGUMENT,
46 "lnvalid argument, callback is null!");
47 CHECK_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
57 "lnvalid argument, cameraManager is null!");
58 CHECK_RETURN_RET_ELOG(callback == nullptr, CAMERA_INVALID_ARGUMENT,
59 "lnvalid argument, callback is null!");
60 CHECK_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
71 "lnvalid argument, cameraManager is null!");
72 CHECK_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
82 "lnvalid argument, cameraManager is null!");
83 CHECK_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
93 "lnvalid argument, cameraManager is null!");
94 CHECK_RETURN_RET_ELOG(cameras == nullptr, CAMERA_INVALID_ARGUMENT,
95 "lnvalid argument, cameras is null!");
96 CHECK_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
106 "lnvalid argument, cameraManager is null!");
107 CHECK_RETURN_RET_ELOG(cameras == nullptr, CAMERA_INVALID_ARGUMENT,
108 "lnvalid argument, cameras is null!");
109 uint32_t sizeMax = 0;
110 cameraManager->GetSupportedCameras(&cameras, &sizeMax);
111 CHECK_RETURN_RET_ELOG(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_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
121 "lnvalid argument, cameraManager is null!");
122 CHECK_RETURN_RET_ELOG(cameraOutputCapability == nullptr, CAMERA_INVALID_ARGUMENT,
123 "lnvalid argument, cameraOutputCapability is null!");
124 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
125 "lnvalid argument,camera is null!");
126 CHECK_RETURN_RET_ELOG(camera->cameraId == nullptr, CAMERA_INVALID_ARGUMENT,
127 "lnvalid argument,cameraId is null!");
128
129 return cameraManager->GetSupportedCameraOutputCapability(camera, cameraOutputCapability);
130 }
131
OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_SceneMode sceneMode,Camera_OutputCapability ** cameraOutputCapability)132 Camera_ErrorCode OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode(Camera_Manager* cameraManager,
133 const Camera_Device* camera, Camera_SceneMode sceneMode, Camera_OutputCapability** cameraOutputCapability)
134 {
135 MEDIA_DEBUG_LOG("OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode is called.");
136 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
137 "lnvalid argument, cameraManager is null!");
138 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
139 "lnvalid argument, camera is null!");
140 CHECK_RETURN_RET_ELOG(cameraOutputCapability == nullptr, CAMERA_INVALID_ARGUMENT,
141 "lnvalid argument, cameraOutputCapability is null!");
142 CHECK_RETURN_RET_ELOG(camera->cameraId == nullptr, CAMERA_INVALID_ARGUMENT,
143 "lnvalid argument,cameraId is null!");
144
145 return cameraManager->GetSupportedCameraOutputCapabilityWithSceneMode(camera, sceneMode, cameraOutputCapability);
146 }
147
OH_CameraManager_DeleteSupportedCameraOutputCapability(Camera_Manager * cameraManager,Camera_OutputCapability * cameraOutputCapability)148 Camera_ErrorCode OH_CameraManager_DeleteSupportedCameraOutputCapability(Camera_Manager* cameraManager,
149 Camera_OutputCapability* cameraOutputCapability)
150 {
151 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
152 "lnvalid argument, cameraManager is null!");
153 CHECK_RETURN_RET_ELOG(cameraOutputCapability == nullptr, CAMERA_INVALID_ARGUMENT,
154 "lnvalid argument, cameraOutputCapability is null!");
155
156 return cameraManager->DeleteSupportedCameraOutputCapability(cameraOutputCapability);
157 }
158
OH_CameraManager_IsCameraMuted(Camera_Manager * cameraManager,bool * isCameraMuted)159 Camera_ErrorCode OH_CameraManager_IsCameraMuted(Camera_Manager* cameraManager, bool* isCameraMuted)
160 {
161 MEDIA_DEBUG_LOG("OH_CameraManager_IsCameraMuted is called");
162 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
163 "lnvalid argument, cameraManager is null!");
164
165 return cameraManager->IsCameraMuted(isCameraMuted);
166 }
167
OH_CameraManager_CreateCaptureSession(Camera_Manager * cameraManager,Camera_CaptureSession ** captureSession)168 Camera_ErrorCode OH_CameraManager_CreateCaptureSession(Camera_Manager* cameraManager,
169 Camera_CaptureSession** captureSession)
170 {
171 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
172 "lnvalid argument, cameraManager is null!");
173 CHECK_RETURN_RET_ELOG(captureSession == nullptr, CAMERA_INVALID_ARGUMENT,
174 "lnvalid argument, captureSession is null!");
175
176 return cameraManager->CreateCaptureSession(captureSession);
177 }
178
OH_CameraManager_CreateCameraInput(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_Input ** cameraInput)179 Camera_ErrorCode OH_CameraManager_CreateCameraInput(Camera_Manager* cameraManager,
180 const Camera_Device* camera, Camera_Input** cameraInput)
181 {
182 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
183 "lnvalid argument, cameraManager is null!");
184 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
185 "lnvalid argument, cameraDevice is null!");
186 CHECK_RETURN_RET_ELOG(cameraInput == nullptr, CAMERA_INVALID_ARGUMENT,
187 "lnvalid argument, cameraInput is null!");
188
189 return cameraManager->CreateCameraInput(camera, cameraInput);
190 }
191
OH_CameraManager_CreateCameraInput_WithPositionAndType(Camera_Manager * cameraManager,Camera_Position position,Camera_Type type,Camera_Input ** cameraInput)192 Camera_ErrorCode OH_CameraManager_CreateCameraInput_WithPositionAndType(Camera_Manager* cameraManager,
193 Camera_Position position, Camera_Type type, Camera_Input** cameraInput)
194 {
195 MEDIA_DEBUG_LOG("OH_CameraManager_CreateCameraInput_WithPositionAndType is called");
196 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
197 "lnvalid argument, cameraManager is null!");
198 CHECK_RETURN_RET_ELOG(cameraInput == nullptr, CAMERA_INVALID_ARGUMENT,
199 "lnvalid argument, cameraInput is null!");
200 return cameraManager->CreateCameraInputWithPositionAndType(position, type, cameraInput);
201 }
202
OH_CameraManager_CreatePreviewOutput(Camera_Manager * cameraManager,const Camera_Profile * profile,const char * surfaceId,Camera_PreviewOutput ** previewOutput)203 Camera_ErrorCode OH_CameraManager_CreatePreviewOutput(Camera_Manager* cameraManager, const Camera_Profile* profile,
204 const char* surfaceId, Camera_PreviewOutput** previewOutput)
205 {
206 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
207 "lnvalid argument, cameraManager is null!");
208 CHECK_RETURN_RET_ELOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
209 "lnvalid argument, profile is null!");
210 CHECK_RETURN_RET_ELOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
211 "lnvalid argument, surfaceId is null!");
212 CHECK_RETURN_RET_ELOG(previewOutput == nullptr, CAMERA_INVALID_ARGUMENT,
213 "lnvalid argument, previewOutput is null!");
214
215 return cameraManager->CreatePreviewOutput(profile, surfaceId, previewOutput);
216 }
217
OH_CameraManager_CreatePreviewOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_PreviewOutput ** previewOutput)218 Camera_ErrorCode OH_CameraManager_CreatePreviewOutputUsedInPreconfig(Camera_Manager* cameraManager,
219 const char* surfaceId, Camera_PreviewOutput** previewOutput)
220 {
221 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePreviewOutputUsedInPreconfig is called.");
222 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
223 "lnvalid argument, cameraManager is null!");
224 CHECK_RETURN_RET_ELOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
225 "lnvalid argument, surfaceId is null!");
226 CHECK_RETURN_RET_ELOG(previewOutput == nullptr, CAMERA_INVALID_ARGUMENT,
227 "lnvalid argument, previewOutput is null!");
228
229 return cameraManager->CreatePreviewOutputUsedInPreconfig(surfaceId, previewOutput);
230 }
231
OH_CameraManager_CreatePhotoOutput(Camera_Manager * cameraManager,const Camera_Profile * profile,const char * surfaceId,Camera_PhotoOutput ** photoOutput)232 Camera_ErrorCode OH_CameraManager_CreatePhotoOutput(Camera_Manager* cameraManager, const Camera_Profile* profile,
233 const char* surfaceId, Camera_PhotoOutput** photoOutput)
234 {
235 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutput is called");
236 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
237 "lnvalid argument, cameraManager is null!");
238 CHECK_RETURN_RET_ELOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
239 "lnvalid argument, profile is null!");
240 CHECK_RETURN_RET_ELOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
241 "lnvalid argument, surfaceId is null!");
242 CHECK_RETURN_RET_ELOG(photoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
243 "lnvalid argument, photoOutput is null!");
244
245 return cameraManager->CreatePhotoOutput(profile, surfaceId, photoOutput);
246 }
247
OH_CameraManager_CreatePhotoOutputWithoutSurface(Camera_Manager * cameraManager,const Camera_Profile * profile,Camera_PhotoOutput ** photoOutput)248 Camera_ErrorCode OH_CameraManager_CreatePhotoOutputWithoutSurface(Camera_Manager* cameraManager,
249 const Camera_Profile* profile, Camera_PhotoOutput** photoOutput)
250 {
251 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutputWithoutSurface is called");
252 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
253 "lnvalid argument, cameraManager is null!");
254 CHECK_RETURN_RET_ELOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
255 "lnvalid argument, profile is null!");
256 CHECK_RETURN_RET_ELOG(photoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
257 "lnvalid argument, photoOutput is null!");
258
259 return cameraManager->CreatePhotoOutputWithoutSurface(profile, photoOutput);
260 }
261
OH_CameraManager_CreatePhotoOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_PhotoOutput ** photoOutput)262 Camera_ErrorCode OH_CameraManager_CreatePhotoOutputUsedInPreconfig(Camera_Manager* cameraManager,
263 const char* surfaceId, Camera_PhotoOutput** photoOutput)
264 {
265 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutputUsedInPreconfig is called.");
266 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
267 "lnvalid argument, cameraManager is null!");
268 CHECK_RETURN_RET_ELOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
269 "lnvalid argument, surfaceId is null!");
270 CHECK_RETURN_RET_ELOG(photoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
271 "lnvalid argument, photoOutput is null!");
272
273 return cameraManager->CreatePhotoOutputUsedInPreconfig(surfaceId, photoOutput);
274 }
275
OH_CameraManager_CreateVideoOutput(Camera_Manager * cameraManager,const Camera_VideoProfile * profile,const char * surfaceId,Camera_VideoOutput ** videoOutput)276 Camera_ErrorCode OH_CameraManager_CreateVideoOutput(Camera_Manager* cameraManager, const Camera_VideoProfile* profile,
277 const char* surfaceId, Camera_VideoOutput** videoOutput)
278 {
279 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
280 "lnvalid argument, cameraManager is null!");
281 CHECK_RETURN_RET_ELOG(profile == nullptr, CAMERA_INVALID_ARGUMENT,
282 "lnvalid argument, profile is null!");
283 CHECK_RETURN_RET_ELOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
284 "lnvalid argument, surfaceId is null!");
285 CHECK_RETURN_RET_ELOG(videoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
286 "lnvalid argument, videoOutput is null!");
287
288 return cameraManager->CreateVideoOutput(profile, surfaceId, videoOutput);
289 }
290
OH_CameraManager_CreateVideoOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_VideoOutput ** videoOutput)291 Camera_ErrorCode OH_CameraManager_CreateVideoOutputUsedInPreconfig(Camera_Manager* cameraManager,
292 const char* surfaceId, Camera_VideoOutput** videoOutput)
293 {
294 MEDIA_DEBUG_LOG("OH_CameraManager_CreateVideoOutputUsedInPreconfig is called.");
295 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
296 "lnvalid argument, cameraManager is null!");
297 CHECK_RETURN_RET_ELOG(surfaceId == nullptr, CAMERA_INVALID_ARGUMENT,
298 "lnvalid argument, surfaceId is null!");
299 CHECK_RETURN_RET_ELOG(videoOutput == nullptr, CAMERA_INVALID_ARGUMENT,
300 "lnvalid argument, videoOutput is null!");
301
302 return cameraManager->CreateVideoOutputUsedInPreconfig(surfaceId, videoOutput);
303 }
304
OH_CameraManager_CreateMetadataOutput(Camera_Manager * cameraManager,const Camera_MetadataObjectType * type,Camera_MetadataOutput ** metadataOutput)305 Camera_ErrorCode OH_CameraManager_CreateMetadataOutput(Camera_Manager* cameraManager,
306 const Camera_MetadataObjectType* type, Camera_MetadataOutput** metadataOutput)
307 {
308 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
309 "lnvalid argument, cameraManager is null!");
310 CHECK_RETURN_RET_ELOG(type == nullptr, CAMERA_INVALID_ARGUMENT,
311 "lnvalid argument, type is null!");
312 CHECK_RETURN_RET_ELOG(metadataOutput == nullptr, CAMERA_INVALID_ARGUMENT,
313 "lnvalid argument, metadataOutput is null!");
314
315 return cameraManager->CreateMetadataOutput(type, metadataOutput);
316 }
317
OH_CameraDevice_GetCameraOrientation(Camera_Device * camera,uint32_t * orientation)318 Camera_ErrorCode OH_CameraDevice_GetCameraOrientation(Camera_Device* camera, uint32_t* orientation)
319 {
320 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
321 "lnvalid argument, cameraDevice is null!");
322 CHECK_RETURN_RET_ELOG(orientation == nullptr, CAMERA_INVALID_ARGUMENT,
323 "lnvalid argument, orientation is null!");
324 return Camera_Manager::GetCameraOrientation(camera, orientation);
325 }
326
OH_CameraDevice_GetHostDeviceName(Camera_Device * camera,char ** hostDeviceName)327 Camera_ErrorCode OH_CameraDevice_GetHostDeviceName(Camera_Device* camera, char** hostDeviceName)
328 {
329 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
330 "lnvalid argument, cameraDevice is null!");
331 CHECK_RETURN_RET_ELOG(hostDeviceName == nullptr, CAMERA_INVALID_ARGUMENT,
332 "lnvalid argument, hostDeviceName is null!");
333 return Camera_Manager::GetHostDeviceName(camera, hostDeviceName);
334 }
335
OH_CameraDevice_GetHostDeviceType(Camera_Device * camera,Camera_HostDeviceType * hostDeviceType)336 Camera_ErrorCode OH_CameraDevice_GetHostDeviceType(Camera_Device* camera, Camera_HostDeviceType* hostDeviceType)
337 {
338 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
339 "lnvalid argument, cameraDevice is null!");
340 CHECK_RETURN_RET_ELOG(hostDeviceType == nullptr, CAMERA_INVALID_ARGUMENT,
341 "lnvalid argument, hostDeviceType is null!");
342 return Camera_Manager::GetHostDeviceType(camera, hostDeviceType);
343 }
344
OH_CameraManager_GetSupportedSceneModes(Camera_Device * camera,Camera_SceneMode ** sceneModes,uint32_t * size)345 Camera_ErrorCode OH_CameraManager_GetSupportedSceneModes(Camera_Device* camera,
346 Camera_SceneMode** sceneModes, uint32_t* size)
347 {
348 MEDIA_DEBUG_LOG("OH_CameraManager_GetSupportedSceneModes is called.");
349 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
350 "lnvalid argument, camera is null!");
351 CHECK_RETURN_RET_ELOG(sceneModes == nullptr, CAMERA_INVALID_ARGUMENT,
352 "lnvalid argument, sceneModes is null!");
353 CHECK_RETURN_RET_ELOG(size == nullptr, CAMERA_INVALID_ARGUMENT,
354 "lnvalid argument, size is null!");
355
356 return Camera_Manager::GetSupportedSceneModes(camera, sceneModes, size);
357 }
358
OH_CameraManager_DeleteSceneModes(Camera_Manager * cameraManager,Camera_SceneMode * sceneModes)359 Camera_ErrorCode OH_CameraManager_DeleteSceneModes(Camera_Manager* cameraManager, Camera_SceneMode* sceneModes)
360 {
361 MEDIA_DEBUG_LOG("OH_CameraManager_DeleteSceneModes is called.");
362 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
363 "lnvalid argument, cameraManager is null!");
364 CHECK_RETURN_RET_ELOG(sceneModes == nullptr, CAMERA_INVALID_ARGUMENT,
365 "lnvalid argument, sceneModes is null!");
366
367 return cameraManager->DeleteSceneModes(sceneModes);
368 }
369
370 /**
371 * @since 12
372 * @version 1.0
373 */
OH_CameraManager_IsTorchSupported(Camera_Manager * cameraManager,bool * isTorchSupported)374 Camera_ErrorCode OH_CameraManager_IsTorchSupported(Camera_Manager* cameraManager,
375 bool* isTorchSupported)
376 {
377 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
378 "lnvalid argument, cameraManager is null!");
379 CHECK_RETURN_RET_ELOG(isTorchSupported == nullptr, CAMERA_INVALID_ARGUMENT,
380 "lnvalid argument, isTorchSupported is null!");
381
382 return cameraManager->IsTorchSupported(isTorchSupported);
383 }
384
385 /**
386 * @since 12
387 * @version 1.0
388 */
OH_CameraManager_IsTorchSupportedByTorchMode(Camera_Manager * cameraManager,Camera_TorchMode torchMode,bool * isTorchSupported)389 Camera_ErrorCode OH_CameraManager_IsTorchSupportedByTorchMode(Camera_Manager* cameraManager,
390 Camera_TorchMode torchMode, bool* isTorchSupported)
391 {
392 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
393 "lnvalid argument, cameraManager is null");
394 CHECK_RETURN_RET_ELOG(isTorchSupported == nullptr, CAMERA_INVALID_ARGUMENT,
395 "lnvalid argument, isTorchSupported is null");
396
397 return cameraManager->IsTorchSupportedByTorchMode(torchMode, isTorchSupported);
398 }
399
400 /**
401 * @since 12
402 * @version 1.0
403 */
OH_CameraManager_SetTorchMode(Camera_Manager * cameraManager,Camera_TorchMode torchMode)404 Camera_ErrorCode OH_CameraManager_SetTorchMode(Camera_Manager* cameraManager, Camera_TorchMode torchMode)
405 {
406 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
407 "lnvalid argument, cameraManager is null!");
408
409 return cameraManager->SetTorchMode(torchMode);
410 }
411
OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager * cameraManager,OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)412 Camera_ErrorCode OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
413 OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
414 {
415 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
416 "lnvalid argument, cameraManager is null!");
417 CHECK_RETURN_RET_ELOG(foldStatusInfoCallback == nullptr, CAMERA_INVALID_ARGUMENT,
418 "lnvalid argument, callback is null!");
419 cameraManager->RegisterFoldStatusCallback(foldStatusInfoCallback);
420 return CAMERA_OK;
421 }
422
OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager * cameraManager,OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)423 Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
424 OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
425 {
426 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
427 "lnvalid argument, cameraManager is null!");
428 CHECK_RETURN_RET_ELOG(foldStatusInfoCallback == nullptr, CAMERA_INVALID_ARGUMENT,
429 "lnvalid argument, callback is null!");
430 cameraManager->UnregisterFoldStatusCallback(foldStatusInfoCallback);
431 return CAMERA_OK;
432 }
433
434 /**
435 * @since 16
436 * @version 1.0
437 */
OH_CameraManager_GetCameraDevice(Camera_Manager * cameraManager,Camera_Position position,Camera_Type type,Camera_Device * camera)438 Camera_ErrorCode OH_CameraManager_GetCameraDevice(Camera_Manager *cameraManager, Camera_Position position,
439 Camera_Type type, Camera_Device *camera)
440 {
441 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
442 "Invalid argument, cameraManager is null!");
443 return cameraManager->GetCameraDevice(position, type, camera);
444 }
445
446 /**
447 * @since 16
448 * @version 1.0
449 */
OH_CameraManager_GetCameraConcurrentInfos(Camera_Manager * cameraManager,const Camera_Device * camera,uint32_t deviceSize,Camera_ConcurrentInfo ** CameraConcurrentInfo,uint32_t * infoSize)450 Camera_ErrorCode OH_CameraManager_GetCameraConcurrentInfos(Camera_Manager *cameraManager, const Camera_Device *camera,
451 uint32_t deviceSize,
452 Camera_ConcurrentInfo **CameraConcurrentInfo,
453 uint32_t *infoSize)
454 {
455 CHECK_RETURN_RET_ELOG(cameraManager == nullptr, CAMERA_INVALID_ARGUMENT,
456 "Invalid argument, cameraManager is null!");
457 CHECK_RETURN_RET_ELOG(camera == nullptr, CAMERA_INVALID_ARGUMENT,
458 "lnvalid argument, cameraDevice is null!");
459 return cameraManager->GetCameraConcurrentInfos(camera, deviceSize, CameraConcurrentInfo, infoSize);
460 }
461 #ifdef __cplusplus
462 }
463 #endif