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
OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager * cameraManager,OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)21 Camera_ErrorCode OH_CameraManager_RegisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
22 OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
23 {
24 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
25 "Invaild argument, cameraManager is null!");
26 CHECK_AND_RETURN_RET_LOG(foldStatusInfoCallback != nullptr, CAMERA_INVALID_ARGUMENT,
27 "Invaild argument, callback is null!");
28 cameraManager->RegisterFoldStatusCallback(foldStatusInfoCallback);
29 return CAMERA_OK;
30 }
31
OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager * cameraManager,OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)32 Camera_ErrorCode OH_CameraManager_UnregisterFoldStatusInfoCallback(Camera_Manager* cameraManager,
33 OH_CameraManager_OnFoldStatusInfoChange foldStatusInfoCallback)
34 {
35 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
36 "Invaild argument, cameraManager is null!");
37 CHECK_AND_RETURN_RET_LOG(foldStatusInfoCallback != nullptr, CAMERA_INVALID_ARGUMENT,
38 "Invaild argument, callback is null!");
39 cameraManager->UnregisterFoldStatusCallback(foldStatusInfoCallback);
40 return CAMERA_OK;
41 }
42
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46
OH_Camera_GetCameraManager(Camera_Manager ** cameraManager)47 Camera_ErrorCode OH_Camera_GetCameraManager(Camera_Manager** cameraManager)
48 {
49 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
50 "Invaild argument, cameraManager is null!");
51 *cameraManager = new Camera_Manager();
52 return CAMERA_OK;
53 }
54
OH_Camera_DeleteCameraManager(Camera_Manager * cameraManager)55 Camera_ErrorCode OH_Camera_DeleteCameraManager(Camera_Manager* cameraManager)
56 {
57 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
58 "Invaild argument, cameraManager is null!");
59 delete cameraManager;
60 return CAMERA_OK;
61 }
62
OH_CameraManager_RegisterCallback(Camera_Manager * cameraManager,CameraManager_Callbacks * callback)63 Camera_ErrorCode OH_CameraManager_RegisterCallback(Camera_Manager* cameraManager, CameraManager_Callbacks* callback)
64 {
65 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
66 "Invaild argument, cameraManager is null!");
67 CHECK_AND_RETURN_RET_LOG(callback != nullptr, CAMERA_INVALID_ARGUMENT,
68 "Invaild argument, callback is null!");
69 CHECK_AND_RETURN_RET_LOG(callback->onCameraStatus != nullptr,
70 CAMERA_INVALID_ARGUMENT, "Invaild argument, callback onCameraStatus is null!");
71
72 cameraManager->RegisterCallback(callback);
73 return CAMERA_OK;
74 }
75
OH_CameraManager_UnregisterCallback(Camera_Manager * cameraManager,CameraManager_Callbacks * callback)76 Camera_ErrorCode OH_CameraManager_UnregisterCallback(Camera_Manager* cameraManager, CameraManager_Callbacks* callback)
77 {
78 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
79 "Invaild argument, cameraManager is null!");
80 CHECK_AND_RETURN_RET_LOG(callback != nullptr, CAMERA_INVALID_ARGUMENT,
81 "Invaild argument, callback is null!");
82 CHECK_AND_RETURN_RET_LOG(callback->onCameraStatus != nullptr,
83 CAMERA_INVALID_ARGUMENT, "Invaild argument, callback onCameraStatus is null!");
84
85 cameraManager->UnregisterCallback(callback);
86 return CAMERA_OK;
87 }
88
OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager * cameraManager,OH_CameraManager_TorchStatusCallback torchStatusCallback)89 Camera_ErrorCode OH_CameraManager_RegisterTorchStatusCallback(Camera_Manager* cameraManager,
90 OH_CameraManager_TorchStatusCallback torchStatusCallback)
91 {
92 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
93 "Invaild argument, cameraManager is null!");
94 CHECK_AND_RETURN_RET_LOG(torchStatusCallback != nullptr, CAMERA_INVALID_ARGUMENT,
95 "Invaild argument, callback is null!");
96 cameraManager->RegisterTorchStatusCallback(torchStatusCallback);
97 return CAMERA_OK;
98 }
99
OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager * cameraManager,OH_CameraManager_TorchStatusCallback torchStatusCallback)100 Camera_ErrorCode OH_CameraManager_UnregisterTorchStatusCallback(Camera_Manager* cameraManager,
101 OH_CameraManager_TorchStatusCallback torchStatusCallback)
102 {
103 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
104 "Invaild argument, cameraManager is null!");
105 CHECK_AND_RETURN_RET_LOG(torchStatusCallback != nullptr, CAMERA_INVALID_ARGUMENT,
106 "Invaild argument, callback is null!");
107 cameraManager->UnregisterTorchStatusCallback(torchStatusCallback);
108 return CAMERA_OK;
109 }
110
OH_CameraManager_GetSupportedCameras(Camera_Manager * cameraManager,Camera_Device ** cameras,uint32_t * size)111 Camera_ErrorCode OH_CameraManager_GetSupportedCameras(Camera_Manager* cameraManager,
112 Camera_Device** cameras, uint32_t* size)
113 {
114 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
115 "Invaild argument, cameraManager is null!");
116 CHECK_AND_RETURN_RET_LOG(cameras != nullptr, CAMERA_INVALID_ARGUMENT,
117 "Invaild argument, cameras is null!");
118 CHECK_AND_RETURN_RET_LOG(size!= nullptr, CAMERA_INVALID_ARGUMENT,
119 "Invaild argument, size is null!");
120
121 return cameraManager->GetSupportedCameras(cameras, size);
122 }
123
OH_CameraManager_DeleteSupportedCameras(Camera_Manager * cameraManager,Camera_Device * cameras,uint32_t size)124 Camera_ErrorCode OH_CameraManager_DeleteSupportedCameras(Camera_Manager* cameraManager,
125 Camera_Device* cameras, uint32_t size)
126 {
127 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
128 "Invaild argument, cameraManager is null!");
129 CHECK_AND_RETURN_RET_LOG(cameras != nullptr, CAMERA_INVALID_ARGUMENT,
130 "Invaild argument, cameras is null!");
131 uint32_t sizeMax = 0;
132 cameraManager->GetSupportedCameras(&cameras, &sizeMax);
133 CHECK_AND_RETURN_RET_LOG(size <= sizeMax, CAMERA_INVALID_ARGUMENT,
134 "Invaild argument,size is invaild");
135
136 return cameraManager->DeleteSupportedCameras(cameras, size);
137 }
138
OH_CameraManager_GetSupportedCameraOutputCapability(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_OutputCapability ** cameraOutputCapability)139 Camera_ErrorCode OH_CameraManager_GetSupportedCameraOutputCapability(Camera_Manager* cameraManager,
140 const Camera_Device* camera, Camera_OutputCapability** cameraOutputCapability)
141 {
142 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
143 "Invaild argument, cameraManager is null!");
144 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
145 "Invaild argument, camera is null!");
146 CHECK_AND_RETURN_RET_LOG(cameraOutputCapability != nullptr, CAMERA_INVALID_ARGUMENT,
147 "Invaild argument, cameraOutputCapability is null!");
148
149 return cameraManager->GetSupportedCameraOutputCapability(camera, cameraOutputCapability);
150 }
151
OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_SceneMode sceneMode,Camera_OutputCapability ** cameraOutputCapability)152 Camera_ErrorCode OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode(Camera_Manager* cameraManager,
153 const Camera_Device* camera, Camera_SceneMode sceneMode, Camera_OutputCapability** cameraOutputCapability)
154 {
155 MEDIA_DEBUG_LOG("OH_CameraManager_GetSupportedCameraOutputCapabilityWithSceneMode is called.");
156 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
157 "Invaild argument, cameraManager is null!");
158 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
159 "Invaild argument, camera is null!");
160 CHECK_AND_RETURN_RET_LOG(cameraOutputCapability != nullptr, CAMERA_INVALID_ARGUMENT,
161 "Invaild argument, cameraOutputCapability is null!");
162
163 return cameraManager->GetSupportedCameraOutputCapabilityWithSceneMode(camera, sceneMode, cameraOutputCapability);
164 }
165
OH_CameraManager_DeleteSupportedCameraOutputCapability(Camera_Manager * cameraManager,Camera_OutputCapability * cameraOutputCapability)166 Camera_ErrorCode OH_CameraManager_DeleteSupportedCameraOutputCapability(Camera_Manager* cameraManager,
167 Camera_OutputCapability* cameraOutputCapability)
168 {
169 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
170 "Invaild argument, cameraManager is null!");
171 CHECK_AND_RETURN_RET_LOG(cameraOutputCapability != nullptr, CAMERA_INVALID_ARGUMENT,
172 "Invaild argument, cameraOutputCapability is null!");
173
174 return cameraManager->DeleteSupportedCameraOutputCapability(cameraOutputCapability);
175 }
176
OH_CameraManager_IsCameraMuted(Camera_Manager * cameraManager,bool * isCameraMuted)177 Camera_ErrorCode OH_CameraManager_IsCameraMuted(Camera_Manager* cameraManager, bool* isCameraMuted)
178 {
179 MEDIA_DEBUG_LOG("OH_CameraManager_IsCameraMuted is called");
180 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
181 "Invaild argument, cameraManager is null!");
182
183 return cameraManager->IsCameraMuted(isCameraMuted);
184 }
185
OH_CameraManager_CreateCaptureSession(Camera_Manager * cameraManager,Camera_CaptureSession ** captureSession)186 Camera_ErrorCode OH_CameraManager_CreateCaptureSession(Camera_Manager* cameraManager,
187 Camera_CaptureSession** captureSession)
188 {
189 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
190 "Invaild argument, cameraManager is null!");
191 CHECK_AND_RETURN_RET_LOG(captureSession != nullptr, CAMERA_INVALID_ARGUMENT,
192 "Invaild argument, captureSession is null!");
193
194 return cameraManager->CreateCaptureSession(captureSession);
195 }
196
OH_CameraManager_CreateCameraInput(Camera_Manager * cameraManager,const Camera_Device * camera,Camera_Input ** cameraInput)197 Camera_ErrorCode OH_CameraManager_CreateCameraInput(Camera_Manager* cameraManager,
198 const Camera_Device* camera, Camera_Input** cameraInput)
199 {
200 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
201 "Invaild argument, cameraManager is null!");
202 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
203 "Invaild argument, cameraDevice is null!");
204 CHECK_AND_RETURN_RET_LOG(cameraInput != nullptr, CAMERA_INVALID_ARGUMENT,
205 "Invaild argument, cameraInput is null!");
206
207 return cameraManager->CreateCameraInput(camera, cameraInput);
208 }
209
OH_CameraManager_CreateCameraInput_WithPositionAndType(Camera_Manager * cameraManager,Camera_Position position,Camera_Type type,Camera_Input ** cameraInput)210 Camera_ErrorCode OH_CameraManager_CreateCameraInput_WithPositionAndType(Camera_Manager* cameraManager,
211 Camera_Position position, Camera_Type type, Camera_Input** cameraInput)
212 {
213 MEDIA_DEBUG_LOG("OH_CameraManager_CreateCameraInput_WithPositionAndType is called");
214 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
215 "Invaild argument, cameraManager is null!");
216 CHECK_AND_RETURN_RET_LOG(cameraInput != nullptr, CAMERA_INVALID_ARGUMENT,
217 "Invaild argument, cameraInput is null!");
218 return cameraManager->CreateCameraInputWithPositionAndType(position, type, cameraInput);
219 }
220
OH_CameraManager_CreatePreviewOutput(Camera_Manager * cameraManager,const Camera_Profile * profile,const char * surfaceId,Camera_PreviewOutput ** previewOutput)221 Camera_ErrorCode OH_CameraManager_CreatePreviewOutput(Camera_Manager* cameraManager, const Camera_Profile* profile,
222 const char* surfaceId, Camera_PreviewOutput** previewOutput)
223 {
224 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
225 "Invaild argument, cameraManager is null!");
226 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
227 "Invaild argument, profile is null!");
228 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
229 "Invaild argument, surfaceId is null!");
230 CHECK_AND_RETURN_RET_LOG(previewOutput != nullptr, CAMERA_INVALID_ARGUMENT,
231 "Invaild argument, previewOutput is null!");
232
233 return cameraManager->CreatePreviewOutput(profile, surfaceId, previewOutput);
234 }
235
OH_CameraManager_CreatePreviewOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_PreviewOutput ** previewOutput)236 Camera_ErrorCode OH_CameraManager_CreatePreviewOutputUsedInPreconfig(Camera_Manager* cameraManager,
237 const char* surfaceId, Camera_PreviewOutput** previewOutput)
238 {
239 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePreviewOutputUsedInPreconfig is called.");
240 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
241 "Invaild argument, cameraManager is null!");
242 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
243 "Invaild argument, surfaceId is null!");
244 CHECK_AND_RETURN_RET_LOG(previewOutput != nullptr, CAMERA_INVALID_ARGUMENT,
245 "Invaild argument, previewOutput is null!");
246
247 return cameraManager->CreatePreviewOutputUsedInPreconfig(surfaceId, previewOutput);
248 }
249
OH_CameraManager_CreatePhotoOutput(Camera_Manager * cameraManager,const Camera_Profile * profile,const char * surfaceId,Camera_PhotoOutput ** photoOutput)250 Camera_ErrorCode OH_CameraManager_CreatePhotoOutput(Camera_Manager* cameraManager, const Camera_Profile* profile,
251 const char* surfaceId, Camera_PhotoOutput** photoOutput)
252 {
253 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutput is called");
254 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
255 "Invaild argument, cameraManager is null!");
256 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
257 "Invaild argument, profile is null!");
258 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
259 "Invaild argument, surfaceId is null!");
260 CHECK_AND_RETURN_RET_LOG(photoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
261 "Invaild argument, photoOutput is null!");
262
263 return cameraManager->CreatePhotoOutput(profile, surfaceId, photoOutput);
264 }
265
OH_CameraManager_CreatePhotoOutputWithoutSurface(Camera_Manager * cameraManager,const Camera_Profile * profile,Camera_PhotoOutput ** photoOutput)266 Camera_ErrorCode OH_CameraManager_CreatePhotoOutputWithoutSurface(Camera_Manager* cameraManager,
267 const Camera_Profile* profile, Camera_PhotoOutput** photoOutput)
268 {
269 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutputWithoutSurface is called");
270 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
271 "Invaild argument, cameraManager is null!");
272 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
273 "Invaild argument, profile is null!");
274 CHECK_AND_RETURN_RET_LOG(photoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
275 "Invaild argument, photoOutput is null!");
276
277 return cameraManager->CreatePhotoOutputWithoutSurface(profile, photoOutput);
278 }
279
OH_CameraManager_CreatePhotoOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_PhotoOutput ** photoOutput)280 Camera_ErrorCode OH_CameraManager_CreatePhotoOutputUsedInPreconfig(Camera_Manager* cameraManager,
281 const char* surfaceId, Camera_PhotoOutput** photoOutput)
282 {
283 MEDIA_DEBUG_LOG("OH_CameraManager_CreatePhotoOutputUsedInPreconfig is called.");
284 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
285 "Invaild argument, cameraManager is null!");
286 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
287 "Invaild argument, surfaceId is null!");
288 CHECK_AND_RETURN_RET_LOG(photoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
289 "Invaild argument, photoOutput is null!");
290
291 return cameraManager->CreatePhotoOutputUsedInPreconfig(surfaceId, photoOutput);
292 }
293
OH_CameraManager_CreateVideoOutput(Camera_Manager * cameraManager,const Camera_VideoProfile * profile,const char * surfaceId,Camera_VideoOutput ** videoOutput)294 Camera_ErrorCode OH_CameraManager_CreateVideoOutput(Camera_Manager* cameraManager, const Camera_VideoProfile* profile,
295 const char* surfaceId, Camera_VideoOutput** videoOutput)
296 {
297 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
298 "Invaild argument, cameraManager is null!");
299 CHECK_AND_RETURN_RET_LOG(profile != nullptr, CAMERA_INVALID_ARGUMENT,
300 "Invaild argument, profile is null!");
301 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
302 "Invaild argument, surfaceId is null!");
303 CHECK_AND_RETURN_RET_LOG(videoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
304 "Invaild argument, videoOutput is null!");
305
306 return cameraManager->CreateVideoOutput(profile, surfaceId, videoOutput);
307 }
308
OH_CameraManager_CreateVideoOutputUsedInPreconfig(Camera_Manager * cameraManager,const char * surfaceId,Camera_VideoOutput ** videoOutput)309 Camera_ErrorCode OH_CameraManager_CreateVideoOutputUsedInPreconfig(Camera_Manager* cameraManager,
310 const char* surfaceId, Camera_VideoOutput** videoOutput)
311 {
312 MEDIA_DEBUG_LOG("OH_CameraManager_CreateVideoOutputUsedInPreconfig is called.");
313 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
314 "Invaild argument, cameraManager is null!");
315 CHECK_AND_RETURN_RET_LOG(surfaceId != nullptr, CAMERA_INVALID_ARGUMENT,
316 "Invaild argument, surfaceId is null!");
317 CHECK_AND_RETURN_RET_LOG(videoOutput != nullptr, CAMERA_INVALID_ARGUMENT,
318 "Invaild argument, videoOutput is null!");
319
320 return cameraManager->CreateVideoOutputUsedInPreconfig(surfaceId, videoOutput);
321 }
322
OH_CameraManager_CreateMetadataOutput(Camera_Manager * cameraManager,const Camera_MetadataObjectType * type,Camera_MetadataOutput ** metadataOutput)323 Camera_ErrorCode OH_CameraManager_CreateMetadataOutput(Camera_Manager* cameraManager,
324 const Camera_MetadataObjectType* type, Camera_MetadataOutput** metadataOutput)
325 {
326 CHECK_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
327 "Invaild argument, cameraManager is null!");
328 CHECK_AND_RETURN_RET_LOG(type != nullptr, CAMERA_INVALID_ARGUMENT,
329 "Invaild argument, type is null!");
330 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
331 "Invaild argument, metadataOutput is null!");
332
333 return cameraManager->CreateMetadataOutput(type, metadataOutput);
334 }
335
OH_CameraDevice_GetCameraOrientation(Camera_Device * camera,uint32_t * orientation)336 Camera_ErrorCode OH_CameraDevice_GetCameraOrientation(Camera_Device* camera, uint32_t* orientation)
337 {
338 CHECK_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
339 "Invaild argument, cameraDevice is null!");
340 CHECK_AND_RETURN_RET_LOG(orientation!= nullptr, CAMERA_INVALID_ARGUMENT,
341 "Invaild argument, orientation is null!");
342 return Camera_Manager::GetCameraOrientation(camera, orientation);
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_AND_RETURN_RET_LOG(camera != nullptr, CAMERA_INVALID_ARGUMENT,
350 "Invaild argument, camera is null!");
351 CHECK_AND_RETURN_RET_LOG(sceneModes != nullptr, CAMERA_INVALID_ARGUMENT,
352 "Invaild argument, sceneModes is null!");
353 CHECK_AND_RETURN_RET_LOG(size != nullptr, CAMERA_INVALID_ARGUMENT,
354 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
363 "Invaild argument, cameraManager is null!");
364 CHECK_AND_RETURN_RET_LOG(sceneModes != nullptr, CAMERA_INVALID_ARGUMENT,
365 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
378 "Invaild argument, cameraManager is null!");
379 CHECK_AND_RETURN_RET_LOG(isTorchSupported != nullptr, CAMERA_INVALID_ARGUMENT,
380 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
393 "Invaild argument, cameraManager is null");
394 CHECK_AND_RETURN_RET_LOG(isTorchSupported != nullptr, CAMERA_INVALID_ARGUMENT,
395 "Invaild 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_AND_RETURN_RET_LOG(cameraManager != nullptr, CAMERA_INVALID_ARGUMENT,
407 "Invaild argument, cameraManager is null!");
408
409 return cameraManager->SetTorchMode(torchMode);
410 }
411 #ifdef __cplusplus
412 }
413 #endif