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