Cleanup instance and media class
[vlc.git] / bindings / cil / src / libvlc.cs
1 /**
2  * @file libvlc.cs
3  * @brief Unmanaged LibVLC APIs
4  * @ingroup Internals
5  *
6  * @defgroup Internals LibVLC internals
7  * This covers internal marshalling functions to use the native LibVLC.
8  * Only VLC developpers should need to read this section.
9  */
10
11 /**********************************************************************
12  *  Copyright (C) 2007-2009 RĂ©mi Denis-Courmont.                      *
13  *  This program is free software; you can redistribute and/or modify *
14  *  it under the terms of the GNU General Public License as published *
15  *  by the Free Software Foundation; version 2 of the license, or (at *
16  *  your option) any later version.                                   *
17  *                                                                    *
18  *  This program is distributed in the hope that it will be useful,   *
19  *  but WITHOUT ANY WARRANTY; without even the implied warranty of    *
20  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.              *
21  *  See the GNU General Public License for more details.              *
22  *                                                                    *
23  *  You should have received a copy of the GNU General Public License *
24  *  along with this program; if not, you can get it from:             *
25  *  http://www.gnu.org/copyleft/gpl.html                              *
26  **********************************************************************/
27
28 using System;
29 using System.Runtime.InteropServices;
30
31 namespace VideoLAN.LibVLC
32 {
33     /**
34      * @brief Native: unmanaged LibVLC APIs
35      * @ingroup Internals
36      */
37     internal static class LibVLC
38     {
39         /* core.c */
40         [DllImport ("libvlc.dll", EntryPoint="libvlc_get_version")]
41         public static extern IntPtr GetVersion ();
42
43         [DllImport ("libvlc.dll", EntryPoint="libvlc_get_compiler")]
44         public static extern IntPtr GetCompiler ();
45
46         [DllImport ("libvlc.dll", EntryPoint="libvlc_get_changeset")]
47         public static extern IntPtr GetChangeset ();
48
49         [DllImport ("libvlc.dll", EntryPoint="libvlc_new")]
50         public static extern
51         InstanceHandle Create (int argc, U8String[] argv, NativeException ex);
52
53         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_retain")]
54         public static extern
55         void Retain (InstanceHandle h, NativeException ex);*/
56
57         [DllImport ("libvlc.dll", EntryPoint="libvlc_release")]
58         public static extern
59         void Release (IntPtr h, NativeException ex);
60
61         [DllImport ("libvlc.dll", EntryPoint="libvlc_add_intf")]
62         public static extern
63         void AddIntf (InstanceHandle h, U8String name, NativeException ex);
64
65         [DllImport ("libvlc.dll", EntryPoint="libvlc_wait")]
66         public static extern
67         void Wait (InstanceHandle h);
68
69         [DllImport ("libvlc.dll", EntryPoint="libvlc_get_vlc_instance")]
70         public static extern
71         SafeHandle GetVLCInstance (InstanceHandle h);
72
73         /* media.c */
74         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_new")]
75         public static extern
76         MediaHandle MediaCreate (InstanceHandle inst, U8String mrl,
77                                  NativeException ex);
78
79         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_new_as_node")]
80         public static extern
81         MediaHandle MediaCreateAsNode (InstanceHandle inst, U8String name,
82                                        NativeException ex);
83
84         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_add_option")]
85         public static extern
86         void MediaAddOption (MediaHandle media, U8String options,
87                              NativeException ex);
88
89         [DllImport ("libvlc.dll",
90                     EntryPoint="libvlc_media_add_option_untrusted")]
91         public static extern
92         void MediaAddUntrustedOption (MediaHandle media, U8String options,
93                                       NativeException ex);
94
95         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_release")]
96         public static extern
97         void MediaRelease (IntPtr ptr);
98
99         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_mrl")]
100         public static extern
101         void MediaGetMRL (MediaHandle media);
102
103         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_duplicate")]
104         public static extern
105         MediaHandle MediaDuplicate (MediaHandle media);
106
107         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_read_meta")]
108         public static extern
109         MediaHandle MediaDuplicate (MediaHandle media, int type,
110                                     NativeException ex);*/
111
112         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_state")]
113         public static extern
114         int MediaGetState (MediaHandle media, NativeException ex);*/
115
116         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_subitems")]
117         public static extern
118         MediaListHandle MediaSubItems (MediaHandle media, NativeException ex);*/
119
120         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_state")]
121         public static extern
122         EventManagerHandle MediaGetEventManager (MediaHandle media,
123                                                  NativeException ex);*/
124
125         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_duration")]
126         public static extern
127         long MediaGetDuration (MediaHandle media, NativeException ex);
128
129         [DllImport ("libvlc.dll", EntryPoint="libvlc_media_is_preparsed")]
130         public static extern
131         int MediaIsPreparsed (MediaHandle media, NativeException ex);
132
133         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_set_user_data")]
134         public static extern
135         void MediaIsPreparsed (MediaHandle media, IntPtr data,
136                                NativeException ex);*/
137
138         /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_user_data")]
139         public static extern
140         IntPtr MediaIsPreparsed (MediaHandle media, NativeException ex);*/
141     };
142 };