bb93798478f6e8f2467e706be22f61f0dc6db3cb
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia / Interop / Interop.MediaVision.Common.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
20 /// <summary>
21 /// Interop APIs
22 /// </summary>
23 internal static partial class Interop
24 {
25     /// <summary>
26     /// Interop for media vision APIs
27     /// </summary>
28     internal static partial class MediaVision
29     {
30         [StructLayout(LayoutKind.Sequential)]
31         internal struct Point
32         {
33             internal int x;
34             internal int y;
35         };
36
37         [StructLayout(LayoutKind.Sequential)]
38         internal struct Rectangle
39         {
40             internal int x;
41             internal int y;
42             internal int width;
43             internal int height;
44         };
45
46         [StructLayout(LayoutKind.Sequential)]
47         internal struct Quadrangle
48         {
49             internal int x1, y1;
50             internal int x2, y2;
51             internal int x3, y3;
52             internal int x4, y4;
53         };
54
55         /// <summary>
56         /// Interop for media vision source APIs
57         /// </summary>
58         internal static partial class MediaSource
59         {
60             [DllImport(Libraries.MediaVision, EntryPoint = "mv_create_source")]
61             internal static extern int Create(out IntPtr /* mv_source_h */ source);
62
63             [DllImport(Libraries.MediaVision, EntryPoint = "mv_destroy_source")]
64             internal static extern int Destroy(IntPtr /* mv_source_h */ source);
65
66             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_fill_by_media_packet")]
67             internal static extern int FillMediaPacket(IntPtr /* mv_source_h */ source, IntPtr /* media_packet_h */ mediaPacket);
68
69             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_fill_by_buffer")]
70             internal static extern int FillBuffer(IntPtr /* mv_source_h */ source, byte[] buffer, int bufferSize, uint imageWidth, uint imageHeight, Tizen.Multimedia.Colorspace colorspace);
71
72             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_clear")]
73             internal static extern int Clear(IntPtr /* mv_source_h */ source);
74
75             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_get_buffer")]
76             internal static extern int GetBuffer(IntPtr /* mv_source_h */ source, out IntPtr buffer, out int bufferSize);
77
78             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_get_height")]
79             internal static extern int GetHeight(IntPtr /* mv_source_h */ source, out uint imageHeight);
80
81             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_get_width")]
82             internal static extern int GetWidth(IntPtr /* mv_source_h */ source, out uint imageWidth);
83
84             [DllImport(Libraries.MediaVision, EntryPoint = "mv_source_get_colorspace")]
85             internal static extern int GetColorspace(IntPtr /* mv_source_h */ source, out Tizen.Multimedia.Colorspace colorspace);
86         }
87
88         /// <summary>
89         /// Interop for engine configuration APIs
90         /// </summary>
91         internal static partial class EngineConfig
92         {
93             [DllImport(Libraries.MediaVision, EntryPoint = "mv_create_engine_config")]
94             internal static extern int Create(out IntPtr /* mv_engine_config_h */ engineConfig);
95
96             [DllImport(Libraries.MediaVision, EntryPoint = "mv_destroy_engine_config")]
97             internal static extern int Destroy(IntPtr /* mv_engine_config_h */ engineConfig);
98
99             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_set_double_attribute")]
100             internal static extern int SetDouble(IntPtr /* mv_engine_config_h */ source, string name, double value);
101
102             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_set_int_attribute")]
103             internal static extern int SetInt(IntPtr /* mv_engine_config_h */ source, string name, int value);
104
105             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_set_bool_attribute")]
106             internal static extern int SetBool(IntPtr /* mv_engine_config_h */ source, string name, bool value);
107
108             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_set_string_attribute")]
109             internal static extern int SetString(IntPtr /* mv_engine_config_h */ source, string name, string value);
110
111             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_get_double_attribute")]
112             internal static extern int GetDouble(IntPtr /* mv_engine_config_h */ source, string name, out double value);
113
114             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_get_int_attribute")]
115             internal static extern int GetInt(IntPtr /* mv_engine_config_h */ source, string name, out int value);
116
117             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_get_bool_attribute")]
118             internal static extern int GetBool(IntPtr /* mv_engine_config_h */ source, string name, out bool value);
119
120             [DllImport(Libraries.MediaVision, EntryPoint = "mv_engine_config_get_string_attribute")]
121             internal static extern int GetString(IntPtr /* mv_engine_config_h */ source, string name, out string value);
122         }
123     }
124 }