+++ /dev/null
-/**
- * @file libvlc.cs
- * @brief Unmanaged LibVLC APIs
- * @ingroup Internals
- *
- * @defgroup Internals LibVLC internals
- * This covers internal marshalling functions to use the native LibVLC.
- * Only VLC developers should need to read this section.
- */
-
-/**********************************************************************
- * Copyright (C) 2007-2009 RĂ©mi Denis-Courmont. *
- * This program is free software; you can redistribute and/or modify *
- * it under the terms of the GNU General Public License as published *
- * by the Free Software Foundation; version 2 of the license, or (at *
- * your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
- * See the GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, you can get it from: *
- * http://www.gnu.org/copyleft/gpl.html *
- **********************************************************************/
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace VideoLAN.LibVLC
-{
- /**
- * @brief Native: unmanaged LibVLC APIs
- * @ingroup Internals
- */
- internal enum MediaOptionFlag
- {
- OptionTrusted = 0x2,
- OptionUnique = 0x100,
- };
-
- 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 (lib, EntryPoint="libvlc_get_version")]
- public static extern IntPtr GetVersion ();
-
- [DllImport (lib, EntryPoint="libvlc_get_compiler")]
- public static extern IntPtr GetCompiler ();
-
- [DllImport (lib, EntryPoint="libvlc_get_changeset")]
- public static extern IntPtr GetChangeset ();
-
- [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 (lib, EntryPoint="libvlc_retain")]
- public static extern
- void Retain (InstanceHandle h, NativeException ex);*/
-
- [DllImport (lib, EntryPoint="libvlc_release")]
- public static extern
- void Release (IntPtr h, NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_add_intf")]
- public static extern
- void AddIntf (InstanceHandle h, U8String name, NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_wait")]
- public static extern
- void Wait (InstanceHandle h);
-
- [DllImport (lib, EntryPoint="libvlc_get_vlc_instance")]
- public static extern
- IntPtr GetVLCInstance (InstanceHandle h);
-
- /* media.c */
- [DllImport (lib, EntryPoint="libvlc_media_new")]
- public static extern
- MediaHandle MediaCreate (InstanceHandle inst, U8String mrl,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_new_as_node")]
- public static extern
- MediaHandle MediaCreateAsNode (InstanceHandle inst, U8String name,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_add_option")]
- public static extern
- void MediaAddOption (MediaHandle media, U8String options,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_add_option_flag")]
- public static extern
- void MediaAddOptionWithFlag (MediaHandle media, U8String options,
- MediaOptionFlag flag,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_release")]
- public static extern
- void MediaRelease (IntPtr ptr);
-
- [DllImport (lib, EntryPoint="libvlc_media_get_mrl")]
- public static extern
- StringHandle MediaGetMRL (MediaHandle media, NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_duplicate")]
- public static extern
- MediaHandle MediaDuplicate (MediaHandle media);
-
- [DllImport (lib, EntryPoint="libvlc_media_get_meta")]
- public static extern
- StringHandle MediaGetMeta (MediaHandle media, MetaType type,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_get_state")]
- public static extern
- State MediaGetState (MediaHandle media, NativeException ex);
-
- /*[DllImport (lib, EntryPoint="libvlc_media_subitems")]
- public static extern
- MediaListHandle MediaSubItems (MediaHandle media, NativeException ex);*/
-
- [DllImport (lib, EntryPoint="libvlc_media_event_manager")]
- public static extern
- EventManagerHandle MediaEventManager (MediaHandle media,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_get_duration")]
- public static extern
- long MediaGetDuration (MediaHandle media, NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_is_preparsed")]
- public static extern
- int MediaIsPreparsed (MediaHandle media, NativeException ex);
-
- /*[DllImport (lib, EntryPoint="libvlc_media_set_user_data")]
- public static extern
- void MediaIsPreparsed (MediaHandle media, IntPtr data,
- NativeException ex);*/
-
- /*[DllImport (lib, EntryPoint="libvlc_media_get_user_data")]
- public static extern
- IntPtr MediaIsPreparsed (MediaHandle media, NativeException ex);*/
-
- /* media_player.c */
- [DllImport (lib, EntryPoint="libvlc_media_player_new")]
- public static extern
- PlayerHandle PlayerCreate (InstanceHandle inst, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_new_from_media")]
- public static extern
- PlayerHandle PlayerCreateFromMedia (MediaHandle media,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_player_release")]
- public static extern
- void PlayerRelease (IntPtr ptr);
-
- /* PlayerRetain */
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_media")]
- public static extern
- void PlayerSetMedia (PlayerHandle player, MediaHandle media,
- NativeException ex);
-
- /*[DllImport (lib,
- EntryPoint="libvlc_media_player_get_media")]
- public static extern
- MediaHandle PlayerGetMedia (PlayerHandle player,
- NativeException ex);*/
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_event_manager")]
- public static extern
- EventManagerHandle PlayerEventManager (PlayerHandle media,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_is_playing")]
- public static extern
- int PlayerIsPlaying (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_play")]
- public static extern
- void PlayerPlay (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_pause")]
- public static extern
- void PlayerPause (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_stop")]
- public static extern
- void PlayerStop (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_xwindow")]
- public static extern
- void PlayerSetXWindow (PlayerHandle player, int xid,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_xwindow")]
- public static extern
- int PlayerGetXWindow (PlayerHandle player);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_hwnd")]
- public static extern
- void PlayerSetHWND (PlayerHandle player, SafeHandle hwnd,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_hwnd")]
- public static extern
- SafeHandle PlayerGetHWND (PlayerHandle player);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_length")]
- public static extern
- long PlayerGetLength (PlayerHandle player, NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_player_get_time")]
- public static extern
- long PlayerGetTime (PlayerHandle player, NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_media_player_set_time")]
- public static extern
- void PlayerSetTime (PlayerHandle player, long time,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_position")]
- public static extern
- float PlayerGetPosition (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_position")]
- public static extern
- void PlayerSetPosition (PlayerHandle player, float position,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_chapter")]
- public static extern
- int PlayerGetChapter (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_chapter")]
- public static extern
- void PlayerSetChapter (PlayerHandle player, int chapter,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_chapter_count")]
- public static extern
- int PlayerGetChapterCount (PlayerHandle player, NativeException ex);
-
- /* PlayerWillPlay */
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_chapter_count_for_title")]
- public static extern
- int PlayerGetChapterCountForTitle (PlayerHandle player, int title,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_title")]
- public static extern
- int PlayerGetTitle (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_title")]
- public static extern
- void PlayerSetTitle (PlayerHandle player, int chapter,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_title_count")]
- public static extern
- int PlayerGetTitleCount (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_next_chapter")]
- public static extern
- void PlayerNextChapter (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_previous_chapter")]
- public static extern
- void PlayerPreviousChapter (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_rate")]
- public static extern
- float PlayerGetRate (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_set_rate")]
- public static extern
- void PlayerSetRate (PlayerHandle player, float rate,
- NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_state")]
- public static extern
- State PlayerGetState (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_get_fps")]
- public static extern
- float PlayerGetFPS (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_has_vout")]
- public static extern
- int PlayerHasVout (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_is_seekable")]
- public static extern
- int PlayerIsSeekable (PlayerHandle player, NativeException ex);
-
- [DllImport (lib,
- EntryPoint="libvlc_media_player_can_pause")]
- public static extern
- int PlayerCanPause (PlayerHandle player, NativeException ex);
-
-
- /* TODO: video, audio */
-
- /* event.c */
- [DllImport (lib, EntryPoint="libvlc_event_attach")]
- public static extern
- void EventAttach (EventManagerHandle manager, EventType type,
- IntPtr callback, IntPtr user_data,
- NativeException ex);
-
- [DllImport (lib, EntryPoint="libvlc_event_detach")]
- public static extern
- void EventDetach (EventManagerHandle manager, EventType type,
- IntPtr callback, IntPtr user_data,
- NativeException ex);
-
- /* libvlc_event_type_name */
- };
-};