]> git.sesse.net Git - vlc/blobdiff - bindings/cil/src/libvlc.cs
Centralize run-time library name/path
[vlc] / bindings / cil / src / libvlc.cs
index 16a881594e30af01e4370429c4ffbd242d2af717..5e81f8461a1101c83e8353d6d87e3b9ac70b0a48 100644 (file)
@@ -36,293 +36,307 @@ namespace VideoLAN.LibVLC
      */
     internal static class LibVLC
     {
+        /* Where is the run-time?
+         * On ELF platforms, "libvlc.so.2" should be used instead. */
+        const string lib = "libvlc.dll";
+
+        /* exception.c */
+        [DllImport (lib, EntryPoint="libvlc_exception_init")]
+        public static extern void ExceptionInit (NativeException e);
+
+        [DllImport (lib, EntryPoint="libvlc_exception_clear")]
+        public static extern void ExceptionClear (NativeException e);
+
         /* core.c */
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_get_version")]
+        [DllImport (lib, EntryPoint="libvlc_get_version")]
         public static extern IntPtr GetVersion ();
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_get_compiler")]
+        [DllImport (lib, EntryPoint="libvlc_get_compiler")]
         public static extern IntPtr GetCompiler ();
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_get_changeset")]
+        [DllImport (lib, EntryPoint="libvlc_get_changeset")]
         public static extern IntPtr GetChangeset ();
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_new")]
+        [DllImport (LibVLC.lib, EntryPoint="libvlc_free")]
+        public static extern void Free (IntPtr ptr);
+
+        [DllImport (lib, EntryPoint="libvlc_new")]
         public static extern
         InstanceHandle Create (int argc, U8String[] argv, NativeException ex);
 
-        /*[DllImport ("libvlc.dll", EntryPoint="libvlc_retain")]
+        /*[DllImport (lib, EntryPoint="libvlc_retain")]
         public static extern
         void Retain (InstanceHandle h, NativeException ex);*/
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_release")]
+        [DllImport (lib, EntryPoint="libvlc_release")]
         public static extern
         void Release (IntPtr h, NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_add_intf")]
+        [DllImport (lib, EntryPoint="libvlc_add_intf")]
         public static extern
         void AddIntf (InstanceHandle h, U8String name, NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_wait")]
+        [DllImport (lib, EntryPoint="libvlc_wait")]
         public static extern
         void Wait (InstanceHandle h);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_get_vlc_instance")]
+        [DllImport (lib, EntryPoint="libvlc_get_vlc_instance")]
         public static extern
         IntPtr GetVLCInstance (InstanceHandle h);
 
         /* media.c */
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_new")]
+        [DllImport (lib, EntryPoint="libvlc_media_new")]
         public static extern
         MediaHandle MediaCreate (InstanceHandle inst, U8String mrl,
                                  NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_new_as_node")]
+        [DllImport (lib, EntryPoint="libvlc_media_new_as_node")]
         public static extern
         MediaHandle MediaCreateAsNode (InstanceHandle inst, U8String name,
                                        NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_add_option")]
+        [DllImport (lib, EntryPoint="libvlc_media_add_option")]
         public static extern
         void MediaAddOption (MediaHandle media, U8String options,
                              NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_add_option_untrusted")]
         public static extern
         void MediaAddUntrustedOption (MediaHandle media, U8String options,
                                       NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_release")]
+        [DllImport (lib, EntryPoint="libvlc_media_release")]
         public static extern
         void MediaRelease (IntPtr ptr);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_mrl")]
+        [DllImport (lib, EntryPoint="libvlc_media_get_mrl")]
         public static extern
         StringHandle MediaGetMRL (MediaHandle media, NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_duplicate")]
+        [DllImport (lib, EntryPoint="libvlc_media_duplicate")]
         public static extern
         MediaHandle MediaDuplicate (MediaHandle media);
 
-        /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_read_meta")]
+        /*[DllImport (lib, EntryPoint="libvlc_media_read_meta")]
         public static extern
         MediaHandle MediaDuplicate (MediaHandle media, int type,
                                     NativeException ex);*/
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_state")]
+        [DllImport (lib, EntryPoint="libvlc_media_get_state")]
         public static extern
         State MediaGetState (MediaHandle media, NativeException ex);
 
-        /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_subitems")]
+        /*[DllImport (lib, EntryPoint="libvlc_media_subitems")]
         public static extern
         MediaListHandle MediaSubItems (MediaHandle media, NativeException ex);*/
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_event_manager")]
+        [DllImport (lib, EntryPoint="libvlc_media_event_manager")]
         public static extern
         EventManagerHandle MediaEventManager (MediaHandle media,
                                               NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_duration")]
+        [DllImport (lib, EntryPoint="libvlc_media_get_duration")]
         public static extern
         long MediaGetDuration (MediaHandle media, NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_is_preparsed")]
+        [DllImport (lib, EntryPoint="libvlc_media_is_preparsed")]
         public static extern
         int MediaIsPreparsed (MediaHandle media, NativeException ex);
 
-        /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_set_user_data")]
+        /*[DllImport (lib, EntryPoint="libvlc_media_set_user_data")]
         public static extern
         void MediaIsPreparsed (MediaHandle media, IntPtr data,
                                NativeException ex);*/
 
-        /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_user_data")]
+        /*[DllImport (lib, EntryPoint="libvlc_media_get_user_data")]
         public static extern
         IntPtr MediaIsPreparsed (MediaHandle media, NativeException ex);*/
 
         /* media_player.c */
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_new")]
+        [DllImport (lib, EntryPoint="libvlc_media_player_new")]
         public static extern
         PlayerHandle PlayerCreate (InstanceHandle inst, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_new_from_media")]
         public static extern
         PlayerHandle PlayerCreateFromMedia (MediaHandle media,
                                             NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_release")]
+        [DllImport (lib, EntryPoint="libvlc_media_player_release")]
         public static extern
         void PlayerRelease (IntPtr ptr);
 
         /* PlayerRetain */
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_media")]
         public static extern
         void PlayerSetMedia (PlayerHandle player, MediaHandle media,
                              NativeException ex);
 
-        /*[DllImport ("libvlc.dll",
+        /*[DllImport (lib,
                     EntryPoint="libvlc_media_player_get_media")]
         public static extern
         MediaHandle PlayerGetMedia (PlayerHandle player,
                                     NativeException ex);*/
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                       EntryPoint="libvlc_media_player_event_manager")]
         public static extern
         EventManagerHandle PlayerEventManager (PlayerHandle media,
                                                NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_is_playing")]
         public static extern
         int PlayerIsPlaying (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_play")]
         public static extern
         void PlayerPlay (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_pause")]
         public static extern
         void PlayerPause (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_stop")]
         public static extern
         void PlayerStop (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_xwindow")]
         public static extern
         void PlayerSetXWindow (PlayerHandle player, int xid,
                                NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_xwindow")]
         public static extern
         int PlayerGetXWindow (PlayerHandle player);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_hwnd")]
         public static extern
         void PlayerSetHWND (PlayerHandle player, SafeHandle hwnd,
                             NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_hwnd")]
         public static extern
         SafeHandle PlayerGetHWND (PlayerHandle player);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_length")]
         public static extern
         long PlayerGetLength (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_get_time")]
+        [DllImport (lib, EntryPoint="libvlc_media_player_get_time")]
         public static extern
         long PlayerGetTime (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_set_time")]
+        [DllImport (lib, EntryPoint="libvlc_media_player_set_time")]
         public static extern
         void PlayerSetTime (PlayerHandle player, long time,
                             NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_position")]
         public static extern
         float PlayerGetPosition (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_position")]
         public static extern
         void PlayerSetPosition (PlayerHandle player, float position,
                                 NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_chapter")]
         public static extern
         int PlayerGetChapter (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_chapter")]
         public static extern
         void PlayerSetChapter (PlayerHandle player, int chapter,
                                NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_chapter_count")]
         public static extern
         int PlayerGetChapterCount (PlayerHandle player, NativeException ex);
 
         /* PlayerWillPlay */
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                 EntryPoint="libvlc_media_player_get_chapter_count_for_title")]
         public static extern
         int PlayerGetChapterCountForTitle (PlayerHandle player, int title,
                                            NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_title")]
         public static extern
         int PlayerGetTitle (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_title")]
         public static extern
         void PlayerSetTitle (PlayerHandle player, int chapter,
                              NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_title_count")]
         public static extern
         int PlayerGetTitleCount (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_next_chapter")]
         public static extern
         void PlayerNextChapter (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_previous_chapter")]
         public static extern
         void PlayerPreviousChapter (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_rate")]
         public static extern
         float PlayerGetRate (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_set_rate")]
         public static extern
         void PlayerSetRate (PlayerHandle player, float rate,
                             NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_state")]
         public static extern
         State PlayerGetState (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_get_fps")]
         public static extern
         float PlayerGetFPS (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_has_vout")]
         public static extern
         int PlayerHasVout (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_is_seekable")]
         public static extern
         int PlayerIsSeekable (PlayerHandle player, NativeException ex);
 
-        [DllImport ("libvlc.dll",
+        [DllImport (lib,
                     EntryPoint="libvlc_media_player_can_pause")]
         public static extern
         int PlayerCanPause (PlayerHandle player, NativeException ex);
@@ -331,13 +345,13 @@ namespace VideoLAN.LibVLC
         /* TODO: video, audio */
 
         /* event.c */
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_event_attach")]
+        [DllImport (lib, EntryPoint="libvlc_event_attach")]
         public static extern
         void EventAttach (EventManagerHandle manager, EventType type,
                           IntPtr callback, IntPtr user_data,
                           NativeException ex);
 
-        [DllImport ("libvlc.dll", EntryPoint="libvlc_event_detach")]
+        [DllImport (lib, EntryPoint="libvlc_event_detach")]
         public static extern
         void EventDetach (EventManagerHandle manager, EventType type,
                           IntPtr callback, IntPtr user_data,