[Camera] minor code change
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.Camera / Interop / Interop.Camera.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16  
17 using System;
18 using System.Runtime.InteropServices;
19 using Tizen.Multimedia;
20
21 internal static partial class Interop
22 {
23     internal static partial class Camera
24     {
25         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
26         internal delegate void FaceDetectedCallback(IntPtr faces, int count, IntPtr userData);
27
28         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
29         internal delegate void StateChangedCallback(CameraState previous, CameraState current, bool byPolicy, IntPtr userData);
30
31         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
32         internal delegate void InterruptedCallback(CameraPolicy policy, CameraState previous, CameraState current, IntPtr userData);
33
34         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
35         internal delegate void FocusStateChangedCallback(CameraFocusState state, IntPtr userData);
36
37         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
38         internal delegate void ErrorCallback(CameraErrorCode error, CameraState current, IntPtr userData);
39
40         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
41         internal delegate void CapturingCallback(IntPtr image, IntPtr postview, IntPtr thumbnail, IntPtr userData);
42
43         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
44         internal delegate void CaptureCompletedCallback(IntPtr userData);
45
46         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
47         internal delegate void PreviewCallback(IntPtr frame, IntPtr userData);
48
49         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
50         internal delegate void MediaPacketPreviewCallback(IntPtr mediaPacketHandle, IntPtr userData);
51
52         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
53         internal delegate void HdrCaptureProgressCallback(int percent, IntPtr userData);
54
55         [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
56         internal delegate void DeviceStateChangedCallback(CameraDevice device, CameraDeviceState state, IntPtr userData);
57
58         [DllImport(Libraries.Camera, EntryPoint = "camera_create")]
59         internal static extern CameraError Create(CameraDevice device, out IntPtr handle);
60
61         [DllImport(Libraries.Camera, EntryPoint = "camera_change_device")]
62         internal static extern CameraError ChangeDevice(IntPtr handle, CameraDevice device);
63
64         [DllImport(Libraries.Camera, EntryPoint = "camera_destroy")]
65         internal static extern CameraError Destroy(IntPtr handle);
66
67         [DllImport(Libraries.Camera, EntryPoint = "camera_get_device_count")]
68         internal static extern CameraError GetDeviceCount(IntPtr handle, out int count);
69
70         [DllImport(Libraries.Camera, EntryPoint = "camera_start_preview")]
71         internal static extern CameraError StartPreview(IntPtr handle);
72
73         [DllImport(Libraries.Camera, EntryPoint = "camera_stop_preview")]
74         internal static extern CameraError StopPreview(IntPtr handle);
75
76         [DllImport(Libraries.Camera, EntryPoint = "camera_get_device_state")]
77         internal static extern CameraError GetDeviceState(CameraDevice device, out CameraDeviceState state);
78
79         [DllImport(Libraries.Camera, EntryPoint = "camera_start_capture")]
80         internal static extern CameraError StartCapture(IntPtr handle, CapturingCallback captureCallback,
81                                                 CaptureCompletedCallback completedCallback, IntPtr userData);
82
83         [DllImport(Libraries.Camera, EntryPoint = "camera_start_continuous_capture")]
84         internal static extern CameraError StartContinuousCapture(IntPtr handle, int count, int interval,
85                                                           CapturingCallback captureCallback, CaptureCompletedCallback completedCallback, IntPtr userData);
86
87         [DllImport(Libraries.Camera, EntryPoint = "camera_stop_continuous_capture")]
88         internal static extern CameraError StopContinuousCapture(IntPtr handle);
89
90         [DllImport(Libraries.Camera, EntryPoint = "camera_get_state")]
91         internal static extern CameraError GetState(IntPtr handle, out CameraState state);
92
93         [DllImport(Libraries.Camera, EntryPoint = "camera_start_focusing")]
94         internal static extern CameraError StartFocusing(IntPtr handle, bool continuous);
95
96         [DllImport(Libraries.Camera, EntryPoint = "camera_cancel_focusing")]
97         internal static extern CameraError CancelFocusing(IntPtr handle);
98
99         [DllImport(Libraries.Camera, EntryPoint = "camera_set_preview_resolution")]
100         internal static extern CameraError SetPreviewResolution(IntPtr handle, int width, int height);
101
102         [DllImport(Libraries.Camera, EntryPoint = "camera_get_preview_resolution")]
103         internal static extern CameraError GetPreviewResolution(IntPtr handle, out int width, out int height);
104
105         [DllImport(Libraries.Camera, EntryPoint = "camera_get_recommended_preview_resolution")]
106         internal static extern CameraError GetRecommendedPreviewResolution(IntPtr handle, out int width, out int height);
107
108         [DllImport(Libraries.Camera, EntryPoint = "camera_start_face_detection")]
109         internal static extern CameraError StartFaceDetection(IntPtr handle, FaceDetectedCallback callback, IntPtr userData);
110
111         [DllImport(Libraries.Camera, EntryPoint = "camera_stop_face_detection")]
112         internal static extern CameraError StopFaceDetection(IntPtr handle);
113
114         [DllImport(Libraries.Camera, EntryPoint = "camera_set_display_reuse_hint")]
115         internal static extern CameraError SetDisplayReuseHint(IntPtr handle, bool hint);
116
117         [DllImport(Libraries.Camera, EntryPoint = "camera_get_display_reuse_hint")]
118         internal static extern CameraError GetDisplayReuseHint(IntPtr handle, out bool hint);
119
120         [DllImport(Libraries.Camera, EntryPoint = "camera_set_capture_resolution")]
121         internal static extern CameraError SetCaptureResolution(IntPtr handle, int width, int height);
122
123         [DllImport(Libraries.Camera, EntryPoint = "camera_get_capture_resolution")]
124         internal static extern CameraError GetCaptureResolution(IntPtr handle, out int width, out int height);
125
126         [DllImport(Libraries.Camera, EntryPoint = "camera_set_capture_format")]
127         internal static extern CameraError SetCaptureFormat(IntPtr handle, CameraPixelFormat format);
128
129         [DllImport(Libraries.Camera, EntryPoint = "camera_get_capture_format")]
130         internal static extern CameraError GetCaptureFormat(IntPtr handle, out CameraPixelFormat format);
131
132         [DllImport(Libraries.Camera, EntryPoint = "camera_set_preview_format")]
133         internal static extern CameraError SetPreviewPixelFormat(IntPtr handle, CameraPixelFormat format);
134
135         [DllImport(Libraries.Camera, EntryPoint = "camera_get_preview_format")]
136         internal static extern CameraError GetPreviewPixelFormat(IntPtr handle, out CameraPixelFormat format);
137
138         [DllImport(Libraries.Camera, EntryPoint = "camera_get_facing_direction")]
139         internal static extern CameraError GetFacingDirection(IntPtr handle, out CameraFacingDirection direction);
140
141         [DllImport(Libraries.Camera, EntryPoint = "camera_get_flash_state")]
142         internal static extern CameraError GetFlashState(CameraDevice device, out CameraFlashState state);
143
144         [DllImport(Libraries.Camera, EntryPoint = "camera_set_preview_cb")]
145         internal static extern CameraError SetPreviewCallback(IntPtr handle, PreviewCallback callback, IntPtr userData);
146
147         [DllImport(Libraries.Camera, EntryPoint = "camera_unset_preview_cb")]
148         internal static extern CameraError UnsetPreviewCallback(IntPtr handle);
149
150         [DllImport(Libraries.Camera, EntryPoint = "camera_set_media_packet_preview_cb")]
151         internal static extern CameraError SetMediaPacketPreviewCallback(IntPtr handle, MediaPacketPreviewCallback callback, IntPtr userData);
152
153         [DllImport(Libraries.Camera, EntryPoint = "camera_unset_media_packet_preview_cb")]
154         internal static extern CameraError UnsetMediaPacketPreviewCallback(IntPtr handle);
155
156         [DllImport(Libraries.Camera, EntryPoint = "camera_set_state_changed_cb")]
157         internal static extern CameraError SetStateChangedCallback(IntPtr handle, StateChangedCallback callback, IntPtr userData);
158
159         [DllImport(Libraries.Camera, EntryPoint = "camera_add_device_state_changed_cb")]
160         internal static extern CameraError SetDeviceStateChangedCallback(DeviceStateChangedCallback callback, IntPtr userData, out int callbackId);
161
162         [DllImport(Libraries.Camera, EntryPoint = "camera_unset_state_changed_cb")]
163         internal static extern CameraError UnsetStateChangedCallback(IntPtr handle);
164
165         [DllImport(Libraries.Camera, EntryPoint = "camera_remove_device_state_changed_cb")]
166         internal static extern CameraError UnsetDeviceStateChangedCallback(int cbId);
167
168         [DllImport(Libraries.Camera, EntryPoint = "camera_set_interrupted_cb")]
169         internal static extern CameraError SetInterruptedCallback(IntPtr handle, InterruptedCallback callback, IntPtr userData);
170
171         [DllImport(Libraries.Camera, EntryPoint = "camera_unset_interrupted_cb")]
172         internal static extern CameraError UnsetInterruptedCallback(IntPtr handle);
173
174         [DllImport(Libraries.Camera, EntryPoint = "camera_set_focus_changed_cb")]
175         internal static extern CameraError SetFocusStateChangedCallback(IntPtr handle, FocusStateChangedCallback callback, IntPtr userData);
176
177         [DllImport(Libraries.Camera, EntryPoint = "camera_unset_focus_changed_cb")]
178         internal static extern CameraError UnsetFocusChangedCallback(IntPtr handle);
179
180         [DllImport(Libraries.Camera, EntryPoint = "camera_set_error_cb")]
181         internal static extern CameraError SetErrorCallback(IntPtr handle, ErrorCallback callback, IntPtr userData);
182
183         [DllImport(Libraries.Camera, EntryPoint = "camera_unset_error_cb")]
184         internal static extern CameraError UnsetErrorCallback(IntPtr handle);
185
186         [DllImport(Libraries.Camera, EntryPoint = "camera_attr_set_hdr_capture_progress_cb")]
187         internal static extern CameraError SetHdrCaptureProgressCallback(IntPtr handle, HdrCaptureProgressCallback callback, IntPtr userData);
188
189         [DllImport(Libraries.Camera, EntryPoint = "camera_attr_unset_hdr_capture_progress_cb")]
190         internal static extern CameraError UnsetHdrCaptureProgressCallback(IntPtr handle);
191
192         [StructLayout(LayoutKind.Sequential)]
193         internal struct ImageDataStruct
194         {
195             internal IntPtr Data;
196             internal uint DataLength;
197             internal int Width;
198             internal int Height;
199             internal CameraPixelFormat Format;
200             internal IntPtr Exif;
201             internal uint ExifLength;
202         }
203
204         [StructLayout(LayoutKind.Sequential)]
205         internal struct DetectedFaceStruct
206         {
207             internal int Id;
208             internal int Score;
209             internal int X;
210             internal int Y;
211             internal int Width;
212             internal int Height;
213         }
214
215         [StructLayout(LayoutKind.Sequential)]
216         internal struct SinglePlaneStruct
217         {
218             internal IntPtr Data;
219             internal uint DataLength;
220         }
221
222         [StructLayout(LayoutKind.Sequential)]
223         internal struct DoublePlaneStruct
224         {
225             internal IntPtr Y;
226             internal IntPtr UV;
227             internal uint YLength;
228             internal uint UVLength;
229         }
230
231         [StructLayout(LayoutKind.Sequential)]
232         internal struct TriplePlaneStruct
233         {
234             internal IntPtr Y;
235             internal IntPtr U;
236             internal IntPtr V;
237             internal uint YLength;
238             internal uint ULength;
239             internal uint VLength;
240         }
241
242         [StructLayout(LayoutKind.Sequential)]
243         internal struct EncodedPlaneStruct
244         {
245             internal IntPtr Data;
246             internal uint DataLength;
247         }
248
249         [StructLayout(LayoutKind.Explicit)]
250         internal struct PreviewPlaneStruct
251         {
252             [FieldOffsetAttribute(0)]
253             internal SinglePlaneStruct SinglePlane;
254             [FieldOffsetAttribute(0)]
255             internal DoublePlaneStruct DoublePlane;
256             [FieldOffsetAttribute(0)]
257             internal TriplePlaneStruct TriplePlane;
258             [FieldOffsetAttribute(0)]
259             internal EncodedPlaneStruct EncodedPlane;
260         }
261
262         [StructLayout(LayoutKind.Sequential)]
263         internal struct CameraPreviewDataStruct
264         {
265             internal CameraPixelFormat Format;
266             internal int Width;
267             internal int Height;
268             internal int NumOfPlanes;
269             internal uint TimeStamp;
270             internal PreviewPlaneStruct Plane;
271         }
272     }
273 }