2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Runtime.InteropServices;
19 using Tizen.Multimedia;
24 internal static partial class Interop
27 /// Interop for Media vision APIs
29 internal static partial class MediaVision
32 /// Interop for Image APIs
34 internal static partial class Image
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));
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));
44 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_create")]
45 internal static extern MediaVisionError Create(out IntPtr handle);
47 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_destroy")]
48 internal static extern int Destroy(IntPtr handle);
50 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_fill")]
51 internal static extern MediaVisionError Fill(IntPtr handle, IntPtr engineCfg, IntPtr source, ref Rectangle location);
53 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_fill")]
54 internal static extern MediaVisionError Fill(IntPtr handle, IntPtr engineCfg, IntPtr source, IntPtr location);
56 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_get_recognition_rate")]
57 internal static extern MediaVisionError GetRecognitionRate(IntPtr handle, out double recognitionRate);
59 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_set_label")]
60 internal static extern MediaVisionError SetLabel(IntPtr handle, int label);
62 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_get_label")]
63 internal static extern MediaVisionError GetLabel(IntPtr handle, out int label);
65 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_clone")]
66 internal static extern int Clone(IntPtr src, out IntPtr dst);
68 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_save")]
69 internal static extern MediaVisionError Save(string fileName, IntPtr handle);
71 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_object_load")]
72 internal static extern MediaVisionError Load(string fileName, out IntPtr handle);
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);
79 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
80 internal delegate void TrackedCallback(IntPtr source, IntPtr imageTrackingModel,
81 IntPtr engineCfg, IntPtr location, IntPtr userData);
85 /// Interop for ImageTrackingModel APIs
87 internal static partial class ImageTrackingModel
89 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_create")]
90 internal static extern MediaVisionError Create(out IntPtr imageTrackingModel);
92 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_set_target")]
93 internal static extern MediaVisionError SetTarget(IntPtr handle, IntPtr imageTrackingModel);
95 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_destroy")]
96 internal static extern int Destroy(IntPtr imageTrackingModel);
98 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_refresh")]
99 internal static extern MediaVisionError Refresh(IntPtr imageTrackingModel, IntPtr engineCfg);
101 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_clone")]
102 internal static extern int Clone(IntPtr src, out IntPtr dest);
104 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_save")]
105 internal static extern MediaVisionError Save(string fileName, IntPtr imageTrackingModel);
107 [DllImport(Libraries.MediaVision, EntryPoint = "mv_image_tracking_model_load")]
108 internal static extern MediaVisionError Load(string fileName, out IntPtr imageTrackingModel);