2 using System.Runtime.InteropServices;
4 namespace Tizen.Multimedia
6 internal static partial class Interop
8 internal static partial class Camera
10 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
11 internal delegate void FaceDetectedCallback(IntPtr faces, int count, IntPtr userData);
13 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
14 internal delegate void StateChangedCallback(CameraState previous, CameraState current, bool byPolicy, IntPtr userData);
16 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
17 internal delegate void InterruptedCallback(CameraPolicy policy, CameraState previous, CameraState current, IntPtr userData);
19 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
20 internal delegate void FocusStateChangedCallback(CameraFocusState state, IntPtr userData);
22 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
23 internal delegate void ErrorCallback(CameraErrorCode error, CameraState current, IntPtr userData);
25 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
26 internal delegate void CapturingCallback(IntPtr image, IntPtr postview, IntPtr thumbnail, IntPtr userData);
28 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
29 internal delegate void CaptureCompletedCallback(IntPtr userData);
31 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
32 internal delegate void PreviewCallback(IntPtr frame, IntPtr userData);
34 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
35 internal delegate void MediaPacketPreviewCallback(IntPtr mediaPacketHandle, IntPtr userData);
37 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
38 internal delegate void HdrCaptureProgressCallback(int percent, IntPtr userData);
40 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
41 internal delegate void DeviceStateChangedCallback(CameraDevice device, CameraDeviceState state, IntPtr userData);
43 [DllImport(Libraries.Camera, EntryPoint = "camera_create")]
44 internal static extern CameraError Create(int device, out IntPtr handle);
46 [DllImport(Libraries.Camera, EntryPoint = "camera_change_device")]
47 internal static extern CameraError ChangeDevice(IntPtr handle, int device);
49 [DllImport(Libraries.Camera, EntryPoint = "camera_destroy")]
50 internal static extern CameraError Destroy(IntPtr handle);
52 [DllImport(Libraries.Camera, EntryPoint = "camera_get_device_count")]
53 internal static extern CameraError GetDeviceCount(IntPtr handle, out int count);
55 [DllImport(Libraries.Camera, EntryPoint = "camera_start_preview")]
56 internal static extern CameraError StartPreview(IntPtr handle);
58 [DllImport(Libraries.Camera, EntryPoint = "camera_stop_preview")]
59 internal static extern CameraError StopPreview(IntPtr handle);
61 [DllImport(Libraries.Camera, EntryPoint = "camera_get_device_state")]
62 internal static extern CameraError GetDeviceState(CameraDevice device, out int state);
64 [DllImport(Libraries.Camera, EntryPoint = "camera_start_capture")]
65 internal static extern CameraError StartCapture(IntPtr handle, CapturingCallback captureCallback,
66 CaptureCompletedCallback completedCallback, IntPtr userData);
68 [DllImport(Libraries.Camera, EntryPoint = "camera_start_continuous_capture")]
69 internal static extern CameraError StartContinuousCapture(IntPtr handle, int count, int interval,
70 CapturingCallback captureCallback, CaptureCompletedCallback completedCallback, IntPtr userData);
72 [DllImport(Libraries.Camera, EntryPoint = "camera_stop_continuous_capture")]
73 internal static extern CameraError StopContinuousCapture(IntPtr handle);
75 [DllImport(Libraries.Camera, EntryPoint = "camera_get_state")]
76 internal static extern CameraError GetState(IntPtr handle, out CameraState state);
78 [DllImport(Libraries.Camera, EntryPoint = "camera_start_focusing")]
79 internal static extern CameraError StartFocusing(IntPtr handle, bool continuous);
81 [DllImport(Libraries.Camera, EntryPoint = "camera_cancel_focusing")]
82 internal static extern CameraError CancelFocusing(IntPtr handle);
84 [DllImport(Libraries.Camera, EntryPoint = "camera_set_preview_resolution")]
85 internal static extern CameraError SetPreviewResolution(IntPtr handle, int width, int height);
87 [DllImport(Libraries.Camera, EntryPoint = "camera_get_preview_resolution")]
88 internal static extern CameraError GetPreviewResolution(IntPtr handle, out int width, out int height);
90 [DllImport(Libraries.Camera, EntryPoint = "camera_get_recommended_preview_resolution")]
91 internal static extern CameraError GetRecommendedPreviewResolution(IntPtr handle, out int width, out int height);
93 [DllImport(Libraries.Camera, EntryPoint = "camera_start_face_detection")]
94 internal static extern CameraError StartFaceDetection(IntPtr handle, FaceDetectedCallback callback, IntPtr userData);
96 [DllImport(Libraries.Camera, EntryPoint = "camera_stop_face_detection")]
97 internal static extern CameraError StopFaceDetection(IntPtr handle);
99 [DllImport(Libraries.Camera, EntryPoint = "camera_set_display_reuse_hint")]
100 internal static extern CameraError SetDisplayReuseHint(IntPtr handle, bool hint);
102 [DllImport(Libraries.Camera, EntryPoint = "camera_get_display_reuse_hint")]
103 internal static extern CameraError GetDisplayReuseHint(IntPtr handle, out bool hint);
105 [DllImport(Libraries.Camera, EntryPoint = "camera_set_capture_resolution")]
106 internal static extern CameraError SetCaptureResolution(IntPtr handle, int width, int height);
108 [DllImport(Libraries.Camera, EntryPoint = "camera_get_capture_resolution")]
109 internal static extern CameraError GetCaptureResolution(IntPtr handle, out int width, out int height);
111 [DllImport(Libraries.Camera, EntryPoint = "camera_set_capture_format")]
112 internal static extern CameraError SetCaptureFormat(IntPtr handle, CameraPixelFormat format);
114 [DllImport(Libraries.Camera, EntryPoint = "camera_get_capture_format")]
115 internal static extern CameraError GetCaptureFormat(IntPtr handle, out CameraPixelFormat format);
117 [DllImport(Libraries.Camera, EntryPoint = "camera_set_preview_format")]
118 internal static extern CameraError SetPreviewPixelFormat(IntPtr handle, CameraPixelFormat format);
120 [DllImport(Libraries.Camera, EntryPoint = "camera_get_preview_format")]
121 internal static extern CameraError GetPreviewPixelFormat(IntPtr handle, out CameraPixelFormat format);
123 [DllImport(Libraries.Camera, EntryPoint = "camera_get_facing_direction")]
124 internal static extern CameraError GetFacingDirection(IntPtr handle, out CameraFacingDirection direction);
126 [DllImport(Libraries.Camera, EntryPoint = "camera_get_flash_state")]
127 internal static extern CameraError GetFlashState(CameraDevice device, out CameraFlashState state);
129 [DllImport(Libraries.Camera, EntryPoint = "camera_set_preview_cb")]
130 internal static extern CameraError SetPreviewCallback(IntPtr handle, PreviewCallback callback, IntPtr userData);
132 [DllImport(Libraries.Camera, EntryPoint = "camera_unset_preview_cb")]
133 internal static extern CameraError UnsetPreviewCallback(IntPtr handle);
135 [DllImport(Libraries.Camera, EntryPoint = "camera_set_media_packet_preview_cb")]
136 internal static extern CameraError SetMediaPacketPreviewCallback(IntPtr handle, MediaPacketPreviewCallback callback, IntPtr userData);
138 [DllImport(Libraries.Camera, EntryPoint = "camera_unset_media_packet_preview_cb")]
139 internal static extern CameraError UnsetMediaPacketPreviewCallback(IntPtr handle);
141 [DllImport(Libraries.Camera, EntryPoint = "camera_set_state_changed_cb")]
142 internal static extern CameraError SetStateChangedCallback(IntPtr handle, StateChangedCallback callback, IntPtr userData);
144 [DllImport(Libraries.Camera, EntryPoint = "camera_add_device_state_changed_cb")]
145 internal static extern CameraError SetDeviceStateChangedCallback(DeviceStateChangedCallback callback, IntPtr userData, out int callbackId);
147 [DllImport(Libraries.Camera, EntryPoint = "camera_unset_state_changed_cb")]
148 internal static extern CameraError UnsetStateChangedCallback(IntPtr handle);
150 [DllImport(Libraries.Camera, EntryPoint = "camera_remove_device_state_changed_cb")]
151 internal static extern CameraError UnsetDeviceStateChangedCallback(int cbId);
153 [DllImport(Libraries.Camera, EntryPoint = "camera_set_interrupted_cb")]
154 internal static extern CameraError SetInterruptedCallback(IntPtr handle, InterruptedCallback callback, IntPtr userData);
156 [DllImport(Libraries.Camera, EntryPoint = "camera_unset_interrupted_cb")]
157 internal static extern CameraError UnsetInterruptedCallback(IntPtr handle);
159 [DllImport(Libraries.Camera, EntryPoint = "camera_set_focus_changed_cb")]
160 internal static extern CameraError SetFocusStateChangedCallback(IntPtr handle, FocusStateChangedCallback callback, IntPtr userData);
162 [DllImport(Libraries.Camera, EntryPoint = "camera_unset_focus_changed_cb")]
163 internal static extern CameraError UnsetFocusChangedCallback(IntPtr handle);
165 [DllImport(Libraries.Camera, EntryPoint = "camera_set_error_cb")]
166 internal static extern CameraError SetErrorCallback(IntPtr handle, ErrorCallback callback, IntPtr userData);
168 [DllImport(Libraries.Camera, EntryPoint = "camera_unset_error_cb")]
169 internal static extern CameraError UnsetErrorCallback(IntPtr handle);
171 [DllImport(Libraries.Camera, EntryPoint = "camera_attr_set_hdr_capture_progress_cb")]
172 internal static extern CameraError SetHdrCaptureProgressCallback(IntPtr handle, HdrCaptureProgressCallback callback, IntPtr userData);
174 [DllImport(Libraries.Camera, EntryPoint = "camera_attr_unset_hdr_capture_progress_cb")]
175 internal static extern CameraError UnsetHdrCaptureProgressCallback(IntPtr handle);
177 [StructLayout(LayoutKind.Sequential)]
178 internal struct ImageDataStruct
180 internal IntPtr Data;
181 internal uint DataLength;
184 internal CameraPixelFormat Format;
185 internal IntPtr Exif;
186 internal uint ExifLength;
189 [StructLayout(LayoutKind.Sequential)]
190 internal struct DetectedFaceStruct
200 [StructLayout(LayoutKind.Sequential)]
201 internal struct SinglePlaneStruct
203 internal IntPtr Data;
204 internal uint DataLength;
207 [StructLayout(LayoutKind.Sequential)]
208 internal struct DoublePlaneStruct
212 internal uint YLength;
213 internal uint UVLength;
216 [StructLayout(LayoutKind.Sequential)]
217 internal struct TriplePlaneStruct
222 internal uint YLength;
223 internal uint ULength;
224 internal uint VLength;
227 [StructLayout(LayoutKind.Sequential)]
228 internal struct EncodedPlaneStruct
230 internal IntPtr Data;
231 internal uint DataLength;
234 [StructLayout(LayoutKind.Explicit)]
235 internal struct PreviewPlaneStruct
237 [FieldOffsetAttribute(0)]
238 internal SinglePlaneStruct SinglePlane;
239 [FieldOffsetAttribute(0)]
240 internal DoublePlaneStruct DoublePlane;
241 [FieldOffsetAttribute(0)]
242 internal TriplePlaneStruct TriplePlane;
243 [FieldOffsetAttribute(0)]
244 internal EncodedPlaneStruct EncodedPlane;
247 [StructLayout(LayoutKind.Sequential)]
248 internal struct CameraPreviewDataStruct
250 internal CameraPixelFormat Format;
253 internal int NumOfPlanes;
254 internal uint TimeStamp;
255 internal PreviewPlaneStruct Plane;