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/metadata_output.h"
17 #include "impl/metadata_output_impl.h"
18 #include "camera_log.h"
19 #include "hilog/log.h"
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24
25 /**
26 * @since 11
27 * @version 1.0
28 */
OH_MetadataOutput_RegisterCallback(Camera_MetadataOutput * metadataOutput,MetadataOutput_Callbacks * callback)29 Camera_ErrorCode OH_MetadataOutput_RegisterCallback(Camera_MetadataOutput* metadataOutput,
30 MetadataOutput_Callbacks* callback)
31 {
32 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
33 "Invaild argument, metadataOutput is null!");
34 CHECK_AND_RETURN_RET_LOG(callback != nullptr, CAMERA_INVALID_ARGUMENT,
35 "Invaild argument, callback is null!");
36 CHECK_AND_RETURN_RET_LOG(callback->onMetadataObjectAvailable!= nullptr, CAMERA_INVALID_ARGUMENT,
37 "Invaild argument, callback onMetadataObjectAvailable is null!");
38 CHECK_AND_RETURN_RET_LOG(callback->onError!= nullptr, CAMERA_INVALID_ARGUMENT,
39 "Invaild argument, callback onError is null!");
40
41 metadataOutput->RegisterCallback(callback);
42 return CAMERA_OK;
43 }
44
45 /**
46 * @since 11
47 * @version 1.0
48 */
OH_MetadataOutput_UnregisterCallback(Camera_MetadataOutput * metadataOutput,MetadataOutput_Callbacks * callback)49 Camera_ErrorCode OH_MetadataOutput_UnregisterCallback(Camera_MetadataOutput* metadataOutput,
50 MetadataOutput_Callbacks* callback)
51 {
52 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
53 "Invaild argument, previewOutput is null!");
54 CHECK_AND_RETURN_RET_LOG(callback != nullptr, CAMERA_INVALID_ARGUMENT,
55 "Invaild argument, callback is null!");
56 CHECK_AND_RETURN_RET_LOG(callback->onMetadataObjectAvailable!= nullptr, CAMERA_INVALID_ARGUMENT,
57 "Invaild argument, callback onMetadataObjectAvailable is null!");
58 CHECK_AND_RETURN_RET_LOG(callback->onError!= nullptr, CAMERA_INVALID_ARGUMENT,
59 "Invaild argument, callback onError is null!");
60
61 metadataOutput->UnregisterCallback(callback);
62 return CAMERA_OK;
63 }
64
65 /**
66 * @since 11
67 * @version 1.0
68 */
OH_MetadataOutput_Start(Camera_MetadataOutput * metadataOutput)69 Camera_ErrorCode OH_MetadataOutput_Start(Camera_MetadataOutput* metadataOutput)
70 {
71 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
72 "Invaild argument, metadataOutput is null!");
73
74 return metadataOutput->Start();
75 }
76
77 /**
78 * @since 11
79 * @version 1.0
80 */
OH_MetadataOutput_Stop(Camera_MetadataOutput * metadataOutput)81 Camera_ErrorCode OH_MetadataOutput_Stop(Camera_MetadataOutput* metadataOutput)
82 {
83 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
84 "Invaild argument, metadataOutput is null!");
85
86 return metadataOutput->Stop();
87 }
88
89 /**
90 * @since 11
91 * @version 1.0
92 */
OH_MetadataOutput_Release(Camera_MetadataOutput * metadataOutput)93 Camera_ErrorCode OH_MetadataOutput_Release(Camera_MetadataOutput* metadataOutput)
94 {
95 CHECK_AND_RETURN_RET_LOG(metadataOutput != nullptr, CAMERA_INVALID_ARGUMENT,
96 "Invaild argument, metadataOutput is null!");
97
98 Camera_ErrorCode retCode = metadataOutput->Release();
99 if (metadataOutput != nullptr) {
100 delete metadataOutput;
101 }
102 return retCode;
103 }
104 #ifdef __cplusplus
105 }
106 #endif