Commit b6cada70 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Cleanup media player

parent 708049c3
...@@ -138,5 +138,125 @@ namespace VideoLAN.LibVLC ...@@ -138,5 +138,125 @@ namespace VideoLAN.LibVLC
/*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_user_data")] /*[DllImport ("libvlc.dll", EntryPoint="libvlc_media_get_user_data")]
public static extern public static extern
IntPtr MediaIsPreparsed (MediaHandle media, NativeException ex);*/ IntPtr MediaIsPreparsed (MediaHandle media, NativeException ex);*/
/* media_player.c */
[DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_new")]
public static extern
PlayerHandle PlayerCreate (InstanceHandle inst, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_new_from_media")]
public static extern
PlayerHandle PlayerCreateFromMedia (MediaHandle media,
NativeException ex);
[DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_release")]
public static extern
void PlayerRelease (IntPtr ptr);
/* PlayerRetain */
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_set_media")]
public static extern
void PlayerSetMedia (PlayerHandle player, MediaHandle media,
NativeException ex);
/*[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_media")]
public static extern
MediaHandle PlayerGetMedia (PlayerHandle player,
NativeException ex);*/
/*[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_event_manager")]
public static extern
EventManagerHandle PlayerGetEventManager (PlayerHandle media,
NativeException ex);*/
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_is_playing")]
public static extern
int PlayerIsPlaying (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_play")]
public static extern
void PlayerPlay (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_pause")]
public static extern
void PlayerPause (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_stop")]
public static extern
void PlayerStop (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_set_xwindow")]
public static extern
void PlayerSetXWindow (PlayerHandle player, int xid,
NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_xwindow")]
public static extern
int PlayerGetXWindow (PlayerHandle player,
NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_set_hwnd")]
public static extern
void PlayerSetHWND (PlayerHandle player, SafeHandle hwnd,
NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_hwnd")]
public static extern
IntPtr PlayerGetHWND (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_length")]
public static extern
long PlayerGetLength (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_get_time")]
public static extern
long PlayerGetTime (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll", EntryPoint="libvlc_media_player_set_time")]
public static extern
void PlayerSetTime (PlayerHandle player, long time,
NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_position")]
public static extern
float PlayerGetPosition (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_set_position")]
public static extern
void PlayerSetPosition (PlayerHandle player, float position,
NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_chapter")]
public static extern
int PlayerGetChapter (PlayerHandle player, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_set_chapter")]
public static extern
void PlayerSetChapter (PlayerHandle player, int chapter,
NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_get_chapter_count")]
public static extern
int PlayerGetChapterCounter (PlayerHandle player, NativeException ex);
/* PlayerWillPlay */
}; };
}; };
...@@ -35,34 +35,14 @@ using System.Runtime.InteropServices; ...@@ -35,34 +35,14 @@ using System.Runtime.InteropServices;
namespace VideoLAN.LibVLC namespace VideoLAN.LibVLC
{ {
/** /**
* @brief MediaPlayerHandle: unmanaged LibVLC media player pointer * @brief PlayerHandle: unmanaged LibVLC media player pointer
* @ingroup Internals * @ingroup Internals
*/ */
internal sealed class MediaPlayerHandle : NonNullHandle internal sealed class PlayerHandle : NonNullHandle
{ {
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_new")]
internal static extern
MediaPlayerHandle Create (InstanceHandle inst, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_new_from_media")]
internal static extern
MediaPlayerHandle Create (MediaHandle media, NativeException ex);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_release")]
internal static extern void Release (IntPtr ptr);
[DllImport ("libvlc.dll",
EntryPoint="libvlc_media_player_set_media")]
internal static extern
MediaPlayerHandle SetMedia (MediaPlayerHandle player,
MediaHandle media,
NativeException ex);
protected override void Destroy () protected override void Destroy ()
{ {
Release (handle); LibVLC.PlayerRelease (handle);
} }
}; };
...@@ -71,13 +51,13 @@ namespace VideoLAN.LibVLC ...@@ -71,13 +51,13 @@ namespace VideoLAN.LibVLC
* @ingroup API * @ingroup API
* Use this class to play a media. * Use this class to play a media.
*/ */
public class MediaPlayer : BaseObject public class Player : BaseObject
{ {
internal MediaPlayerHandle Handle internal PlayerHandle Handle
{ {
get get
{ {
return handle as MediaPlayerHandle; return handle as PlayerHandle;
} }
} }
...@@ -96,35 +76,34 @@ namespace VideoLAN.LibVLC ...@@ -96,35 +76,34 @@ namespace VideoLAN.LibVLC
{ {
MediaHandle mh = (value != null) ? value.Handle : null; MediaHandle mh = (value != null) ? value.Handle : null;
MediaPlayerHandle.SetMedia (Handle, mh, null); LibVLC.PlayerSetMedia (Handle, mh, null);
media = value; media = value;
} }
} }
/** /**
* Creates an empty MediaPlayer object. * Creates a player with no medias.
* An input media will be needed before this media player can be used. * An input media will be needed before this media player can be used.
* *
* @param instance VLC instance * @param instance VLC instance
*/ */
public MediaPlayer (VLC instance) public Player (VLC instance)
{ {
this.media = null; this.media = null;
handle = MediaPlayerHandle.Create (instance.Handle, ex); handle = LibVLC.PlayerCreate (instance.Handle, ex);
ex.Raise (); Raise ();
} }
/** /**
* Creates a MediaPlayer object from a Media object. * Creates a player object for a given a media.
* This allows playing the specified media.
* *
* @param media media object * @param media media object
*/ */
public MediaPlayer (Media media) public Player (Media media)
{ {
this.media = media; this.media = media;
handle = MediaPlayerHandle.Create (media.Handle, ex); handle = LibVLC.PlayerCreateFromMedia (media.Handle, ex);
ex.Raise (); Raise ();
} }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment