Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.Vision / Interop / Interop.MediaVision.Image.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 /// <summary>
22 /// Interop APIs
23 /// </summary>
24 internal static partial class Interop
25 {
26     /// <summary>
27     /// Interop for Media vision APIs
28     /// </summary>
29     internal static partial class MediaVision
30     {
31         /// <summary>
32         /// Interop for Image APIs
33         /// </summary>
34         internal static partial class Image
35         {
36             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_recognize")]
37             internal static extern MediaVisionError Recognize(IntPtr source, IntPtr[] imageObjects,
38                 int numberOfObjects, IntPtr engineCfg, RecognizedCallback recognizedCb, IntPtr userData = default(IntPtr));
39
40             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_track")]
41             internal static extern MediaVisionError Track(IntPtr source, IntPtr imageTrackingModel,
42                 IntPtr engineCfg, TrackedCallback trackedCb, IntPtr userData = default(IntPtr));
43
44             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_create")]
45             internal static extern MediaVisionError Create(out IntPtr handle);
46
47             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_destroy")]
48             internal static extern int Destroy(IntPtr handle);
49
50             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_fill")]
51             internal static extern MediaVisionError Fill(IntPtr handle, IntPtr engineCfg, IntPtr source, ref Rectangle location);
52
53             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_fill")]
54             internal static extern MediaVisionError Fill(IntPtr handle, IntPtr engineCfg, IntPtr source, IntPtr location);
55
56             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_get_recognition_rate")]
57             internal static extern MediaVisionError GetRecognitionRate(IntPtr handle, out double recognitionRate);
58
59             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_set_label")]
60             internal static extern MediaVisionError SetLabel(IntPtr handle, int label);
61
62             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_get_label")]
63             internal static extern MediaVisionError GetLabel(IntPtr handle, out int label);
64
65             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_clone")]
66             internal static extern int Clone(IntPtr src, out IntPtr dst);
67
68             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_save")]
69             internal static extern MediaVisionError Save(string fileName, IntPtr handle);
70
71             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_load")]
72             internal static extern MediaVisionError Load(string fileName, out IntPtr handle);
73
74             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
75             internal delegate void RecognizedCallback(IntPtr source, IntPtr engineCfg, IntPtr imageObjects,
76                 [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4)]
77                 IntPtr[] locations, uint numberOfObjects, IntPtr userData);
78
79             [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
80             internal delegate void TrackedCallback(IntPtr source, IntPtr imageTrackingModel,
81                 IntPtr engineCfg, IntPtr location, IntPtr userData);
82         }
83
84         /// <summary>
85         /// Interop for ImageTrackingModel APIs
86         /// </summary>
87         internal static partial class ImageTrackingModel
88         {
89             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_create")]
90             internal static extern MediaVisionError Create(out IntPtr imageTrackingModel);
91
92             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_set_target")]
93             internal static extern MediaVisionError SetTarget(IntPtr handle, IntPtr imageTrackingModel);
94
95             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_destroy")]
96             internal static extern int Destroy(IntPtr imageTrackingModel);
97
98             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_refresh")]
99             internal static extern MediaVisionError Refresh(IntPtr imageTrackingModel, IntPtr engineCfg);
100
101             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_clone")]
102             internal static extern int Clone(IntPtr src, out IntPtr dest);
103
104             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_save")]
105             internal static extern MediaVisionError Save(string fileName, IntPtr imageTrackingModel);
106
107             [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_load")]
108             internal static extern MediaVisionError Load(string fileName, out IntPtr imageTrackingModel);
109         }
110     }
111 }