1/*
2 * Copyright (c) 2024 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/**
17 * @addtogroup OH_Camera
18 * @{
19 *
20 * @brief Provide the definition of the C interface for the camera module.
21 *
22 * @syscap SystemCapability.Multimedia.Camera.Core
23 *
24 * @since 12
25 * @version 1.0
26 */
27
28/**
29 * @file photo_native.h
30 *
31 * @brief Declare the camera photo concepts.
32 *
33 * @library libohcamera.so
34 * @kit CameraKit
35 * @syscap SystemCapability.Multimedia.Camera.Core
36 * @since 12
37 * @version 1.0
38 */
39
40#ifndef NATIVE_INCLUDE_PHOTO_NATIVE_H
41#define NATIVE_INCLUDE_PHOTO_NATIVE_H
42
43#include <stdint.h>
44#include <stdio.h>
45#include "camera.h"
46#include "multimedia/image_framework/image/image_native.h"
47
48#ifdef __cplusplus
49extern "C" {
50#endif
51
52/**
53 * @brief Camera photo object
54 *
55 * A pointer can be created using {@link OH_PhotoNative} method.
56 *
57 * @since 12
58 * @version 1.0
59 */
60typedef struct OH_PhotoNative OH_PhotoNative;
61
62/**
63 * @brief Get main image.
64 *
65 * @param photo the {@link OH_PhotoNative} instance.
66 * @param mainImage the {@link OH_ImageNative} which use to get main image.
67 * @return {@link #CAMERA_OK} if the method call succeeds.
68 *         {@link #INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
69 * @since 12
70 * @version 1.0
71 */
72Camera_ErrorCode OH_PhotoNative_GetMainImage(OH_PhotoNative* photo, OH_ImageNative** mainImage);
73
74/**
75 * @brief Release camera photo.
76 *
77 * @param photo the {@link OH_PhotoNative} instance to released.
78 * @return {@link #CAMERA_OK} if the method call succeeds.
79 *         {@link #INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
80 * @since 12
81 * @version 1.0
82 */
83Camera_ErrorCode OH_PhotoNative_Release(OH_PhotoNative* photo);
84
85#ifdef __cplusplus
86}
87#endif
88
89#endif // NATIVE_INCLUDE_PHOTO_NATIVE_H
90/** @} */