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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
28 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
36 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
44 "Invaild argument, cameraManager is null!");
45 CHECK_AND_RETURN_RET_LOG(callback != nullptr, CAMERA_INVALID_ARGUMENT,
46 "Invaild argument, callback is null!");
47 CHECK_AND_RETURN_RET_LOG(callback->onCameraStatus != nullptr,
48 CAMERA_INVALID_ARGUMENT, "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
57 "Invaild argument, cameraManager is null!");
58 CHECK_AND_RETURN_RET_LOG(callback != nullptr, CAMERA_INVALID_ARGUMENT,
59 "Invaild argument, callback is null!");
60 CHECK_AND_RETURN_RET_LOG(callback->onCameraStatus != nullptr,
61 CAMERA_INVALID_ARGUMENT, "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
71 "Invaild argument, cameraManager is null!");
72 CHECK_AND_RETURN_RET_LOG(torchStatusCallback != nullptr, CAMERA_INVALID_ARGUMENT,
73 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
82 "Invaild argument, cameraManager is null!");
83 CHECK_AND_RETURN_RET_LOG(torchStatusCallback != nullptr, CAMERA_INVALID_ARGUMENT,
84 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
93 "Invaild argument, cameraManager is null!");
94 CHECK_AND_RETURN_RET_LOG(cameras != nullptr, CAMERA_INVALID_ARGUMENT,
95 "Invaild argument, cameras is null!");
96 CHECK_AND_RETURN_RET_LOG(size!= nullptr, CAMERA_INVALID_ARGUMENT,
97 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
106 "Invaild argument, cameraManager is null!");
107 CHECK_AND_RETURN_RET_LOG(cameras != nullptr, CAMERA_INVALID_ARGUMENT,
108 "Invaild argument, cameras is null!");
109 uint32_t sizeMax = 0;
110 cameraManager->GetSupportedCameras(&cameras, &sizeMax);
111 CHECK_AND_RETURN_RET_LOG(size <= sizeMax, CAMERA_INVALID_ARGUMENT,
112 "Invaild argument,size is invaild");
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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
121 "Invaild argument, cameraManager is null!");
122 CHECK_AND_RETURN_RET_LOG(cameraOutputCapability != nullptr, CAMERA_INVALID_ARGUMENT,
123 "Invaild argument, cameraOutputCapability is null!");
124 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
125 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
135 "Invaild argument, cameraManager is null!");
136 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
137 "Invaild argument, camera is null!");
138 CHECK_AND_RETURN_RET_LOG(cameraOutputCapability != nullptr, CAMERA_INVALID_ARGUMENT,
139 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
148 "Invaild argument, cameraManager is null!");
149 CHECK_AND_RETURN_RET_LOG(cameraOutputCapability != nullptr, CAMERA_INVALID_ARGUMENT,
150 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
159 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
168 "Invaild argument, cameraManager is null!");
169 CHECK_AND_RETURN_RET_LOG(captureSession != nullptr, CAMERA_INVALID_ARGUMENT,
170 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
179 "Invaild argument, cameraManager is null!");
180 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
181 "Invaild argument, cameraDevice is null!");
182 CHECK_AND_RETURN_RET_LOG(cameraInput != nullptr, CAMERA_INVALID_ARGUMENT,
183 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
193 "Invaild argument, cameraManager is null!");
194 CHECK_AND_RETURN_RET_LOG(cameraInput != nullptr, CAMERA_INVALID_ARGUMENT,
195 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
203 "Invaild argument, cameraManager is null!");
204 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
205 "Invaild argument, profile is null!");
206 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
207 "Invaild argument, surfaceId is null!");
208 CHECK_AND_RETURN_RET_LOG(previewOutput != nullptr, CAMERA_INVALID_ARGUMENT,
209 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
219 "Invaild argument, cameraManager is null!");
220 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
221 "Invaild argument, surfaceId is null!");
222 CHECK_AND_RETURN_RET_LOG(previewOutput != nullptr, CAMERA_INVALID_ARGUMENT,
223 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
233 "Invaild argument, cameraManager is null!");
234 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
235 "Invaild argument, profile is null!");
236 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
237 "Invaild argument, surfaceId is null!");
238 CHECK_AND_RETURN_RET_LOG(photoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
239 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
249 "Invaild argument, cameraManager is null!");
250 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
251 "Invaild argument, profile is null!");
252 CHECK_AND_RETURN_RET_LOG(photoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
253 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
263 "Invaild argument, cameraManager is null!");
264 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
265 "Invaild argument, surfaceId is null!");
266 CHECK_AND_RETURN_RET_LOG(photoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
267 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
276 "Invaild argument, cameraManager is null!");
277 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
278 "Invaild argument, profile is null!");
279 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
280 "Invaild argument, surfaceId is null!");
281 CHECK_AND_RETURN_RET_LOG(videoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
282 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
292 "Invaild argument, cameraManager is null!");
293 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
294 "Invaild argument, surfaceId is null!");
295 CHECK_AND_RETURN_RET_LOG(videoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
296 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
305 "Invaild argument, cameraManager is null!");
306 CHECK_AND_RETURN_RET_LOG(type != nullptr, CAMERA_INVALID_ARGUMENT,
307 "Invaild argument, type is null!");
308 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
309 "Invaild 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_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
317 "Invaild argument, cameraDevice is null!");
318 CHECK_AND_RETURN_RET_LOG(orientation!= nullptr, CAMERA_INVALID_ARGUMENT,
319 "Invaild argument, orientation is null!");
320 return Camera_Manager::GetCameraOrientation(camera, orientation);
321 }
322
OH_CameraManager_GetSupportedSceneModes(Camera_Device* camera, Camera_SceneMode** sceneModes, uint32_t* size)323 Camera_ErrorCode OH_CameraManager_GetSupportedSceneModes(Camera_Device* camera,
324 Camera_SceneMode** sceneModes, uint32_t* size)
325 {
326 MEDIA_DEBUG_LOG("OH_CameraManager_GetSupportedSceneModes is called.");
327 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
328 "Invaild argument, camera is null!");
329 CHECK_AND_RETURN_RET_LOG(sceneModes != nullptr, CAMERA_INVALID_ARGUMENT,
330 "Invaild argument, sceneModes is null!");
331 CHECK_AND_RETURN_RET_LOG(size != nullptr, CAMERA_INVALID_ARGUMENT,
332 "Invaild argument, size is null!");
333
334 return Camera_Manager::GetSupportedSceneModes(camera, sceneModes, size);
335 }
336
OH_CameraManager_DeleteSceneModes(Camera_Manager* cameraManager, Camera_SceneMode* sceneModes)337 Camera_ErrorCode OH_CameraManager_DeleteSceneModes(Camera_Manager* cameraManager, Camera_SceneMode* sceneModes)
338 {
339 MEDIA_DEBUG_LOG("OH_CameraManager_DeleteSceneModes is called.");
340 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
341 "Invaild argument, cameraManager is null!");
342 CHECK_AND_RETURN_RET_LOG(sceneModes != nullptr, CAMERA_INVALID_ARGUMENT,
343 "Invaild argument, sceneModes is null!");
344
345 return cameraManager->DeleteSceneModes(sceneModes);
346 }
347
348 /**
349 * @since 12
350 * @version 1.0
351 */
OH_CameraManager_IsTorchSupported(Camera_Manager* cameraManager, bool* isTorchSupported)352 Camera_ErrorCode OH_CameraManager_IsTorchSupported(Camera_Manager* cameraManager,
353 bool* isTorchSupported)
354 {
355 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
356 "Invaild argument, cameraManager is null!");
357 CHECK_AND_RETURN_RET_LOG(isTorchSupported != nullptr, CAMERA_INVALID_ARGUMENT,
358 "Invaild argument, isTorchSupported is null!");
359
360 return cameraManager->IsTorchSupported(isTorchSupported);
361 }
362
363 /**
364 * @since 12
365 * @version 1.0
366 */
OH_CameraManager_IsTorchSupportedByTorchMode(Camera_Manager* cameraManager, Camera_TorchMode torchMode, bool* isTorchSupported)367 Camera_ErrorCode OH_CameraManager_IsTorchSupportedByTorchMode(Camera_Manager* cameraManager,
368 Camera_TorchMode torchMode, bool* isTorchSupported)
369 {
370 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
371 "Invaild argument, cameraManager is null");
372 CHECK_AND_RETURN_RET_LOG(isTorchSupported != nullptr, CAMERA_INVALID_ARGUMENT,
373 "Invaild argument, isTorchSupported is null");
374
375 return cameraManager->IsTorchSupportedByTorchMode(torchMode, isTorchSupported);
376 }
377
378 /**
379 * @since 12
380 * @version 1.0
381 */
OH_CameraManager_SetTorchMode(Camera_Manager* cameraManager, Camera_TorchMode torchMode)382 Camera_ErrorCode OH_CameraManager_SetTorchMode(Camera_Manager* cameraManager, Camera_TorchMode torchMode)
383 {
384 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
385 "Invaild argument, cameraManager is null!");
386
387 return cameraManager->SetTorchMode(torchMode);
388 }
389
OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager, OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)390 Camera_ErrorCode OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
391 OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
392 {
393 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
394 "Invaild argument, cameraManager is null!");
395 CHECK_AND_RETURN_RET_LOG(foldStatusInfoCallback != nullptr, CAMERA_INVALID_ARGUMENT,
396 "Invaild argument, callback is null!");
397 cameraManager->RegisterFoldStatusCallback(foldStatusInfoCallback);
398 return CAMERA_OK;
399 }
400
OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager, OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)401 Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
402 OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
403 {
404 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
405 "Invaild argument, cameraManager is null!");
406 CHECK_AND_RETURN_RET_LOG(foldStatusInfoCallback != nullptr, CAMERA_INVALID_ARGUMENT,
407 "Invaild argument, callback is null!");
408 cameraManager->UnregisterFoldStatusCallback(foldStatusInfoCallback);
409 return CAMERA_OK;
410 }
411
412 #ifdef __cplusplus
413 }
414 #endif