jvlc: update to the latest libvlc
authorFilippo Carone <littlejohn@videolan.org>
Tue, 24 Aug 2010 16:12:11 +0000 (18:12 +0200)
committerFilippo Carone <littlejohn@videolan.org>
Tue, 24 Aug 2010 16:12:11 +0000 (18:12 +0200)
27 files changed:
core/src/main/java/org/videolan/jvlc/Audio.java
core/src/main/java/org/videolan/jvlc/JVLC.java
core/src/main/java/org/videolan/jvlc/Logger.java
core/src/main/java/org/videolan/jvlc/LoggerIterator.java
core/src/main/java/org/videolan/jvlc/MediaDescriptor.java
core/src/main/java/org/videolan/jvlc/MediaList.java
core/src/main/java/org/videolan/jvlc/MediaListPlayer.java
core/src/main/java/org/videolan/jvlc/MediaPlayer.java
core/src/main/java/org/videolan/jvlc/VLM.java
core/src/main/java/org/videolan/jvlc/Video.java
core/src/main/java/org/videolan/jvlc/event/MediaPlayerCallback.java
core/src/main/java/org/videolan/jvlc/example/VLCExample.java
core/src/main/java/org/videolan/jvlc/internal/LibVlc.java
core/src/main/java/org/videolan/jvlc/internal/LibVlcEventType.java
core/src/main/java/org/videolan/jvlc/internal/LibVlcImpl.java
core/src/test/java/org/videolan/jvlc/JVLCTest.java
core/src/test/java/org/videolan/jvlc/MediaListTest.java
core/src/test/java/org/videolan/jvlc/internal/AbstractVLCInternalTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcCoreTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcLogTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaEventsTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaListEventsTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaListPlayerTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaListTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerEventsTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerTest.java
core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaTest.java

index b9e5246..88c4b5d 100644 (file)
@@ -68,61 +68,51 @@ public class Audio
 
     public int getTrack(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_audio_get_track(mediaInstance.getInstance(), exception);
+        return jvlc.getLibvlc().libvlc_audio_get_track(mediaInstance.getInstance());
     }
 
     public int getTrackCount(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_audio_get_track_count(mediaInstance.getInstance(), exception);
+        return jvlc.getLibvlc().libvlc_audio_get_track_count(mediaInstance.getInstance());
     }
 
     public void setTrack(MediaPlayer mediaInstance, int track)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_audio_set_track(mediaInstance.getInstance(), track, exception);
+        jvlc.getLibvlc().libvlc_audio_set_track(mediaInstance.getInstance(), track);
     }
 
-    public int getChannel()
+    public int getChannel(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_audio_get_channel(jvlc.getInstance(), exception);
+        return jvlc.getLibvlc().libvlc_audio_get_channel(mediaInstance.getInstance());
     }
 
-    public void setChannel(int channel)
+    public void setChannel(MediaPlayer mediaInstance, int channel)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_audio_set_channel(jvlc.getInstance(), channel, exception);
+        jvlc.getLibvlc().libvlc_audio_set_channel(mediaInstance.getInstance(), channel);
     }
 
-    public boolean getMute()
+    public boolean getMute(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_audio_get_mute(jvlc.getInstance(), exception) == 1 ? true : false;
+        return jvlc.getLibvlc().libvlc_audio_get_mute(mediaInstance.getInstance()) == 1 ? true : false;
     }
 
-    public void setMute(boolean value)
+    public void setMute(MediaPlayer mediaInstance, boolean value)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_audio_set_mute(jvlc.getInstance(), value ? 1 : 0, exception);
+        jvlc.getLibvlc().libvlc_audio_set_mute(mediaInstance.getInstance(), value ? 1 : 0);
     }
 
-    public void toggleMute()
+    public void toggleMute(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_audio_toggle_mute(jvlc.getInstance(), exception);
+        jvlc.getLibvlc().libvlc_audio_toggle_mute(mediaInstance.getInstance());
     }
 
-    public int getVolume()
+    public int getVolume(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_audio_get_volume(jvlc.getInstance(), exception);
+        return jvlc.getLibvlc().libvlc_audio_get_volume(mediaInstance.getInstance());
     }
 
-    public void setVolume(int volume)
+    public void setVolume(MediaPlayer mediaInstance, int volume)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_audio_set_volume(jvlc.getInstance(), volume, exception);
+        jvlc.getLibvlc().libvlc_audio_set_volume(mediaInstance.getInstance(), volume);
     }
 }
index 8f0c846..2d390e5 100644 (file)
@@ -33,7 +33,6 @@ import java.awt.Canvas;
 
 import org.videolan.jvlc.internal.LibVlc;
 import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
 
 public class JVLC
 {
@@ -71,8 +70,7 @@ public class JVLC
      */
     private LibVlcInstance createInstance(String[] args)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_new(args.length, args, exception);
+        return libvlc.libvlc_new(args.length, args);
     }
 
     public MediaPlayer play(String media)
index f2bdbd6..a3f69e5 100644 (file)
@@ -45,7 +45,7 @@ public class Logger
     {
         this.libvlc = jvlc.getLibvlc();
         libvlc_exception_t exception = new libvlc_exception_t();
-        this.logInstance = jvlc.getLibvlc().libvlc_log_open(jvlc.getInstance(), exception);
+        this.logInstance = jvlc.getLibvlc().libvlc_log_open(jvlc.getInstance());
         if (exception.b_raised == 1)
         {
             throw new RuntimeException("Native exception thrown");
index 0ed780d..97434bc 100644 (file)
@@ -28,7 +28,6 @@ package org.videolan.jvlc;
 import java.util.Iterator;
 
 import org.videolan.jvlc.internal.LibVlc.LibVlcLogIterator;
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
 import org.videolan.jvlc.internal.LibVlc.libvlc_log_message_t;
 
 
@@ -44,8 +43,7 @@ public class LoggerIterator implements Iterator<LoggerMessage>
     LoggerIterator(Logger logger)
     {
         this.logger = logger;
-        libvlc_exception_t exception = new libvlc_exception_t();
-        this.logIterator = logger.libvlc.libvlc_log_get_iterator(logger.logInstance, exception);
+        this.logIterator = logger.libvlc.libvlc_log_get_iterator(logger.logInstance);
     }
 
     /**
@@ -61,9 +59,8 @@ public class LoggerIterator implements Iterator<LoggerMessage>
      */
     public LoggerMessage next()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
         libvlc_log_message_t message = new libvlc_log_message_t();
-        logger.libvlc.libvlc_log_iterator_next(logIterator, message, exception);
+        logger.libvlc.libvlc_log_iterator_next(logIterator, message);
         LoggerMessage result = new LoggerMessage(message);
         return result;
     }
index e4d99cc..8f6841d 100644 (file)
 
 package org.videolan.jvlc;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 import org.videolan.jvlc.internal.LibVlc;
 import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
 import org.videolan.jvlc.internal.LibVlc.LibVlcMedia;
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
 
 
 public class MediaDescriptor
@@ -46,30 +48,45 @@ public class MediaDescriptor
      */
     public MediaDescriptor(JVLC jvlc, String media)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
         libvlc = jvlc.getLibvlc();
-        instance = libvlc.libvlc_media_new(jvlc.getInstance(), media, exception);
-        eventManager = libvlc.libvlc_media_event_manager(instance, exception);
+        try
+        {
+               URI uri = new URI(media);
+               if (uri.isAbsolute())
+               {
+                       instance = libvlc.libvlc_media_new_location(jvlc.getInstance(), media);
+               }
+               else
+               {
+                       instance = libvlc.libvlc_media_new_path(jvlc.getInstance(), media);
+               }
+        }
+        catch (URISyntaxException e)
+        {
+               instance = libvlc.libvlc_media_new_path(jvlc.getInstance(), media);
+               
+        }
+        finally
+        {
+               eventManager = libvlc.libvlc_media_event_manager(instance);
+        }
     }
 
     MediaDescriptor(JVLC jvlc, LibVlcMedia instance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
         libvlc = jvlc.getLibvlc();
         this.instance = instance;
-        eventManager = libvlc.libvlc_media_event_manager(instance, exception);
+        eventManager = libvlc.libvlc_media_event_manager(instance);
     }
 
     public void addOption(String option)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_add_option(instance, option, exception );
+        libvlc.libvlc_media_add_option(instance, option );
     }
     
     public String getMrl()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_get_mrl(instance, exception);
+        return libvlc.libvlc_media_get_mrl(instance);
     }
     
     public MediaPlayer getMediaPlayer()
index e950deb..83af28b 100644 (file)
@@ -50,9 +50,8 @@ public class MediaList
     public MediaList(JVLC jvlc)
     {
         this.jvlc = jvlc;
-        libvlc_exception_t exception = new libvlc_exception_t();
-        instance = jvlc.getLibvlc().libvlc_media_list_new(jvlc.getInstance(), exception);
-        eventManager = jvlc.getLibvlc().libvlc_media_list_event_manager(instance, exception);
+        instance = jvlc.getLibvlc().libvlc_media_list_new(jvlc.getInstance());
+        eventManager = jvlc.getLibvlc().libvlc_media_list_event_manager(instance);
     }
 
     /**
@@ -74,8 +73,7 @@ public class MediaList
             return;
         }
         items.add(descriptor.getMrl());
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_add_media(instance, descriptor.getInstance(), exception);
+        jvlc.getLibvlc().libvlc_media_list_add_media(instance, descriptor.getInstance());
     }
 
     /**
@@ -83,8 +81,7 @@ public class MediaList
      */
     public int size()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_media_list_count(instance, exception);
+        return jvlc.getLibvlc().libvlc_media_list_count(instance);
     }
 
     /**
@@ -93,8 +90,7 @@ public class MediaList
      */
     public int indexOf(MediaDescriptor descriptor)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_media_list_index_of_item(instance, descriptor.getInstance(), exception);
+        return jvlc.getLibvlc().libvlc_media_list_index_of_item(instance, descriptor.getInstance());
     }
 
     /**
@@ -104,7 +100,6 @@ public class MediaList
      */
     public MediaDescriptor getMediaDescriptorAtIndex(int index)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
         if (size() == 0)
         {
             throw new IndexOutOfBoundsException();
@@ -113,7 +108,7 @@ public class MediaList
         {
             throw new IndexOutOfBoundsException();
         }
-        LibVlcMedia descriptor = jvlc.getLibvlc().libvlc_media_list_item_at_index(instance, index, exception);
+        LibVlcMedia descriptor = jvlc.getLibvlc().libvlc_media_list_item_at_index(instance, index);
         return new MediaDescriptor(jvlc, descriptor);
     }
 
@@ -124,7 +119,7 @@ public class MediaList
     public boolean removeMedia(int index)
     {
         libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_remove_index(instance, index, exception);
+        jvlc.getLibvlc().libvlc_media_list_remove_index(instance, index);
         if (exception.b_raised == 0)
         {
             items.remove(index);
@@ -177,10 +172,9 @@ public class MediaList
      */
     public void insertMediaDescriptor(MediaDescriptor descriptor, int index)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
         jvlc
             .getLibvlc()
-            .libvlc_media_list_insert_media(instance, descriptor.getInstance(), index, exception);
+            .libvlc_media_list_insert_media(instance, descriptor.getInstance(), index);
     }
 
     /**
index 032008e..c0af1df 100644 (file)
@@ -40,21 +40,18 @@ public class MediaListPlayer
     
     public MediaListPlayer(JVLC jvlc)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
         this.jvlc = jvlc;
-        instance = jvlc.getLibvlc().libvlc_media_list_player_new(jvlc.getInstance(), exception);
+        instance = jvlc.getLibvlc().libvlc_media_list_player_new(jvlc.getInstance());
     }
 
     public void setMediaList(MediaList list)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_set_media_list(instance, list.getInstance(), exception);
+        jvlc.getLibvlc().libvlc_media_list_player_set_media_list(instance, list.getInstance());
     }
 
     public boolean isPlaying()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 1;
+        return jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance) == 1;
     }
 
     
@@ -63,11 +60,10 @@ public class MediaListPlayer
      */
     public void play()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_play(instance, exception);
+        jvlc.getLibvlc().libvlc_media_list_player_play(instance);
         try
         {
-            while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 0)
+            while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance) == 0)
             {
                 Thread.sleep(25);
             }
@@ -80,20 +76,17 @@ public class MediaListPlayer
 
     public void stop()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_stop(instance, exception);
+        jvlc.getLibvlc().libvlc_media_list_player_stop(instance);
     }
 
     public void pause()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_pause(instance, exception);
+        jvlc.getLibvlc().libvlc_media_list_player_pause(instance);
     }
     
     public void next()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_next(instance, exception);
+        jvlc.getLibvlc().libvlc_media_list_player_next(instance);
     }
 
     /**
@@ -111,8 +104,7 @@ public class MediaListPlayer
      */
     public void playItem(MediaDescriptor descriptor, boolean synchronous)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_play_item(instance, descriptor.getInstance(), exception);
+        jvlc.getLibvlc().libvlc_media_list_player_play_item(instance, descriptor.getInstance());
         if (!synchronous)
         {
             return;
@@ -120,7 +112,7 @@ public class MediaListPlayer
         
         try
         {
-            while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 0)
+            while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance) == 0)
             {
                 Thread.sleep(25);
             }
@@ -147,11 +139,10 @@ public class MediaListPlayer
      */
     public void playItem(int index, boolean synchronous)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_play_item_at_index(instance, index, exception);
+        jvlc.getLibvlc().libvlc_media_list_player_play_item_at_index(instance, index);
         try
         {
-            while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance, exception) == 0)
+            while (jvlc.getLibvlc().libvlc_media_list_player_is_playing(instance) == 0)
             {
                 Thread.sleep(25);
             }
@@ -164,8 +155,7 @@ public class MediaListPlayer
     
     public void setMediaInstance(MediaPlayer mediaInstance)
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_media_list_player_set_media_player(instance, mediaInstance.getInstance(), exception);        
+        jvlc.getLibvlc().libvlc_media_list_player_set_media_player(instance, mediaInstance.getInstance());        
     }
 
     /**
index 58fb41e..68d5c02 100644 (file)
@@ -36,199 +36,170 @@ import org.videolan.jvlc.internal.LibVlc;
 import org.videolan.jvlc.internal.LibVlcEventType;
 import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
 import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer;
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
 
 import com.sun.jna.Native;
 import com.sun.jna.Platform;
 
+public class MediaPlayer {
 
-public class MediaPlayer
-{
-
-    private final LibVlcMediaPlayer instance;
-
-    private final LibVlc libvlc;
-
-    private final LibVlcEventManager eventManager;
-
-    private List<MediaPlayerCallback> callbacks = new ArrayList<MediaPlayerCallback>();
-
-    private MediaDescriptor mediaDescriptor;
-
-    private volatile boolean released;
-
-    MediaPlayer(JVLC jvlc, LibVlcMediaPlayer instance)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        this.instance = instance;
-        libvlc = jvlc.getLibvlc();
-        eventManager = libvlc.libvlc_media_player_event_manager(instance, exception);
-    }
-
-    public MediaPlayer(MediaDescriptor mediaDescriptor)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc = mediaDescriptor.getLibvlc();
-        instance = libvlc.libvlc_media_player_new_from_media(mediaDescriptor.getInstance(), exception);
-        eventManager = libvlc.libvlc_media_player_event_manager(instance, exception);
-        this.mediaDescriptor = mediaDescriptor;
-    }
-
-    public MediaDescriptor getMediaDescriptor()
-    {
-        return mediaDescriptor;
-    }
-
-    public void play()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_player_play(instance, exception);
-    }
-
-    public void stop()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_player_stop(instance, exception);
-    }
-
-    public void pause()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_player_pause(instance, exception);
-    }
-
-    public long getLength()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_player_get_length(instance, exception);
-    }
-
-    public long getTime()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_player_get_time(instance, exception);
-    }
-
-    public void setTime(long time)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_player_set_time(instance, time, exception);
-    }
-
-    public float getPosition()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_player_get_position(instance, exception);
-    }
-
-    public void setPosition(float position)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_player_set_position(instance, position, exception);
-    }
-
-    public boolean willPlay()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return (libvlc.libvlc_media_player_will_play(instance, exception) == 1);
-    }
-
-    public float getRate()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_player_get_rate(instance, exception);
-    }
-
-    public void setRate(float rate)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_media_player_set_rate(instance, rate, exception);
-    }
-
-    public boolean hasVideoOutput()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return (libvlc.libvlc_media_player_has_vout(instance, exception) == 1);
-    }
-
-    public float getFPS()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_player_get_fps(instance, exception);
-    }
-
-    public boolean isPlaying()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_media_player_is_playing(instance, exception) == 1 ? true : false;
-    }
-
-    public void addListener(final MediaPlayerListener listener)
-    {
-        MediaPlayerCallback callback = new MediaPlayerCallback(this, listener);
-        libvlc_exception_t exception = new libvlc_exception_t();
-        for (LibVlcEventType event : EnumSet.range(
-            LibVlcEventType.libvlc_MediaPlayerPlaying,
-            LibVlcEventType.libvlc_MediaPlayerTimeChanged))
-        {
-            libvlc.libvlc_event_attach(eventManager, event.ordinal(), callback, null, exception);
-        }
-        callbacks.add(callback);
-    }
-
-    public void setParent(Canvas canvas)
-    {
-        long drawable = Native.getComponentID(canvas);
-        libvlc_exception_t exception = new libvlc_exception_t();
-        if (Platform.isWindows())
-        {
-            libvlc.libvlc_media_player_set_hwnd(instance, drawable, exception);
-        }
-        else
-        {
-            libvlc.libvlc_media_player_set_xwindow(instance, drawable, exception);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void finalize() throws Throwable
-    {
-        release();
-        super.finalize();
-    }
-
-    public void release()
-    {
-        if (released)
-        {
-            return;
-        }
-        released = true;
-
-        libvlc_exception_t exception = new libvlc_exception_t();
-        for (MediaPlayerCallback callback : callbacks)
-        {
-            for (LibVlcEventType event : EnumSet.range(
-                LibVlcEventType.libvlc_MediaPlayerPlaying,
-                LibVlcEventType.libvlc_MediaPlayerPositionChanged))
-            {
-                libvlc.libvlc_event_detach(eventManager, event.ordinal(), callback, null, exception);
-            }
-        }
-        libvlc.libvlc_media_player_release(instance);
-
-    }
-
-    /**
-     * Returns the instance.
-     * @return the instance
-     */
-    LibVlcMediaPlayer getInstance()
-    {
-        return instance;
-    }
+       private final LibVlcMediaPlayer instance;
+
+       private final LibVlc libvlc;
+
+       private final LibVlcEventManager eventManager;
+
+       private List<MediaPlayerCallback> callbacks = new ArrayList<MediaPlayerCallback>();
+
+       private MediaDescriptor mediaDescriptor;
+
+       private volatile boolean released;
+
+       MediaPlayer(JVLC jvlc, LibVlcMediaPlayer instance) {
+
+               this.instance = instance;
+               libvlc = jvlc.getLibvlc();
+               eventManager = libvlc.libvlc_media_player_event_manager(instance);
+       }
+
+       public MediaPlayer(MediaDescriptor mediaDescriptor) {
+
+               libvlc = mediaDescriptor.getLibvlc();
+               instance = libvlc.libvlc_media_player_new_from_media(mediaDescriptor
+                               .getInstance());
+               eventManager = libvlc.libvlc_media_player_event_manager(instance);
+               this.mediaDescriptor = mediaDescriptor;
+       }
+
+       public MediaDescriptor getMediaDescriptor() {
+               return mediaDescriptor;
+       }
+
+       public void play() {
+
+               libvlc.libvlc_media_player_play(instance);
+       }
+
+       public void stop() {
+
+               libvlc.libvlc_media_player_stop(instance);
+       }
+
+       public void pause() {
+
+               libvlc.libvlc_media_player_pause(instance);
+       }
+
+       public long getLength() {
+
+               return libvlc.libvlc_media_player_get_length(instance);
+       }
+
+       public long getTime() {
+
+               return libvlc.libvlc_media_player_get_time(instance);
+       }
+
+       public void setTime(long time) {
+
+               libvlc.libvlc_media_player_set_time(instance, time);
+       }
+
+       public float getPosition() {
+
+               return libvlc.libvlc_media_player_get_position(instance);
+       }
+
+       public void setPosition(float position) {
+
+               libvlc.libvlc_media_player_set_position(instance, position);
+       }
+
+       public boolean willPlay() {
+
+               return (libvlc.libvlc_media_player_will_play(instance) == 1);
+       }
+
+       public float getRate() {
+
+               return libvlc.libvlc_media_player_get_rate(instance);
+       }
+
+       public void setRate(float rate) {
+
+               libvlc.libvlc_media_player_set_rate(instance, rate);
+       }
+
+       public boolean hasVideoOutput() {
+
+               return (libvlc.libvlc_media_player_has_vout(instance) == 1);
+       }
+
+       public float getFPS() {
+
+               return libvlc.libvlc_media_player_get_fps(instance);
+       }
+
+       public boolean isPlaying() {
+
+               return libvlc.libvlc_media_player_is_playing(instance) == 1 ? true
+                               : false;
+       }
+
+       public void addListener(final MediaPlayerListener listener) {
+               MediaPlayerCallback callback = new MediaPlayerCallback(this, listener);
+
+               for (LibVlcEventType event : EnumSet.range(
+                               LibVlcEventType.libvlc_MediaPlayerPlaying,
+                               LibVlcEventType.libvlc_MediaPlayerTimeChanged)) {
+                       libvlc.libvlc_event_attach(eventManager, event.getEventNumber(), callback,
+                                       null);
+               }
+               callbacks.add(callback);
+       }
+
+       public void setParent(Canvas canvas) {
+               long drawable = Native.getComponentID(canvas);
+               if (Platform.isWindows()) {
+                       libvlc.libvlc_media_player_set_hwnd(instance, drawable);
+               } else {
+                       libvlc.libvlc_media_player_set_xwindow(instance, (int) drawable);
+               }
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       protected void finalize() throws Throwable {
+               release();
+               super.finalize();
+       }
+
+       public void release() {
+               if (released) {
+                       return;
+               }
+               released = true;
+
+               for (MediaPlayerCallback callback : callbacks) {
+                       for (LibVlcEventType event : EnumSet.range(
+                                       LibVlcEventType.libvlc_MediaPlayerPlaying,
+                                       LibVlcEventType.libvlc_MediaPlayerPositionChanged)) {
+                               libvlc.libvlc_event_detach(eventManager, event.getEventNumber(),
+                                               callback, null);
+                       }
+               }
+               libvlc.libvlc_media_player_release(instance);
+
+       }
+
+       /**
+        * Returns the instance.
+        * 
+        * @return the instance
+        */
+       LibVlcMediaPlayer getInstance() {
+               return instance;
+       }
 
 }
index 36cde32..c204ee2 100644 (file)
 
 package org.videolan.jvlc;
 
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
-
-
-public class VLM
-{
-
-    private JVLC jvlc;
-
-    private volatile boolean released;
-
-    public VLM(JVLC jvlc)
-    {
-        this.jvlc = jvlc;
-    }
-
-    public void addBroadcast(String name, String input, String output, String[] options, boolean enabled, boolean loop)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_add_broadcast(
-            jvlc.getInstance(),
-            name,
-            input,
-            output,
-            options == null ? 0 : options.length,
-            options,
-            enabled ? 1 : 0,
-            loop ? 1 : 0,
-            exception);
-    }
-
-    public void addVod(String name, String input, String[] options, boolean enabled, String muxer)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_add_vod(
-            jvlc.getInstance(),
-            name,
-            input,
-            options == null ? 0 : options.length,
-            options,
-            enabled ? 1 : 0,
-            muxer,
-            exception);
-    }
-
-    public void deleteMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_del_media(jvlc.getInstance(), name, exception);
-    }
-
-    public void enableMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_set_enabled(jvlc.getInstance(), name, 1, exception);
-    }
-
-    public void disableMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_set_enabled(jvlc.getInstance(), name, 0, exception);
-    }
-
-    public void setMediaOutput(String name, String output)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_set_output(jvlc.getInstance(), name, output, exception);
-    }
-
-    public void setMediaInput(String name, String input)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_set_input(jvlc.getInstance(), name, input, exception);
-    }
-
-    public void addMediaInput(String name, String input)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_add_input(jvlc.getInstance(), name, input, exception);
-    }
-
-    public void setMux(String name, String muxer)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_set_mux(jvlc.getInstance(), name, muxer, exception);
-    }
-
-    public void setMediaLoop(String media, boolean loop)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_set_loop(jvlc.getInstance(), media, loop ? 1 : 0, exception);
-    }
-
-    public void changeMedia(String name, String input, String output, String[] options, boolean enabled, boolean loop)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_change_media(
-            jvlc.getInstance(),
-            name,
-            input,
-            output,
-            options == null ? 0 : options.length,
-            options,
-            enabled ? 1 : 0,
-            loop ? 1 : 0,
-            exception);
-    }
-
-    public void playMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_play_media(jvlc.getInstance(), name, exception);
-    }
-
-    public void stopMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_stop_media(jvlc.getInstance(), name, exception);
-    }
-
-    public void pauseMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_pause_media(jvlc.getInstance(), name, exception);
-    }
-
-    public void seekMedia(String name, float percentage)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_seek_media(jvlc.getInstance(), name, percentage, exception);
-    }
-
-    public void showMedia(String name)
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_show_media(jvlc.getInstance(), name, exception);
-    }
-
-    /**
-     * Releases native resources related to VLM.
-     */
-    public void release()
-    {
-        if (released)
-        {
-            return;
-        }
-        released = true;
-        libvlc_exception_t exception = new libvlc_exception_t();
-        jvlc.getLibvlc().libvlc_vlm_release(jvlc.getInstance(), exception);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void finalize() throws Throwable
-    {
-        release();
-        super.finalize();
-    }
+
+public class VLM {
+
+       private JVLC jvlc;
+
+       private volatile boolean released;
+
+       public VLM(JVLC jvlc) {
+               this.jvlc = jvlc;
+       }
+
+       public void addBroadcast(String name, String input, String output,
+                       String[] options, boolean enabled, boolean loop) {
+               jvlc.getLibvlc().libvlc_vlm_add_broadcast(jvlc.getInstance(), name,
+                               input, output, options == null ? 0 : options.length, options,
+                               enabled ? 1 : 0, loop ? 1 : 0);
+       }
+
+       public void addVod(String name, String input, String[] options,
+                       boolean enabled, String muxer) {
+
+               jvlc.getLibvlc().libvlc_vlm_add_vod(jvlc.getInstance(), name, input,
+                               options == null ? 0 : options.length, options, enabled ? 1 : 0,
+                               muxer);
+       }
+
+       public void deleteMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_del_media(jvlc.getInstance(), name);
+       }
+
+       public void enableMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_set_enabled(jvlc.getInstance(), name, 1);
+       }
+
+       public void disableMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_set_enabled(jvlc.getInstance(), name, 0);
+       }
+
+       public void setMediaOutput(String name, String output) {
+
+               jvlc.getLibvlc()
+                               .libvlc_vlm_set_output(jvlc.getInstance(), name, output);
+       }
+
+       public void setMediaInput(String name, String input) {
+
+               jvlc.getLibvlc().libvlc_vlm_set_input(jvlc.getInstance(), name, input);
+       }
+
+       public void addMediaInput(String name, String input) {
+
+               jvlc.getLibvlc().libvlc_vlm_add_input(jvlc.getInstance(), name, input);
+       }
+
+       public void setMux(String name, String muxer) {
+
+               jvlc.getLibvlc().libvlc_vlm_set_mux(jvlc.getInstance(), name, muxer);
+       }
+
+       public void setMediaLoop(String media, boolean loop) {
+
+               jvlc.getLibvlc().libvlc_vlm_set_loop(jvlc.getInstance(), media,
+                               loop ? 1 : 0);
+       }
+
+       public void changeMedia(String name, String input, String output,
+                       String[] options, boolean enabled, boolean loop) {
+
+               jvlc.getLibvlc().libvlc_vlm_change_media(jvlc.getInstance(), name,
+                               input, output, options == null ? 0 : options.length, options,
+                               enabled ? 1 : 0, loop ? 1 : 0);
+       }
+
+       public void playMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_play_media(jvlc.getInstance(), name);
+       }
+
+       public void stopMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_stop_media(jvlc.getInstance(), name);
+       }
+
+       public void pauseMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_pause_media(jvlc.getInstance(), name);
+       }
+
+       public void seekMedia(String name, float percentage) {
+
+               jvlc.getLibvlc().libvlc_vlm_seek_media(jvlc.getInstance(), name,
+                               percentage);
+       }
+
+       public void showMedia(String name) {
+
+               jvlc.getLibvlc().libvlc_vlm_show_media(jvlc.getInstance(), name);
+       }
+
+       /**
+        * Releases native resources related to VLM.
+        */
+       public void release() {
+               if (released) {
+                       return;
+               }
+               released = true;
+
+               jvlc.getLibvlc().libvlc_vlm_release(jvlc.getInstance());
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       protected void finalize() throws Throwable {
+               release();
+               super.finalize();
+       }
 
 }
index 0dec2af..96052c6 100644 (file)
@@ -56,7 +56,7 @@ public class Video
      */
     public boolean getFullscreen(MediaPlayer media)  {
         libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_get_fullscreen(media.getInstance(), exception) == 1 ? true : false;
+        return libvlc.libvlc_get_fullscreen(media.getInstance()) == 1 ? true : false;
     }
 
     /* (non-Javadoc)
@@ -64,24 +64,24 @@ public class Video
      */
     public void getSnapshot(MediaPlayer media, String filepath, int width, int height)  {
         libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_video_take_snapshot(media.getInstance(), filepath, width, height, exception);
+        libvlc.libvlc_video_take_snapshot(media.getInstance(), 0, filepath, width, height);
     }
 
-    /* (non-Javadoc)
-     * @see org.videolan.jvlc.VideoIntf#getVideoHeight()
-     */
-    public int getHeight(MediaPlayer media)  {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_video_get_height(media.getInstance(), exception);
-    }
-
-    /* (non-Javadoc)
-     * @see org.videolan.jvlc.VideoIntf#getVideoWidth()
-     */
-    public int getWidth(MediaPlayer media)  {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        return libvlc.libvlc_video_get_width(media.getInstance(), exception);
-    }
+//    /* (non-Javadoc)
+//     * @see org.videolan.jvlc.VideoIntf#getVideoHeight()
+//     */
+//    public int getHeight(MediaPlayer media)  {
+//        libvlc_exception_t exception = new libvlc_exception_t();
+//        return libvlc.libvlc_video_get_height(media.getInstance());
+//    }
+//
+//    /* (non-Javadoc)
+//     * @see org.videolan.jvlc.VideoIntf#getVideoWidth()
+//     */
+//    public int getWidth(MediaPlayer media)  {
+//        libvlc_exception_t exception = new libvlc_exception_t();
+//        return libvlc.libvlc_video_get_width(media.getInstance());
+//    }
 
     /**
      * @deprecated
@@ -97,17 +97,17 @@ public class Video
 
     public void setFullscreen(MediaPlayer media, boolean fullscreen)  {
         libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_set_fullscreen(media.getInstance(), fullscreen? 1 : 0, exception);
+        libvlc.libvlc_set_fullscreen(media.getInstance(), fullscreen? 1 : 0);
     }
 
     public void toggleFullscreen(MediaPlayer media)  {
         libvlc_exception_t exception = new libvlc_exception_t();
-        libvlc.libvlc_toggle_fullscreen(media.getInstance(), exception);
+        libvlc.libvlc_toggle_fullscreen(media.getInstance());
     }
 
-    public Dimension getSize(MediaPlayer media)  {
-        return new Dimension (getWidth(media), getHeight(media));
-    }
+//    public Dimension getSize(MediaPlayer media)  {
+//        return new Dimension (getWidth(media), getHeight(media));
+//    }
 
     
     /**
index 849950c..daf88fb 100644 (file)
@@ -58,34 +58,34 @@ public class MediaPlayerCallback implements LibVlcCallback
      */
     public void callback(libvlc_event_t libvlc_event, Pointer userData)
     {
-        if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerPlaying.ordinal())
+        if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerPlaying.getEventNumber())
         {
             listener.playing(mediaPlayer);
         }
-        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerPaused.ordinal())
+        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerPaused.getEventNumber())
         {
             listener.paused(mediaPlayer);
         }
-        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerEndReached.ordinal())
+        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerEndReached.getEventNumber())
         {
             listener.endReached(mediaPlayer);
         }
-        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerPositionChanged.ordinal())
+        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerPositionChanged.getEventNumber())
         {
             listener.positionChanged(mediaPlayer);
         }
-        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerStopped.ordinal())
+        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerStopped.getEventNumber())
         {
             listener.stopped(mediaPlayer);
         }
-        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerTimeChanged.ordinal())
+        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerTimeChanged.getEventNumber())
         {
             libvlc_event.event_type_specific.setType(LibVlc.media_player_time_changed.class);
             LibVlc.media_player_time_changed timeChanged = (media_player_time_changed) libvlc_event.event_type_specific
                 .readField("media_player_time_changed");
             listener.timeChanged(mediaPlayer, timeChanged.new_time);
         }
-        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerEncounteredError.ordinal())
+        else if (libvlc_event.type == LibVlcEventType.libvlc_MediaPlayerEncounteredError.getEventNumber())
         {
             log.warn("Media player encountered error.");
             listener.errorOccurred(mediaPlayer);
index 1c6f7d2..8dccc1b 100644 (file)
@@ -78,9 +78,9 @@ public class VLCExample
         }
 
         Video video = new Video(jvlc);
-        System.out.print(video.getWidth(mediaPlayer));
-        System.out.print("x");
-        System.out.println(video.getHeight(mediaPlayer));
+//        System.out.print(video.getWidth(mediaPlayer));
+//        System.out.print("x");
+//        System.out.println(video.getHeight(mediaPlayer));
         System.out.print("Fullscreen... ");
         video.setFullscreen(mediaPlayer, true);
         Thread.sleep(3000);
@@ -95,18 +95,18 @@ public class VLCExample
 
         System.out.print("Muting...");
         Audio audio = new Audio(jvlc);
-        audio.setMute(true);
+        audio.setMute(mediaPlayer, true);
         Thread.sleep(3000);
         System.out.println("unmuting.");
-        audio.setMute(false);
+        audio.setMute(mediaPlayer, false);
         Thread.sleep(3000);
-        System.out.println("Volume is: " + audio.getVolume());
+        System.out.println("Volume is: " + audio.getVolume(mediaPlayer));
         System.out.print("Setting volume to 150... ");
-        audio.setVolume(150);
+        audio.setVolume(mediaPlayer, 150);
         System.out.println("done");
         System.out.println("== AUDIO INFO ==");
         System.out.println("Audio track number: " + audio.getTrack(mediaPlayer));
-        System.out.println("Audio channel info: " + audio.getChannel());
+        System.out.println("Audio channel info: " + audio.getChannel(mediaPlayer));
         Thread.sleep(3000);
         System.out.println("MEDIA PLAYER INFORMATION");
         System.out.println("--------------------------");
index dc34633..15f6891 100644 (file)
@@ -1,9 +1,10 @@
 /*****************************************************************************
  * VLC Java Bindings JNA Glue
  *****************************************************************************
- * Copyright (C) 1998-2009 the VideoLAN team
+ * Copyright (C) 1998-2010 the VideoLAN team
  *
  * Authors: Filippo Carone <filippo@carone.org>
+ *          Matthias Braeger <mbraeger@cern.ch>
  *          VLC bindings generator
  *
  *
@@ -36,7 +37,15 @@ import com.sun.jna.PointerType;
 import com.sun.jna.Structure;
 import com.sun.jna.Union;
 
-
+/**
+ * This is the libvlc wrapper class which allows to access all native libvlc
+ * functions.
+ * <br><br>
+ * Please note that this class was auto-generated with the VLC bindings
+ * generator which can be found under <code>JVLC_HOME/extras/</code>. In case
+ * you miss some functionalities you should maybe re-run that script, but this
+ * is without any warranty!
+ */
 public interface LibVlc extends Library
 {
 
@@ -349,457 +358,2159 @@ public interface LibVlc extends Library
     {
     }
 
-    void libvlc_exception_init(libvlc_exception_t p_exception);
-
-    void libvlc_exception_clear(libvlc_exception_t p_exception);
-
-    int libvlc_exception_raised(final libvlc_exception_t exception);
-    
-    String libvlc_errmsg();
-
-    void libvlc_clearerr();
-
-    LibVlcInstance libvlc_new(int argc, String[] argv, libvlc_exception_t p_e);
-
-    void libvlc_release(LibVlcInstance p_instance);
-
-    void libvlc_retain(LibVlcInstance p_instance);
-
-    int libvlc_add_intf(LibVlcInstance p_instance, String name, libvlc_exception_t p_exception);
-
-    void libvlc_wait(LibVlcInstance p_instance);
-
-    String libvlc_get_version();
-
-    String libvlc_get_compiler();
-
-    String libvlc_get_changeset();
-
-    void libvlc_free(Pointer ptr);
-
-    void libvlc_event_attach(LibVlcEventManager p_event_manager, int i_event_type, LibVlcCallback f_callback,
-        Pointer user_data, libvlc_exception_t p_e);
-
-    void libvlc_event_detach(LibVlcEventManager p_event_manager, int i_event_type, LibVlcCallback f_callback,
-        Pointer p_user_data, libvlc_exception_t p_e);
-
-    String libvlc_event_type_name(int event_type);
-
-    int libvlc_get_log_verbosity(LibVlcInstance p_instance);
-
-    void libvlc_set_log_verbosity(LibVlcInstance p_instance, int level);
-
-    LibVlcLog libvlc_log_open(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_log_close(LibVlcLog p_log);
-
-    int libvlc_log_count(LibVlcLog p_log);
-
-    void libvlc_log_clear(LibVlcLog p_log);
-
-    LibVlcLogIterator libvlc_log_get_iterator(LibVlcLog p_log, libvlc_exception_t p_e);
-
-    void libvlc_log_iterator_free(LibVlcLogIterator p_iter);
-
-    int libvlc_log_iterator_has_next(LibVlcLogIterator p_iter);
-
-    libvlc_log_message_t libvlc_log_iterator_next(LibVlcLogIterator p_iter, libvlc_log_message_t p_buffer,
-        libvlc_exception_t p_e);
-
-    LibVlcMediaDiscoverer libvlc_media_discoverer_new_from_name(LibVlcInstance p_inst, String psz_name,
-        libvlc_exception_t p_e);
-
-    void libvlc_media_discoverer_release(LibVlcMediaDiscoverer p_mdis);
-
-    String libvlc_media_discoverer_localized_name(LibVlcMediaDiscoverer p_mdis);
-
-    LibVlcMediaList libvlc_media_discoverer_media_list(LibVlcMediaDiscoverer p_mdis);
-
-    LibVlcEventManager libvlc_media_discoverer_event_manager(LibVlcMediaDiscoverer p_mdis);
-
-    int libvlc_media_discoverer_is_running(LibVlcMediaDiscoverer p_mdis);
-
-    LibVlcMedia libvlc_media_new(LibVlcInstance p_instance, String psz_mrl, libvlc_exception_t p_e);
-
-    LibVlcMedia libvlc_media_new_as_node(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e);
-
-    void libvlc_media_add_option(LibVlcMedia p_md, String ppsz_options, libvlc_exception_t p_e);
-
-    void libvlc_media_add_option_flag(LibVlcMedia p_md, String ppsz_options, MediaOption i_flags, libvlc_exception_t p_e);
-
-    void libvlc_media_retain(LibVlcMedia p_meta_desc);
-
-    void libvlc_media_release(LibVlcMedia p_meta_desc);
-
-    String libvlc_media_get_mrl(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    LibVlcMedia libvlc_media_duplicate(LibVlcMedia p_meta_desc);
-
-    String libvlc_media_get_meta(LibVlcMedia p_meta_desc, Meta e_meta, libvlc_exception_t p_e);
-
-    int libvlc_media_get_state(LibVlcMedia p_meta_desc, libvlc_exception_t p_e);
-
-    LibVlcMediaList libvlc_media_subitems(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    LibVlcEventManager libvlc_media_event_manager(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    long libvlc_media_get_duration(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    int libvlc_media_is_preparsed(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    void libvlc_media_set_user_data(LibVlcMedia p_md, Pointer p_new_user_data, libvlc_exception_t p_e);
-
-    Pointer libvlc_media_get_user_data(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    LibVlcMediaLibrary libvlc_media_library_new(LibVlcInstance p_inst, libvlc_exception_t p_e);
-
-    void libvlc_media_library_release(LibVlcMediaLibrary p_mlib);
-
-    void libvlc_media_library_retain(LibVlcMediaLibrary p_mlib);
-
-    void libvlc_media_library_load(LibVlcMediaLibrary p_mlib, libvlc_exception_t p_e);
-
-    void libvlc_media_library_save(LibVlcMediaLibrary p_mlib, libvlc_exception_t p_e);
-
-    LibVlcMediaList libvlc_media_library_media_list(LibVlcMediaLibrary p_mlib, libvlc_exception_t p_e);
-
-    LibVlcMediaList libvlc_media_list_new(LibVlcInstance p_libvlc, libvlc_exception_t p_e);
-
-    void libvlc_media_list_release(LibVlcMediaList p_ml);
-
-    void libvlc_media_list_retain(LibVlcMediaList p_ml);
-
-    void libvlc_media_list_set_media(LibVlcMediaList p_ml, LibVlcMedia p_mi, libvlc_exception_t p_e);
-
-    LibVlcMedia libvlc_media_list_media(LibVlcMediaList p_ml, libvlc_exception_t p_e);
-
-    void libvlc_media_list_add_media(LibVlcMediaList p_ml, LibVlcMedia p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_list_insert_media(LibVlcMediaList p_ml, LibVlcMedia p_mi, int i_pos, libvlc_exception_t p_e);
-
-    void libvlc_media_list_remove_index(LibVlcMediaList p_ml, int i_pos, libvlc_exception_t p_e);
-
-    int libvlc_media_list_count(LibVlcMediaList p_mlist, libvlc_exception_t p_e);
-
-    LibVlcMedia libvlc_media_list_item_at_index(LibVlcMediaList p_ml, int i_pos, libvlc_exception_t p_e);
-
-    int libvlc_media_list_index_of_item(LibVlcMediaList p_ml, LibVlcMedia p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_list_is_readonly(LibVlcMediaList p_mlist);
-
-    void libvlc_media_list_lock(LibVlcMediaList p_ml);
-
-    void libvlc_media_list_unlock(LibVlcMediaList p_ml);
-
-    LibVlcMediaListView libvlc_media_list_flat_view(LibVlcMediaList p_ml, libvlc_exception_t p_ex);
-
-    LibVlcMediaListView libvlc_media_list_hierarchical_view(LibVlcMediaList p_ml, libvlc_exception_t p_ex);
-
-    LibVlcMediaListView libvlc_media_list_hierarchical_node_view(LibVlcMediaList p_ml, libvlc_exception_t p_ex);
-
-    LibVlcEventManager libvlc_media_list_event_manager(LibVlcMediaList p_ml, libvlc_exception_t p_ex);
-
-    LibVlcMediaListPlayer libvlc_media_list_player_new(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_release(LibVlcMediaListPlayer p_mlp);
-
-    LibVlcEventManager libvlc_media_list_player_event_manager(LibVlcMediaListPlayer p_mlp);
-
-    void libvlc_media_list_player_set_media_player(LibVlcMediaListPlayer p_mlp, LibVlcMediaPlayer p_mi,
-        libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_set_media_list(LibVlcMediaListPlayer p_mlp, LibVlcMediaList p_mlist,
-        libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_play(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_pause(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    int libvlc_media_list_player_is_playing(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    int libvlc_media_list_player_get_state(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_play_item_at_index(LibVlcMediaListPlayer p_mlp, int i_index, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_play_item(LibVlcMediaListPlayer p_mlp, LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_stop(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_next(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_previous(LibVlcMediaListPlayer p_mlp, libvlc_exception_t p_e);
-
-    void libvlc_media_list_player_set_playback_mode(LibVlcMediaListPlayer p_mlp, PlaybackMode e_mode,
-        libvlc_exception_t p_e);
-
-    void libvlc_media_list_view_retain(LibVlcMediaListView p_mlv);
-
-    void libvlc_media_list_view_release(LibVlcMediaListView p_mlv);
-
-    LibVlcEventManager libvlc_media_list_view_event_manager(LibVlcMediaListView p_mlv);
-
-    int libvlc_media_list_view_count(LibVlcMediaListView p_mlv, libvlc_exception_t p_e);
-
-    LibVlcMedia libvlc_media_list_view_item_at_index(LibVlcMediaListView p_mlv, int i_index, libvlc_exception_t p_e);
-
-    LibVlcMediaListView libvlc_media_list_view_children_at_index(LibVlcMediaListView p_mlv, int index,
-        libvlc_exception_t p_e);
-
-    LibVlcMediaListView libvlc_media_list_view_children_for_item(LibVlcMediaListView p_mlv, LibVlcMedia p_md,
-        libvlc_exception_t p_e);
-
-    LibVlcMediaList libvlc_media_list_view_parent_media_list(LibVlcMediaListView p_mlv, libvlc_exception_t p_e);
-
-    LibVlcMediaPlayer libvlc_media_player_new(LibVlcInstance p_libvlc_instance, libvlc_exception_t p_e);
-
-    LibVlcMediaPlayer libvlc_media_player_new_from_media(LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    void libvlc_media_player_release(LibVlcMediaPlayer p_mi);
-
-    void libvlc_media_player_retain(LibVlcMediaPlayer p_mi);
-
-    void libvlc_media_player_set_media(LibVlcMediaPlayer p_mi, LibVlcMedia p_md, libvlc_exception_t p_e);
-
-    LibVlcMedia libvlc_media_player_get_media(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    LibVlcEventManager libvlc_media_player_event_manager(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_is_playing(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_play(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_pause(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_stop(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_set_nsobject(LibVlcMediaPlayer p_mi, Pointer drawable, libvlc_exception_t p_e);
+    ///////////////////////////////////////////////////////////////////////////
+    //                     Auto generated method stubs                       //
+    ///////////////////////////////////////////////////////////////////////////
+
+    /**
+     * Release the vlm instance related to the given libvlc_instance_t
+     *
+     * @param p_instance the instance
+     */
+    void libvlc_vlm_release(LibVlcInstance p_instance );
+
+    /**
+     * Add a broadcast, with one input.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the new broadcast
+     * @param psz_input the input MRL
+     * @param psz_output the output MRL (the parameter to the "sout" variable)
+     * @param i_options number of additional options
+     * @param ppsz_options additional options
+     * @param b_enabled boolean for enabling the new broadcast
+     * @param b_loop Should this broadcast be played in loop ?
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_add_broadcast(LibVlcInstance p_instance, String psz_name, String psz_input, String psz_output, int i_options, String[]  ppsz_options, int b_enabled, int b_loop );
+
+    /**
+     * Add a vod, with one input.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the new vod media
+     * @param psz_input the input MRL
+     * @param i_options number of additional options
+     * @param ppsz_options additional options
+     * @param b_enabled boolean for enabling the new vod
+     * @param psz_mux the muxer of the vod media
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_add_vod(LibVlcInstance  p_instance, String psz_name, String psz_input, int i_options, String[]  ppsz_options, int b_enabled, String psz_mux );
+
+    /**
+     * Delete a media (VOD or broadcast).
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to delete
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_del_media(LibVlcInstance  p_instance, String psz_name );
+
+    /**
+     * Enable or disable a media (VOD or broadcast).
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to work on
+     * @param b_enabled the new status
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_set_enabled(LibVlcInstance p_instance, String psz_name, int b_enabled );
+
+    /**
+     * Set the output for a media.
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to work on
+     * @param psz_output the output MRL (the parameter to the "sout" variable)
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_set_output(LibVlcInstance p_instance, String psz_name, String psz_output );
+
+    /**
+     * Set a media's input MRL. This will delete all existing inputs and
+     * add the specified one.
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to work on
+     * @param psz_input the input MRL
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_set_input(LibVlcInstance p_instance, String psz_name, String psz_input );
+
+    /**
+     * Add a media's input MRL. This will add the specified one.
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to work on
+     * @param psz_input the input MRL
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_add_input(LibVlcInstance p_instance, String psz_name, String psz_input );
+
+    /**
+     * Set a media's loop status.
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to work on
+     * @param b_loop the new status
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_set_loop(LibVlcInstance p_instance, String psz_name, int b_loop );
+
+    /**
+     * Set a media's vod muxer.
+     *
+     * @param p_instance the instance
+     * @param psz_name the media to work on
+     * @param psz_mux the new muxer
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_set_mux(LibVlcInstance p_instance, String psz_name, String psz_mux );
+
+    /**
+     * Edit the parameters of a media. This will delete all existing inputs and
+     * add the specified one.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the new broadcast
+     * @param psz_input the input MRL
+     * @param psz_output the output MRL (the parameter to the "sout" variable)
+     * @param i_options number of additional options
+     * @param ppsz_options additional options
+     * @param b_enabled boolean for enabling the new broadcast
+     * @param b_loop Should this broadcast be played in loop ?
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_change_media(LibVlcInstance p_instance, String psz_name, String psz_input, String psz_output, int i_options, String[] ppsz_options, int b_enabled, int b_loop );
+
+    /**
+     * Play the named broadcast.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the broadcast
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_play_media (LibVlcInstance p_instance, String psz_name );
+
+    /**
+     * Stop the named broadcast.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the broadcast
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_stop_media (LibVlcInstance p_instance, String psz_name );
+
+    /**
+     * Pause the named broadcast.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the broadcast
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_pause_media(LibVlcInstance p_instance, String psz_name );
+
+    /**
+     * Seek in the named broadcast.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the broadcast
+     * @param f_percentage the percentage to seek to
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_vlm_seek_media(LibVlcInstance p_instance, String psz_name, float f_percentage );
+
+    /**
+     * Return information about the named media as a JSON
+     * string representation.
+     *
+     * This function is mainly intended for debugging use,
+     * if you want programmatic access to the state of
+     * a vlm_media_instance_t, please use the corresponding
+     * libvlc_vlm_get_media_instance_xxx -functions.
+     * Currently there are no such functions available for
+     * vlm_media_t though.
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the media,
+     *      if the name is an empty string, all media is described
+     * @return string with information about named media, or NULL on error
+     */
+    String  libvlc_vlm_show_media(LibVlcInstance p_instance, String psz_name );
+
+    /**
+     * Get vlm_media instance position by name or instance id
+     *
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return position as float or -1. on error
+     */
+    float libvlc_vlm_get_media_instance_position(LibVlcInstance p_instance, String psz_name, int i_instance );
+
+    /**
+     * Get vlm_media instance time by name or instance id
+     *
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return time as integer or -1 on error
+     */
+    int libvlc_vlm_get_media_instance_time(LibVlcInstance p_instance, String psz_name, int i_instance );
+
+    /**
+     * Get vlm_media instance length by name or instance id
+     *
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return length of media item or -1 on error
+     */
+    int libvlc_vlm_get_media_instance_length(LibVlcInstance p_instance, String psz_name, int i_instance );
+
+    /**
+     * Get vlm_media instance playback rate by name or instance id
+     *
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return playback rate or -1 on error
+     */
+    int libvlc_vlm_get_media_instance_rate(LibVlcInstance p_instance, String psz_name, int i_instance );
+
+    /**
+     * Get vlm_media instance title number by name or instance id
+     * @bug will always return 0
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return title as number or -1 on error
+     */
+    int libvlc_vlm_get_media_instance_title(LibVlcInstance  p_instance, String  psz_name, int  i_instance);
+
+    /**
+     * Get vlm_media instance chapter number by name or instance id
+     * @bug will always return 0
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return chapter as number or -1 on error
+     */
+    int libvlc_vlm_get_media_instance_chapter(LibVlcInstance  p_instance, String  psz_name, int  i_instance);
+
+    /**
+     * Is libvlc instance seekable ?
+     * @bug will always return 0
+     * @param p_instance a libvlc instance
+     * @param psz_name name of vlm media instance
+     * @param i_instance instance id
+     * @return 1 if seekable, 0 if not, -1 if media does not exist
+     */
+    int libvlc_vlm_get_media_instance_seekable(LibVlcInstance  p_instance, String  psz_name, int  i_instance);
+
+    /**
+     * Get libvlc_event_manager from a vlm media.
+     * The p_event_manager is immutable, so you don't have to hold the lock
+     *
+     * @param p_instance a libvlc instance
+     * @return libvlc_event_manager
+     */
+    LibVlcEventManager  libvlc_vlm_get_event_manager(LibVlcInstance p_instance );
+
+
+
+    /**
+     * Create an new Media Library object
+     *
+     * @param p_instance the libvlc instance
+     * @return a new object or NULL on error
+     */
+    LibVlcMediaLibrary  libvlc_media_library_new(LibVlcInstance  p_instance );
+
+    /**
+     * Release media library object. This functions decrements the
+     * reference count of the media library object. If it reaches 0,
+     * then the object will be released.
+     *
+     * @param p_mlib media library object
+     */
+    void libvlc_media_library_release(LibVlcMediaLibrary  p_mlib );
+
+    /**
+     * Retain a reference to a media library object. This function will
+     * increment the reference counting for this object. Use
+     * libvlc_media_library_release() to decrement the reference count.
+     *
+     * @param p_mlib media library object
+     */
+    void libvlc_media_library_retain(LibVlcMediaLibrary  p_mlib );
+
+    /**
+     * Load media library.
+     *
+     * @param p_mlib media library object
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_media_library_load(LibVlcMediaLibrary  p_mlib );
+
+    /**
+     * Get media library subitems.
+     *
+     * @param p_mlib media library object
+     * @return media list subitems
+     */
+    LibVlcMediaList  libvlc_media_library_media_list(LibVlcMediaLibrary  p_mlib );
+
+
+
+    /**
+     * Discover media service by name.
+     *
+     * @param p_inst libvlc instance
+     * @param psz_name service name
+     * @return media discover object or NULL in case of error
+     */
+    LibVlcMediaDiscoverer  libvlc_media_discoverer_new_from_name(LibVlcInstance  p_inst, String  psz_name );
+
+    /**
+     * Release media discover object. If the reference count reaches 0, then
+     * the object will be released.
+     *
+     * @param p_mdis media service discover object
+     */
+    void   libvlc_media_discoverer_release(LibVlcMediaDiscoverer  p_mdis );
+
+    /**
+     * Get media service discover object its localized name.
+     *
+     * @param p_mdis media discover object
+     * @return localized name
+     */
+    String  libvlc_media_discoverer_localized_name(LibVlcMediaDiscoverer  p_mdis );
+
+    /**
+     * Get media service discover media list.
+     *
+     * @param p_mdis media service discover object
+     * @return list of media items
+     */
+    LibVlcMediaList  libvlc_media_discoverer_media_list(LibVlcMediaDiscoverer  p_mdis );
+
+    /**
+     * Get event manager from media service discover object.
+     *
+     * @param p_mdis media service discover object
+     * @return event manager object.
+     */
+    LibVlcEventManager  libvlc_media_discoverer_event_manager(LibVlcMediaDiscoverer  p_mdis );
+
+    /**
+     * Query if media service discover object is running.
+     *
+     * @param p_mdis media service discover object
+     * @return true if running, false if not
+     */
+    int libvlc_media_discoverer_is_running(LibVlcMediaDiscoverer  p_mdis );
+
+
+    /**
+     * Create an empty media list.
+     *
+     * @param p_instance libvlc instance
+     * @return empty media list, or NULL on error
+     */
+    LibVlcMediaList  libvlc_media_list_new(LibVlcInstance p_instance );
+
+    /**
+     * Release media list created with libvlc_media_list_new().
+     *
+     * @param p_ml a media list created with libvlc_media_list_new()
+     */
+    void libvlc_media_list_release(LibVlcMediaList p_ml );
+
+    /**
+     * Retain reference to a media list
+     *
+     * @param p_ml a media list created with libvlc_media_list_new()
+     */
+    void libvlc_media_list_retain(LibVlcMediaList p_ml );
+
+    /**
+     * Associate media instance with this media list instance.
+     * If another media instance was present it will be released.
+     * The libvlc_media_list_lock should NOT be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @param p_md media instance to add
+     */
+    void libvlc_media_list_set_media(LibVlcMediaList p_ml, LibVlcMedia p_md );
+
+    /**
+     * Get media instance from this media list instance. This action will increase
+     * the refcount on the media instance.
+     * The libvlc_media_list_lock should NOT be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @return media instance
+     */
+    LibVlcMedia  libvlc_media_list_media(LibVlcMediaList p_ml );
+
+    /**
+     * Add media instance to media list
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @param p_md a media instance
+     * @return 0 on success, -1 if the media list is read-only
+     */
+    int libvlc_media_list_add_media(LibVlcMediaList p_ml, LibVlcMedia p_md );
+
+    /**
+     * Insert media instance in media list on a position
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @param p_md a media instance
+     * @param i_pos position in array where to insert
+     * @return 0 on success, -1 if the media list si read-only
+     */
+    int libvlc_media_list_insert_media(LibVlcMediaList p_ml, LibVlcMedia p_md, int i_pos );
+
+    /**
+     * Remove media instance from media list on a position
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @param i_pos position in array where to insert
+     * @return 0 on success, -1 if the list is read-only or the item was not found
+     */
+    int libvlc_media_list_remove_index(LibVlcMediaList p_ml, int i_pos );
+
+    /**
+     * Get count on media list items
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @return number of items in media list
+     */
+    int libvlc_media_list_count(LibVlcMediaList p_ml );
+
+    /**
+     * List media instance in media list at a position
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @param i_pos position in array where to insert
+     * @return media instance at position i_pos, or NULL if not found.
+     * In case of success, libvlc_media_retain() is called to increase the refcount
+     * on the media.
+     */
+    LibVlcMedia  libvlc_media_list_item_at_index(LibVlcMediaList p_ml, int i_pos );
+
+    /**
+     * Find index position of List media instance in media list.
+     * Warning: the function will return the first matched position.
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     * @param p_md media list instance
+     * @return position of media instance
+     */
+    int libvlc_media_list_index_of_item(LibVlcMediaList p_ml, LibVlcMedia p_md );
+
+    /**
+     * This indicates if this media list is read-only from a user point of view
+     *
+     * @param p_ml media list instance
+     * @return 0 on readonly, 1 on readwrite
+     */
+    int libvlc_media_list_is_readonly(LibVlcMediaList  p_ml );
+
+    /**
+     * Get lock on media list items
+     *
+     * @param p_ml a media list instance
+     */
+    void libvlc_media_list_lock(LibVlcMediaList p_ml );
+
+    /**
+     * Release lock on media list items
+     * The libvlc_media_list_lock should be held upon entering this function.
+     *
+     * @param p_ml a media list instance
+     */
+    void libvlc_media_list_unlock(LibVlcMediaList p_ml );
+
+    /**
+     * Get libvlc_event_manager from this media list instance.
+     * The p_event_manager is immutable, so you don't have to hold the lock
+     *
+     * @param p_ml a media list instance
+     * @return libvlc_event_manager
+     */
+    LibVlcEventManager  libvlc_media_list_event_manager(LibVlcMediaList p_ml );
+
+
+    /**
+     * Create an empty Media Player object
+     *
+     * @param p_libvlc_instance the libvlc instance in which the Media Player
+     *        should be created.
+     * @return a new media player object, or NULL on error.
+     */
+    LibVlcMediaPlayer  libvlc_media_player_new(LibVlcInstance p_libvlc_instance );
+
+    /**
+     * Create a Media Player object from a Media
+     *
+     * @param p_md the media. Afterwards the p_md can be safely
+     *        destroyed.
+     * @return a new media player object, or NULL on error.
+     */
+    LibVlcMediaPlayer  libvlc_media_player_new_from_media(LibVlcMedia p_md );
+
+    /**
+     * Release a media_player after use
+     * Decrement the reference count of a media player object. If the
+     * reference count is 0, then libvlc_media_player_release() will
+     * release the media player object. If the media player object
+     * has been released, then it should not be used again.
+     *
+     * @param p_mi the Media Player to free
+     */
+    void libvlc_media_player_release(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Retain a reference to a media player object. Use
+     * libvlc_media_player_release() to decrement reference count.
+     *
+     * @param p_mi media player object
+     */
+    void libvlc_media_player_retain(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set the media that will be used by the media_player. If any,
+     * previous md will be released.
+     *
+     * @param p_mi the Media Player
+     * @param p_md the Media. Afterwards the p_md can be safely
+     *        destroyed.
+     */
+    void libvlc_media_player_set_media(LibVlcMediaPlayer p_mi, LibVlcMedia p_md );
+
+    /**
+     * Get the media used by the media_player.
+     *
+     * @param p_mi the Media Player
+     * @return the media associated with p_mi, or NULL if no
+     *         media is associated
+     */
+    LibVlcMedia  libvlc_media_player_get_media(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the Event Manager from which the media player send event.
+     *
+     * @param p_mi the Media Player
+     * @return the event manager associated with p_mi
+     */
+    LibVlcEventManager  libvlc_media_player_event_manager (LibVlcMediaPlayer p_mi );
+
+    /**
+     * is_playing
+     *
+     * @param p_mi the Media Player
+     * @return 1 if the media player is playing, 0 otherwise
+     */
+    int libvlc_media_player_is_playing (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Play
+     *
+     * @param p_mi the Media Player
+     * @return 0 if playback started (and was already started), or -1 on error.
+     */
+    int libvlc_media_player_play (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Pause or resume (no effect if there is no media)
+     *
+     * @param mp the Media Player
+     * @param do_pause play/resume if zero, pause if non-zero
+     * \version LibVLC 1.1.1 or later
+     */
+    void libvlc_media_player_set_pause (LibVlcMediaPlayer mp, int do_pause );
+
+    /**
+     * Toggle pause (no effect if there is no media)
+     *
+     * @param p_mi the Media Player
+     */
+    void libvlc_media_player_pause (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Stop (no effect if there is no media)
+     *
+     * @param p_mi the Media Player
+     */
+    void libvlc_media_player_stop (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set callbacks and private data to render decoded video to a custom area
+     * in memory. Use libvlc_video_set_format() to configure the decoded format.
+     *
+     * Whenever a new video frame needs to be decoded, the lock callback is
+     * invoked. Depending on the video chroma, one or three pixel planes of
+     * adequate dimensions must be returned via the second parameter. Those
+     * planes must be aligned on 32-bytes boundaries.
+     *
+     * When the video frame is decoded, the unlock callback is invoked. The
+     * second parameter to the callback corresponds is the return value of the
+     * lock callback. The third parameter conveys the pixel planes for convenience.
+     *
+     * When the video frame needs to be shown, as determined by the media playback
+     * clock, the display callback is invoked. The second parameter also conveys
+     * the return value from the lock callback.
+     *
+     * @param mp the media player
+     * @param lock callback to allocate video memory
+     * @param unlock callback to release video memory
+     * @param opaque private pointer for the three callbacks (as first parameter)
+     * \version LibVLC 1.1.1 or later
+     */
+    //    void libvlc_video_set_callbacks(LibVlcMediaPlayer mp, Pointer (*lock) (Pointer opaque, Pointer *plane), void (*unlock) (Pointer opaque, Pointer picture, Pointer *plane), void (*display) (Pointer opaque, Pointer picture), Pointer opaque );
+
+    /**
+     * Set decoded video chroma and dimensions. This only works in combination with
+     * libvlc_video_set_callbacks().
+     *
+     * @param mp the media player
+     * @param chroma a four-characters string identifying the chroma
+     *               (e.g. "RV32" or "I420")
+     * @param width pixel width
+     * @param height pixel height
+     * @param pitch line pitch (in bytes)
+     * \version LibVLC 1.1.1 or later
+     */
+    void libvlc_video_set_format(LibVlcMediaPlayer mp, String chroma, int  width, int  height, int  pitch );
+
+    /**
+     * Set the NSView handler where the media player should render its video output.
+     *
+     * Use the vout called "macosx".
+     *
+     * The drawable is an NSObject that follow the VLCOpenGLVideoViewEmbedding
+     * protocol:
+     *
+     * @begincode
+     * \@protocol VLCOpenGLVideoViewEmbedding <NSObject>
+     * - (void)addVoutSubview:(NSView *)view;
+     * - (void)removeVoutSubview:(NSView *)view;
+     * \@end
+     * @endcode
+     *
+     * Or it can be an NSView object.
+     *
+     * If you want to use it along with Qt4 see the QMacCocoaViewContainer. Then
+     * the following code should work:
+     * @begincode
+     * {
+     *     NSView *video = [[NSView alloc] init];
+     *     QMacCocoaViewContainer *container = new QMacCocoaViewContainer(video, parent);
+     *     libvlc_media_player_set_nsobject(mp, video);
+     *     [video release];
+     * }
+     * @endcode
+     *
+     * You can find a live example in VLCVideoView in VLCKit.framework.
+     *
+     * @param p_mi the Media Player
+     * @param drawable the drawable that is either an NSView or an object following
+     * the VLCOpenGLVideoViewEmbedding protocol.
+     */
+    void libvlc_media_player_set_nsobject (LibVlcMediaPlayer p_mi, Pointer  drawable );
+
+    /**
+     * Get the NSView handler previously set with libvlc_media_player_set_nsobject().
+     *
+     * @param p_mi the Media Player
+     * @return the NSView handler or 0 if none where set
+     */
+    Pointer  libvlc_media_player_get_nsobject (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set the agl handler where the media player should render its video output.
+     *
+     * @param p_mi the Media Player
+     * @param drawable the agl handler
+     */
+    void libvlc_media_player_set_agl (LibVlcMediaPlayer p_mi, int  drawable );
+
+    /**
+     * Get the agl handler previously set with libvlc_media_player_set_agl().
+     *
+     * @param p_mi the Media Player
+     * @return the agl handler or 0 if none where set
+     */
+    int  libvlc_media_player_get_agl (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set an X Window System drawable where the media player should render its
+     * video output. If LibVLC was built without X11 output support, then this has
+     * no effects.
+     *
+     * The specified identifier must correspond to an existing Input/Output class
+     * X11 window. Pixmaps are <b>not</b> supported. The caller shall ensure that
+     * the X11 server is the same as the one the VLC instance has been configured
+     * with.
+     * If XVideo is <b>not</b> used, it is assumed that the drawable has the
+     * following properties in common with the default X11 screen: depth, scan line
+     * pad, black pixel. This is a bug.
+     *
+     * @param p_mi the Media Player
+     * @param drawable the ID of the X window
+     */
+    void libvlc_media_player_set_xwindow (LibVlcMediaPlayer p_mi, int  drawable );
+
+    /**
+     * Get the X Window System window identifier previously set with
+     * libvlc_media_player_set_xwindow(). Note that this will return the identifier
+     * even if VLC is not currently using it (for instance if it is playing an
+     * audio-only input).
+     *
+     * @param p_mi the Media Player
+     * @return an X window ID, or 0 if none where set.
+     */
+    int  libvlc_media_player_get_xwindow (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set a Win32/Win64 API window handle (HWND) where the media player should
+     * render its video output. If LibVLC was built without Win32/Win64 API output
+     * support, then this has no effects.
+     *
+     * @param p_mi the Media Player
+     * @param drawable windows handle of the drawable
+     */
+    void libvlc_media_player_set_hwnd (LibVlcMediaPlayer p_mi, long drawable );
+
+    /**
+     * Get the Windows API window handle (HWND) previously set with
+     * libvlc_media_player_set_hwnd(). The handle will be returned even if LibVLC
+     * is not currently outputting any video to it.
+     *
+     * @param p_mi the Media Player
+     * @return a window handle or NULL if there are none.
+     */
+    Pointer libvlc_media_player_get_hwnd (LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the current movie length (in ms).
+     *
+     * @param p_mi the Media Player
+     * @return the movie length (in ms), or -1 if there is no media.
+     */
+    long  libvlc_media_player_get_length(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the current movie time (in ms).
+     *
+     * @param p_mi the Media Player
+     * @return the movie time (in ms), or -1 if there is no media.
+     */
+    long  libvlc_media_player_get_time(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set the movie time (in ms). This has no effect if no media is being played.
+     * Not all formats and protocols support this.
+     *
+     * @param p_mi the Media Player
+     * @param i_time the movie time (in ms).
+     */
+    void libvlc_media_player_set_time(LibVlcMediaPlayer p_mi, long  i_time );
+
+    /**
+     * Get movie position.
+     *
+     * @param p_mi the Media Player
+     * @return movie position, or -1. in case of error
+     */
+    float libvlc_media_player_get_position(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set movie position. This has no effect if playback is not enabled.
+     * This might not work depending on the underlying input format and protocol.
+     *
+     * @param p_mi the Media Player
+     * @param f_pos the position
+     */
+    void libvlc_media_player_set_position(LibVlcMediaPlayer p_mi, float f_pos );
+
+    /**
+     * Set movie chapter (if applicable).
+     *
+     * @param p_mi the Media Player
+     * @param i_chapter chapter number to play
+     */
+    void libvlc_media_player_set_chapter(LibVlcMediaPlayer p_mi, int i_chapter );
+
+    /**
+     * Get movie chapter.
+     *
+     * @param p_mi the Media Player
+     * @return chapter number currently playing, or -1 if there is no media.
+     */
+    int libvlc_media_player_get_chapter(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get movie chapter count
+     *
+     * @param p_mi the Media Player
+     * @return number of chapters in movie, or -1.
+     */
+    int libvlc_media_player_get_chapter_count(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Is the player able to play
+     *
+     * @param p_mi the Media Player
+     * @return boolean
+     */
+    int libvlc_media_player_will_play(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get title chapter count
+     *
+     * @param p_mi the Media Player
+     * @param i_title title
+     * @return number of chapters in title, or -1
+     */
+    int libvlc_media_player_get_chapter_count_for_title(LibVlcMediaPlayer p_mi, int i_title );
+
+    /**
+     * Set movie title
+     *
+     * @param p_mi the Media Player
+     * @param i_title title number to play
+     */
+    void libvlc_media_player_set_title(LibVlcMediaPlayer p_mi, int i_title );
+
+    /**
+     * Get movie title
+     *
+     * @param p_mi the Media Player
+     * @return title number currently playing, or -1
+     */
+    int libvlc_media_player_get_title(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get movie title count
+     *
+     * @param p_mi the Media Player
+     * @return title number count, or -1
+     */
+    int libvlc_media_player_get_title_count(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set previous chapter (if applicable)
+     *
+     * @param p_mi the Media Player
+     */
+    void libvlc_media_player_previous_chapter(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set next chapter (if applicable)
+     *
+     * @param p_mi the Media Player
+     */
+    void libvlc_media_player_next_chapter(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the requested movie play rate.
+     * @warning Depending on the underlying media, the requested rate may be
+     * different from the real playback rate.
+     *
+     * @param p_mi the Media Player
+     * @return movie play rate
+     */
+    float libvlc_media_player_get_rate(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set movie play rate
+     *
+     * @param p_mi the Media Player
+     * @param rate movie play rate to set
+     * @return -1 if an error was detected, 0 otherwise (but even then, it might
+     * not actually work depending on the underlying media protocol)
+     */
+    int libvlc_media_player_set_rate(LibVlcMediaPlayer p_mi, float rate );
+
+    /**
+     * Get current movie state
+     *
+     * @param p_mi the Media Player
+     * @return the current state of the media player (playing, paused, ...) @see libvlc_state_t
+     */
+    int  libvlc_media_player_get_state(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get movie fps rate
+     *
+     * @param p_mi the Media Player
+     * @return frames per second (fps) for this playing movie, or 0 if unspecified
+     */
+    float libvlc_media_player_get_fps(LibVlcMediaPlayer p_mi );
+
+    /**
+     * How many video outputs does this media player have?
+     *
+     * @param p_mi the media player
+     * @return the number of video outputs
+     */
+    int  libvlc_media_player_has_vout(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Is this media player seekable?
+     *
+     * @param p_mi the media player
+     * @return true if the media player can seek
+     */
+    int libvlc_media_player_is_seekable(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Can this media player be paused?
+     *
+     * @param p_mi the media player
+     * @return true if the media player can pause
+     */
+    int libvlc_media_player_can_pause(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Display the next frame (if supported)
+     *
+     * @param p_mi the media player
+     */
+    void libvlc_media_player_next_frame(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Release (free) libvlc_track_description_t
+     *
+     * @param p_track_description the structure to release
+     */
+    void libvlc_track_description_release(LibVlcTrackDescription p_track_description );
+
+    /**
+     * Toggle fullscreen status on non-embedded video outputs.
+     *
+     * @warning The same limitations applies to this function
+     * as to libvlc_set_fullscreen().
+     *
+     * @param p_mi the media player
+     */
+    void libvlc_toggle_fullscreen(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Enable or disable fullscreen.
+     *
+     * @warning With most window managers, only a top-level windows can be in
+     * full-screen mode. Hence, this function will not operate properly if
+     * libvlc_media_player_set_xwindow() was used to embed the video in a
+     * non-top-level window. In that case, the embedding window must be reparented
+     * to the root window <b>before</b> fullscreen mode is enabled. You will want
+     * to reparent it back to its normal parent when disabling fullscreen.
+     *
+     * @param p_mi the media player
+     * @param b_fullscreen boolean for fullscreen status
+     */
+    void libvlc_set_fullscreen(LibVlcMediaPlayer p_mi, int b_fullscreen );
+
+    /**
+     * Get current fullscreen status.
+     *
+     * @param p_mi the media player
+     * @return the fullscreen status (boolean)
+     */
+    int libvlc_get_fullscreen(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Enable or disable key press events handling, according to the LibVLC hotkeys
+     * configuration. By default and for historical reasons, keyboard events are
+     * handled by the LibVLC video widget.
+     *
+     * \note On X11, there can be only one subscriber for key press and mouse
+     * click events per window. If your application has subscribed to those events
+     * for the X window ID of the video widget, then LibVLC will not be able to
+     * handle key presses and mouse clicks in any case.
+     *
+     * \warning This function is only implemented for X11 and Win32 at the moment.
+     *
+     * @param p_mi the media player
+     * @param on true to handle key press events, false to ignore them.
+     */
+    void libvlc_video_set_key_input(LibVlcMediaPlayer p_mi, int  on );
+
+    /**
+     * Enable or disable mouse click events handling. By default, those events are
+     * handled. This is needed for DVD menus to work, as well as a few video
+     * filters such as "puzzle".
+     *
+     * \note See also libvlc_video_set_key_input().
+     *
+     * \warning This function is only implemented for X11 and Win32 at the moment.
+     *
+     * @param p_mi the media player
+     * @param on true to handle mouse click events, false to ignore them.
+     */
+    void libvlc_video_set_mouse_input(LibVlcMediaPlayer p_mi, int  on );
+
+    /**
+     * Get the pixel dimensions of a video.
+     *
+     * @param p_mi media player
+     * @param num number of the video (starting from, and most commonly 0)
+     * @param px pointer to get the pixel width [OUT]
+     * @param py pointer to get the pixel height [OUT]
+     * @return 0 on success, -1 if the specified video does not exist
+     */
+    int libvlc_video_get_size(LibVlcMediaPlayer p_mi, int  num, Pointer px, Pointer py );
+
+    /**
+     * Get the mouse pointer coordinates over a video.
+     * Coordinates are expressed in terms of the decoded video resolution,
+     * <b>not</b> in terms of pixels on the screen/viewport (to get the latter,
+     * you can query your windowing system directly).
+     *
+     * Either of the coordinates may be negative or larger than the corresponding
+     * dimension of the video, if the cursor is outside the rendering area.
+     *
+     * @warning The coordinates may be out-of-date if the pointer is not located
+     * on the video rendering area. LibVLC does not track the pointer if it is
+     * outside of the video widget.
+     *
+     * @note LibVLC does not support multiple pointers (it does of course support
+     * multiple input devices sharing the same pointer) at the moment.
+     *
+     * @param p_mi media player
+     * @param num number of the video (starting from, and most commonly 0)
+     * @param px pointer to get the abscissa [OUT]
+     * @param py pointer to get the ordinate [OUT]
+     * @return 0 on success, -1 if the specified video does not exist
+     */
+    int libvlc_video_get_cursor(LibVlcMediaPlayer p_mi, int  num, Pointer px, Pointer py );
+
+    /**
+     * Get the current video scaling factor.
+     * See also libvlc_video_set_scale().
+     *
+     * @param p_mi the media player
+     * @return the currently configured zoom factor, or 0. if the video is set
+     * to fit to the output window/drawable automatically.
+     */
+    float libvlc_video_get_scale(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set the video scaling factor. That is the ratio of the number of pixels on
+     * screen to the number of pixels in the original decoded video in each
+     * dimension. Zero is a special value; it will adjust the video to the output
+     * window/drawable (in windowed mode) or the entire screen.
+     *
+     * Note that not all video outputs support scaling.
+     *
+     * @param p_mi the media player
+     * @param f_factor the scaling factor, or zero
+     */
+    void libvlc_video_set_scale(LibVlcMediaPlayer p_mi, float f_factor );
+
+    /**
+     * Get current video aspect ratio.
+     *
+     * @param p_mi the media player
+     * @return the video aspect ratio or NULL if unspecified
+     * (the result must be released with free()).
+     */
+    String libvlc_video_get_aspect_ratio(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set new video aspect ratio.
+     *
+     * @param p_mi the media player
+     * @param psz_aspect new video aspect-ratio or NULL to reset to default
+     * \note Invalid aspect ratios are ignored.
+     */
+    void libvlc_video_set_aspect_ratio(LibVlcMediaPlayer p_mi, String psz_aspect );
+
+    /**
+     * Get current video subtitle.
+     *
+     * @param p_mi the media player
+     * @return the video subtitle selected, or -1 if none
+     */
+    int libvlc_video_get_spu(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the number of available video subtitles.
+     *
+     * @param p_mi the media player
+     * @return the number of available video subtitles
+     */
+    int libvlc_video_get_spu_count(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the description of available video subtitles.
+     *
+     * @param p_mi the media player
+     * @return list containing description of available video subtitles
+     */
+    LibVlcTrackDescription  libvlc_video_get_spu_description(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set new video subtitle.
+     *
+     * @param p_mi the media player
+     * @param i_spu new video subtitle to select
+     * @return 0 on success, -1 if out of range
+     */
+    int libvlc_video_set_spu(LibVlcMediaPlayer p_mi, int  i_spu );
+
+    /**
+     * Set new video subtitle file.
+     *
+     * @param p_mi the media player
+     * @param psz_subtitle new video subtitle file
+     * @return the success status (boolean)
+     */
+    int libvlc_video_set_subtitle_file(LibVlcMediaPlayer p_mi, String psz_subtitle );
+
+    /**
+     * Get the description of available titles.
+     *
+     * @param p_mi the media player
+     * @return list containing description of available titles
+     */
+    LibVlcTrackDescription  libvlc_video_get_title_description(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the description of available chapters for specific title.
+     *
+     * @param p_mi the media player
+     * @param i_title selected title
+     * @return list containing description of available chapter for title i_title
+     */
+    LibVlcTrackDescription  libvlc_video_get_chapter_description(LibVlcMediaPlayer p_mi, int i_title );
+
+    /**
+     * Get current crop filter geometry.
+     *
+     * @param p_mi the media player
+     * @return the crop filter geometry or NULL if unset
+     */
+    String libvlc_video_get_crop_geometry(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set new crop filter geometry.
+     *
+     * @param p_mi the media player
+     * @param psz_geometry new crop filter geometry (NULL to unset)
+     */
+    void libvlc_video_set_crop_geometry(LibVlcMediaPlayer p_mi, String psz_geometry );
+
+    /**
+     * Get current teletext page requested.
+     *
+     * @param p_mi the media player
+     * @return the current teletext page requested.
+     */
+    int libvlc_video_get_teletext(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set new teletext page to retrieve.
+     *
+     * @param p_mi the media player
+     * @param i_page teletex page number requested
+     */
+    void libvlc_video_set_teletext(LibVlcMediaPlayer p_mi, int i_page );
+
+    /**
+     * Toggle teletext transparent status on video output.
+     *
+     * @param p_mi the media player
+     */
+    void libvlc_toggle_teletext(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get number of available video tracks.
+     *
+     * @param p_mi media player
+     * @return the number of available video tracks (int)
+     */
+    int libvlc_video_get_track_count(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the description of available video tracks.
+     *
+     * @param p_mi media player
+     * @return list with description of available video tracks, or NULL on error
+     */
+    LibVlcTrackDescription  libvlc_video_get_track_description(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get current video track.
+     *
+     * @param p_mi media player
+     * @return the video track (int) or -1 if none
+     */
+    int libvlc_video_get_track(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set video track.
+     *
+     * @param p_mi media player
+     * @param i_track the track (int)
+     * @return 0 on success, -1 if out of range
+     */
+    int libvlc_video_set_track(LibVlcMediaPlayer p_mi, int i_track );
+
+    /**
+     * Take a snapshot of the current video window.
+     *
+     * If i_width AND i_height is 0, original size is used.
+     * If i_width XOR i_height is 0, original aspect-ratio is preserved.
+     *
+     * @param p_mi media player instance
+     * @param num number of video output (typically 0 for the first/only one)
+     * @param psz_filepath the path where to save the screenshot to
+     * @param i_width the snapshot's width
+     * @param i_height the snapshot's height
+     * @return 0 on success, -1 if the video was not found
+     */
+    int libvlc_video_take_snapshot(LibVlcMediaPlayer p_mi, int  num, String psz_filepath, int  i_width, int  i_height );
+
+    /**
+     * Enable or disable deinterlace filter
+     *
+     * @param p_mi libvlc media player
+     * @param psz_mode type of deinterlace filter, NULL to disable
+     */
+    void libvlc_video_set_deinterlace(LibVlcMediaPlayer p_mi, String psz_mode );
+
+    /**
+     * Get an integer marquee option value
+     *
+     * @param p_mi libvlc media player
+     * @param option marq option to get @see libvlc_video_marquee_int_option_t
+     */
+    int libvlc_video_get_marquee_int(LibVlcMediaPlayer p_mi, int  option );
+
+    /**
+     * Get a string marquee option value
+     *
+     * @param p_mi libvlc media player
+     * @param option marq option to get @see libvlc_video_marquee_string_option_t
+     */
+    String libvlc_video_get_marquee_string(LibVlcMediaPlayer p_mi, int  option );
+
+    /**
+     * Enable, disable or set an integer marquee option
+     *
+     * Setting libvlc_marquee_Enable has the side effect of enabling (arg !0)
+     * or disabling (arg 0) the marq filter.
+     *
+     * @param p_mi libvlc media player
+     * @param option marq option to set @see libvlc_video_marquee_int_option_t
+     * @param i_val marq option value
+     */
+    void libvlc_video_set_marquee_int(LibVlcMediaPlayer p_mi, int  option, int i_val );
+
+    /**
+     * Set a marquee string option
+     *
+     * @param p_mi libvlc media player
+     * @param option marq option to set @see libvlc_video_marquee_string_option_t
+     * @param psz_text marq option value
+     */
+    void libvlc_video_set_marquee_string(LibVlcMediaPlayer p_mi, int  option, String psz_text );
+
+    /**
+     * Get integer logo option.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option logo option to get, values of libvlc_video_logo_option_t
+     */
+    int libvlc_video_get_logo_int(LibVlcMediaPlayer p_mi, int  option );
+
+    /**
+     * Set logo option as integer. Options that take a different type value
+     * are ignored.
+     * Passing libvlc_logo_enable as option value has the side effect of
+     * starting (arg !0) or stopping (arg 0) the logo filter.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option logo option to set, values of libvlc_video_logo_option_t
+     * @param value logo option value
+     */
+    void libvlc_video_set_logo_int(LibVlcMediaPlayer p_mi, int  option, int value );
+
+    /**
+     * Set logo option as string. Options that take a different type value
+     * are ignored.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option logo option to set, values of libvlc_video_logo_option_t
+     * @param psz_value logo option value
+     */
+    void libvlc_video_set_logo_string(LibVlcMediaPlayer p_mi, int  option, String psz_value );
+
+    /**
+     * Get integer adjust option.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option adjust option to get, values of libvlc_video_adjust_option_t
+     * \version LibVLC 1.1.1 and later.
+     */
+    int libvlc_video_get_adjust_int(LibVlcMediaPlayer p_mi, int  option );
+
+    /**
+     * Set adjust option as integer. Options that take a different type value
+     * are ignored.
+     * Passing libvlc_adjust_enable as option value has the side effect of
+     * starting (arg !0) or stopping (arg 0) the adjust filter.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option adust option to set, values of libvlc_video_adjust_option_t
+     * @param value adjust option value
+     * \version LibVLC 1.1.1 and later.
+     */
+    void libvlc_video_set_adjust_int(LibVlcMediaPlayer p_mi, int  option, int value );
+
+    /**
+     * Get float adjust option.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option adjust option to get, values of libvlc_video_adjust_option_t
+     * \version LibVLC 1.1.1 and later.
+     */
+    float libvlc_video_get_adjust_float(LibVlcMediaPlayer p_mi, int  option );
+
+    /**
+     * Set adjust option as float. Options that take a different type value
+     * are ignored.
+     *
+     * @param p_mi libvlc media player instance
+     * @param option adust option to set, values of libvlc_video_adjust_option_t
+     * @param value adjust option value
+     * \version LibVLC 1.1.1 and later.
+     */
+    void libvlc_video_set_adjust_float(LibVlcMediaPlayer p_mi, int  option, float value );
+
+    /**
+     * Get the list of available audio outputs
+     *
+     * @param p_instance libvlc instance
+     * @return list of available audio outputs. It must be freed it with
+    *          @see libvlc_audio_output_list_release @see libvlc_audio_output_t .
+     *         In case of error, NULL is returned.
+     */
+    LibVlcAudioOutput  libvlc_audio_output_list_get(LibVlcInstance p_instance );
+
+    /**
+     * Free the list of available audio outputs
+     *
+     * @param p_list list with audio outputs for release
+     */
+    void libvlc_audio_output_list_release(LibVlcAudioOutput p_list );
+
+    /**
+     * Set the audio output.
+     * Change will be applied after stop and play.
+     *
+     * @param p_mi media player
+     * @param psz_name name of audio output,
+     *               use psz_name of @see libvlc_audio_output_t
+     * @return true if function succeded
+     */
+    int libvlc_audio_output_set(LibVlcMediaPlayer p_mi, String psz_name );
+
+    /**
+     * Get count of devices for audio output, these devices are hardware oriented
+     * like analor or digital output of sound card
+     *
+     * @param p_instance libvlc instance
+     * @param psz_audio_output - name of audio output, @see libvlc_audio_output_t
+     * @return number of devices
+     */
+    int libvlc_audio_output_device_count(LibVlcInstance p_instance, String psz_audio_output );
+
+    /**
+     * Get long name of device, if not available short name given
+     *
+     * @param p_instance libvlc instance
+     * @param psz_audio_output - name of audio output, @see libvlc_audio_output_t
+     * @param i_device device index
+     * @return long name of device
+     */
+    String  libvlc_audio_output_device_longname(LibVlcInstance p_instance, String psz_audio_output, int i_device );
+
+    /**
+     * Get id name of device
+     *
+     * @param p_instance libvlc instance
+     * @param psz_audio_output - name of audio output, @see libvlc_audio_output_t
+     * @param i_device device index
+     * @return id name of device, use for setting device, need to be free after use
+     */
+    String  libvlc_audio_output_device_id(LibVlcInstance p_instance, String psz_audio_output, int i_device );
+
+    /**
+     * Set audio output device. Changes are only effective after stop and play.
+     *
+     * @param p_mi media player
+     * @param psz_audio_output - name of audio output, @see libvlc_audio_output_t
+     * @param psz_device_id device
+     */
+    void libvlc_audio_output_device_set(LibVlcMediaPlayer p_mi, String psz_audio_output, String psz_device_id );
+
+    /**
+     * Get current audio device type. Device type describes something like
+     * character of output sound - stereo sound, 2.1, 5.1 etc
+     *
+     * @param p_mi media player
+     * @return the audio devices type @see libvlc_audio_output_device_types_t
+     */
+    int libvlc_audio_output_get_device_type(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set current audio device type.
+     *
+     * @param p_mi vlc instance
+     * @param device_type the audio device type,
+              according to @see libvlc_audio_output_device_types_t
+     */
+    void libvlc_audio_output_set_device_type(LibVlcMediaPlayer p_mi, int device_type );
+
+    /**
+     * Toggle mute status.
+     *
+     * @param p_mi media player
+     */
+    void libvlc_audio_toggle_mute(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get current mute status.
+     *
+     * @param p_mi media player
+     * @return the mute status (boolean)
+     */
+    int libvlc_audio_get_mute(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set mute status.
+     *
+     * @param p_mi media player
+     * @param status If status is true then mute, otherwise unmute
+     */
+    void libvlc_audio_set_mute(LibVlcMediaPlayer p_mi, int status );
+
+    /**
+     * Get current audio level.
+     *
+     * @param p_mi media player
+     * @return the audio level (int)
+     */
+    int libvlc_audio_get_volume(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set current audio level.
+     *
+     * @param p_mi media player
+     * @param i_volume the volume (int)
+     * @return 0 if the volume was set, -1 if it was out of range
+     */
+    int libvlc_audio_set_volume(LibVlcMediaPlayer p_mi, int i_volume );
+
+    /**
+     * Get number of available audio tracks.
+     *
+     * @param p_mi media player
+     * @return the number of available audio tracks (int), or -1 if unavailable
+     */
+    int libvlc_audio_get_track_count(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get the description of available audio tracks.
+     *
+     * @param p_mi media player
+     * @return list with description of available audio tracks, or NULL
+     */
+    LibVlcTrackDescription  libvlc_audio_get_track_description(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Get current audio track.
+     *
+     * @param p_mi media player
+     * @return the audio track (int), or -1 if none.
+     */
+    int libvlc_audio_get_track(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set current audio track.
+     *
+     * @param p_mi media player
+     * @param i_track the track (int)
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_audio_set_track(LibVlcMediaPlayer p_mi, int i_track );
+
+    /**
+     * Get current audio channel.
+     *
+     * @param p_mi media player
+     * @return the audio channel @see libvlc_audio_output_channel_t
+     */
+    int libvlc_audio_get_channel(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set current audio channel.
+     *
+     * @param p_mi media player
+     * @param channel the audio channel, @see libvlc_audio_output_channel_t
+     * @return 0 on success, -1 on error
+     */
+    int libvlc_audio_set_channel(LibVlcMediaPlayer p_mi, int channel );
+
+    /**
+     * Get current audio delay.
+     *
+     * @param p_mi media player
+     * @return the audio delay (microseconds)
+     * \version LibVLC 1.1.1 or later
+     */
+    long  libvlc_audio_get_delay(LibVlcMediaPlayer p_mi );
+
+    /**
+     * Set current audio delay. The audio delay will be reset to zero each time the media changes.
+     *
+     * @param p_mi media player
+     * @param i_delay the audio delay (microseconds)
+     * @return 0 on success, -1 on error
+     * \version LibVLC 1.1.1 or later
+     */
+    int libvlc_audio_set_delay(LibVlcMediaPlayer p_mi, long  i_delay );
+
+
+    /**
+     * A human-readable error message for the last LibVLC error in the calling
+     * thread. The resulting string is valid until another error occurs (at least
+     * until the next LibVLC call).
+     *
+     * @warning
+     * This will be NULL if there was no error.
+     */
+    String libvlc_errmsg ();
+
+    /**
+     * Clears the LibVLC error status for the current thread. This is optional.
+     * By default, the error status is automatically overriden when a new error
+     * occurs, and destroyed when the thread exits.
+     */
+    void libvlc_clearerr ();
+
+    /**
+     * Create and initialize a libvlc instance.
+     *
+     * @param argc the number of arguments
+     * @param argv command-line-type arguments
+     * @return the libvlc instance or NULL in case of error
+     */
+    LibVlcInstance  libvlc_new(int argc , String[] argv );
+
+    /**
+     * Decrement the reference count of a libvlc instance, and destroy it
+     * if it reaches zero.
+     *
+     * @param p_instance the instance to destroy
+     */
+    void libvlc_release(LibVlcInstance p_instance );
+
+    /**
+     * Increments the reference count of a libvlc instance.
+     * The initial reference count is 1 after libvlc_new() returns.
+     *
+     * @param p_instance the instance to reference
+     */
+    void libvlc_retain(LibVlcInstance p_instance );
+
+    /**
+     * Try to start a user interface for the libvlc instance.
+     *
+     * @param p_instance the instance
+     * @param name interface name, or NULL for default
+     * @return 0 on success, -1 on error.
+     */
+    int libvlc_add_intf(LibVlcInstance p_instance, String name );
+
+    /**
+     * Registers a callback for the LibVLC exit event. This is mostly useful if
+     * you have started at least one interface with libvlc_add_intf().
+     * Typically, this function will wake up your application main loop (from
+     * another thread).
+     *
+     * @param p_instance LibVLC instance
+     * @param cb callback to invoke when LibVLC wants to exit
+     * @param opaque data pointer for the callback
+     * \warning This function and libvlc_wait() cannot be used at the same time.
+     * Use either or none of them but not both.
+     */
+    // void libvlc_set_exit_handler(LibVlcInstance p_instance, void (*cb) (Pointer ), Pointer opaque );
+
+    /**
+     * Waits until an interface causes the instance to exit.
+     * You should start at least one interface first, using libvlc_add_intf().
+     *
+     * @param p_instance the instance
+     */
+    void libvlc_wait(LibVlcInstance p_instance );
+
+    /**
+     * Sets the application name. LibVLC passes this as the user agent string
+     * when a protocol requires it.
+     *
+     * @param p_instance LibVLC instance
+     * @param name human-readable application name, e.g. "FooBar player 1.2.3"
+     * @param http HTTP User Agent, e.g. "FooBar/1.2.3 Python/2.6.0"
+     * \version LibVLC 1.1.1 or later
+     */
+    void libvlc_set_user_agent(LibVlcInstance p_instance, String name, String http );
+
+    /**
+     * Retrieve libvlc version.
+     *
+     * Example: "1.1.0-git The Luggage"
+     *
+     * @return a string containing the libvlc version
+     */
+    String  libvlc_get_version();
+
+    /**
+     * Retrieve libvlc compiler version.
+     *
+     * Example: "gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu6)"
+     *
+     * @return a string containing the libvlc compiler version
+     */
+    String  libvlc_get_compiler();
+
+    /**
+     * Retrieve libvlc changeset.
+     *
+     * Example: "aa9bce0bc4"
+     *
+     * @return a string containing the libvlc changeset
+     */
+    String  libvlc_get_changeset();
+
+    /**
+     * Register for an event notification.
+     *
+     * @param p_event_manager the event manager to which you want to attach to.
+     *        Generally it is obtained by vlc_my_object_event_manager() where
+     *        my_object is the object you want to listen to.
+     * @param i_event_type the desired event to which we want to listen
+     * @param f_callback the function to call when i_event_type occurs
+     * @param user_data user provided data to carry with the event
+     * @return 0 on success, ENOMEM on error
+     */
+    int libvlc_event_attach(LibVlcEventManager p_event_manager, int  i_event_type, LibVlcCallback  f_callback, Pointer user_data );
+
+    /**
+     * Unregister an event notification.
+     *
+     * @param p_event_manager the event manager
+     * @param i_event_type the desired event to which we want to unregister
+     * @param f_callback the function to call when i_event_type occurs
+     * @param p_user_data user provided data to carry with the event
+     */
+    void libvlc_event_detach(LibVlcEventManager p_event_manager, int  i_event_type, LibVlcCallback  f_callback, Pointer p_user_data );
+
+    /**
+     * Get an event's type name.
+     *
+     * @param event_type the desired event
+     */
+    String  libvlc_event_type_name(int  event_type );
+
+    /**
+     * Return the VLC messaging verbosity level.
+     *
+     * @param p_instance libvlc instance
+     * @return verbosity level for messages
+     */
+    int  libvlc_get_log_verbosity(LibVlcInstance p_instance );
+
+    /**
+     * Set the VLC messaging verbosity level.
+     *
+     * @param p_instance libvlc log instance
+     * @param level log level
+     */
+    void libvlc_set_log_verbosity(LibVlcInstance p_instance, int  level );
+
+    /**
+     * Open a VLC message log instance.
+     *
+     * @param p_instance libvlc instance
+     * @return log message instance or NULL on error
+     */
+    LibVlcLog libvlc_log_open(LibVlcInstance p_instance );
+
+    /**
+     * Close a VLC message log instance.
+     *
+     * @param p_log libvlc log instance or NULL
+     */
+    void libvlc_log_close(LibVlcLog p_log );
+
+    /**
+     * Returns the number of messages in a log instance.
+     *
+     * @param p_log libvlc log instance or NULL
+     * @return number of log messages, 0 if p_log is NULL
+     */
+    int  libvlc_log_count(LibVlcLog p_log );
+
+    /**
+     * Clear a log instance.
+     *
+     * All messages in the log are removed. The log should be cleared on a
+     * regular basis to avoid clogging.
+     *
+     * @param p_log libvlc log instance or NULL
+     */
+    void libvlc_log_clear(LibVlcLog p_log );
+
+    /**
+     * Allocate and returns a new iterator to messages in log.
+     *
+     * @param p_log libvlc log instance
+     * @return log iterator object or NULL on error
+     */
+    LibVlcLogIterator libvlc_log_get_iterator(LibVlcLog p_log );
+
+    /**
+     * Release a previoulsy allocated iterator.
+     *
+     * @param p_iter libvlc log iterator or NULL
+     */
+    void libvlc_log_iterator_free(LibVlcLogIterator p_iter );
+
+    /**
+     * Return whether log iterator has more messages.
+     *
+     * @param p_iter libvlc log iterator or NULL
+     * @return true if iterator has more message objects, else false
+     */
+    int libvlc_log_iterator_has_next(LibVlcLogIterator p_iter );
+
+    /**
+     * Return the next log message.
+     *
+     * The message contents must not be freed
+     *
+     * @param p_iter libvlc log iterator or NULL
+     * @param p_buffer log buffer
+     * @return log message object or NULL if none left
+     */
+    libvlc_log_message_t libvlc_log_iterator_next(LibVlcLogIterator p_iter, libvlc_log_message_t p_buffer );
+
+
+    /**
+     * Create a media with a certain given media resource location.
+     *
+     * @see libvlc_media_release
+     *
+     * @param p_instance the instance
+     * @param psz_mrl the MRL to read
+     * @return the newly created media or NULL on error
+     */
+    LibVlcMedia libvlc_media_new_location(LibVlcInstance p_instance, String  psz_mrl );
+
+    /**
+     * Create a media with a certain file path.
+     *
+     * @see libvlc_media_release
+     *
+     * @param p_instance the instance
+     * @param path local filesystem path
+     * @return the newly created media or NULL on error
+     */
+    LibVlcMedia libvlc_media_new_path(LibVlcInstance p_instance, String path );
+
+    /**
+     * Create a media as an empty node with a given name.
+     *
+     * @see libvlc_media_release
+     *
+     * @param p_instance the instance
+     * @param psz_name the name of the node
+     * @return the new empty media or NULL on error
+     */
+    LibVlcMedia libvlc_media_new_as_node(LibVlcInstance p_instance, String  psz_name );
+
+    /**
+     * Add an option to the media.
+     *
+     * This option will be used to determine how the media_player will
+     * read the media. This allows to use VLC's advanced
+     * reading/streaming options on a per-media basis.
+     *
+     * The options are detailed in vlc --long-help, for instance "--sout-all"
+     *
+     * @param p_md the media descriptor
+     * @param ppsz_options the options (as a string)
+     */
+    void libvlc_media_add_option(LibVlcMedia p_md, String  ppsz_options );
+
+    /**
+     * Add an option to the media with configurable flags.
+     *
+     * This option will be used to determine how the media_player will
+     * read the media. This allows to use VLC's advanced
+     * reading/streaming options on a per-media basis.
+     *
+     * The options are detailed in vlc --long-help, for instance "--sout-all"
+     *
+     * @param p_md the media descriptor
+     * @param ppsz_options the options (as a string)
+     * @param i_flags the flags for this option
+     */
+    void libvlc_media_add_option_flag(LibVlcMedia p_md, String  ppsz_options, int  i_flags );
+
+    /**
+     * Retain a reference to a media descriptor object (libvlc_media_t). Use
+     * libvlc_media_release() to decrement the reference count of a
+     * media descriptor object.
+     *
+     * @param p_md the media descriptor
+     */
+    void libvlc_media_retain(LibVlcMedia p_md );
+
+    /**
+     * Decrement the reference count of a media descriptor object. If the
+     * reference count is 0, then libvlc_media_release() will release the
+     * media descriptor object. It will send out an libvlc_MediaFreed event
+     * to all listeners. If the media descriptor object has been released it
+     * should not be used again.
+     *
+     * @param p_md the media descriptor
+     */
+    void libvlc_media_release(LibVlcMedia p_md );
+
+    /**
+     * Get the media resource locator (mrl) from a media descriptor object
+     *
+     * @param p_md a media descriptor object
+     * @return string with mrl of media descriptor object
+     */
+    String libvlc_media_get_mrl(LibVlcMedia p_md );
+
+    /**
+     * Duplicate a media descriptor object.
+     *
+     * @param p_md a media descriptor object.
+     */
+    LibVlcMedia libvlc_media_duplicate(LibVlcMedia p_md );
+
+    /**
+     * Read the meta of the media.
+     *
+     * If the media has not yet been parsed this will return NULL.
+     *
+     * This methods automatically calls libvlc_media_parse_async(), so after calling
+     * it you may receive a libvlc_MediaMetaChanged event. If you prefer a synchronous
+     * version ensure that you call libvlc_media_parse() before get_meta().
+     *
+     * @see libvlc_media_parse
+     * @see libvlc_media_parse_async
+     * @see libvlc_MediaMetaChanged
+     *
+     * @param p_md the media descriptor
+     * @param e_meta the meta to read
+     * @return the media's meta
+     */
+    //String libvlc_media_get_meta(LibVlcMedia p_md, Meta  e_meta );
+
+    /**
+     * Set the meta of the media (this function will not save the meta, call
+     * libvlc_media_save_meta in order to save the meta)
+     *
+     * @param p_md the media descriptor
+     * @param e_meta the meta to write
+     * @param psz_value the media's meta
+     */
+    //void libvlc_media_set_meta(LibVlcMedia p_md, Meta  e_meta, String psz_value );
+
+    /**
+     * Save the meta previously set
+     *
+     * @param p_md the media desriptor
+     * @return true if the write operation was successfull
+     */
+    int libvlc_media_save_meta(LibVlcMedia p_md );
+
+    /**
+     * Get current state of media descriptor object. Possible media states
+     * are defined in libvlc_structures.c ( libvlc_NothingSpecial=0,
+     * libvlc_Opening, libvlc_Buffering, libvlc_Playing, libvlc_Paused,
+     * libvlc_Stopped, libvlc_Ended,
+     * libvlc_Error).
+     *
+     * @see libvlc_state_t
+     * @param p_md a media descriptor object
+     * @return state of media descriptor object
+     */
+    int  libvlc_media_get_state(LibVlcMedia p_md );
+
+    /**
+     * Get the current statistics about the media
+     * @param p_md: media descriptor object
+     * @param p_stats: structure that contain the statistics about the media
+     *                 (this structure must be allocated by the caller)
+     * @return true if the statistics are available, false otherwise
+     */
+    // int libvlc_media_get_stats(LibVlcMedia p_md, libvlc_media_stats_t *p_stats );
+
+    /**
+     * Get subitems of media descriptor object. This will increment
+     * the reference count of supplied media descriptor object. Use
+     * libvlc_media_list_release() to decrement the reference counting.
+     *
+     * @param p_md media descriptor object
+     * @return list of media descriptor subitems or NULL
+     */
+    LibVlcMediaList  libvlc_media_subitems(LibVlcMedia p_md );
+
+    /**
+     * Get event manager from media descriptor object.
+     * NOTE: this function doesn't increment reference counting.
+     *
+     * @param p_md a media descriptor object
+     * @return event manager object
+     */
+    LibVlcEventManager  libvlc_media_event_manager(LibVlcMedia p_md );
+
+    /**
+     * Get duration (in ms) of media descriptor object item.
+     *
+     * @param p_md media descriptor object
+     * @return duration of media item or -1 on error
+     */
+    long  libvlc_media_get_duration(LibVlcMedia p_md );
+
+    /**
+     * Parse a media.
+     *
+     * This fetches (local) meta data and tracks information.
+     * The method is synchronous.
+     *
+     * @see libvlc_media_parse_async
+     * @see libvlc_media_get_meta
+     * @see libvlc_media_get_tracks_info
+     *
+     * @param p_md media descriptor object
+     */
+    void libvlc_media_parse(LibVlcMedia p_md );
+
+    /**
+     * Parse a media.
+     *
+     * This fetches (local) meta data and tracks information.
+     * The method is the asynchronous of libvlc_media_parse_async().
+     *
+     * To track when this is over you can listen to libvlc_MediaParsedChanged
+     * event. However if the media was already parsed you will not receive this
+     * event.
+     *
+     * @see libvlc_media_parse
+     * @see libvlc_MediaParsedChanged
+     * @see libvlc_media_get_meta
+     * @see libvlc_media_get_tracks_info
+     *
+     * @param p_md media descriptor object
+     */
+    void libvlc_media_parse_async(LibVlcMedia p_md );
+
+    /**
+     * Get Parsed status for media descriptor object.
+     *
+     * @see libvlc_MediaParsedChanged
+     *
+     * @param p_md media descriptor object
+     * @return true if media object has been parsed otherwise it returns false
+     */
+    int libvlc_media_is_parsed(LibVlcMedia p_md );
+
+    /**
+     * Sets media descriptor's user_data. user_data is specialized data
+     * accessed by the host application, VLC.framework uses it as a pointer to
+     * an native object that references a libvlc_media_t pointer
+     *
+     * @param p_md media descriptor object
+     * @param p_new_user_data pointer to user data
+     */
+    void libvlc_media_set_user_data(LibVlcMedia p_md, Pointer p_new_user_data );
+
+    /**
+     * Get media descriptor's user_data. user_data is specialized data
+     * accessed by the host application, VLC.framework uses it as a pointer to
+     * an native object that references a libvlc_media_t pointer
+     *
+     * @param p_md media descriptor object
+     */
+    Pointer libvlc_media_get_user_data(LibVlcMedia p_md );
+
+    /**
+     * Get media descriptor's elementary streams description
+     *
+     * Note, you need to play the media _one_ time with --sout="#description"
+     * Not doing this will result in an empty array, and doing it more than once
+     * will duplicate the entries in the array each time. Something like this:
+     *
+     * @begincode
+     * libvlc_media_player_t *player = libvlc_media_player_new_from_media(media);
+     * libvlc_media_add_option_flag(media, "sout=\"#description\"");
+     * libvlc_media_player_play(player);
+     * // ... wait until playing
+     * libvlc_media_player_release(player);
+     * @endcode
+     *
+     * This is very likely to change in next release, and be done at the parsing
+     * phase.
+     *
+     * @param p_md media descriptor object
+     * @param tracks address to store an allocated array of Elementary Streams
+     * descriptions (must be freed by the caller)
+     *
+     * return the number of Elementary Streams
+     */
+    // int libvlc_media_get_tracks_info(LibVlcMedia p_md, libvlc_media_track_info_t **tracks );
+
+
+    /**
+     * Create new media_list_player.
+     *
+     * @param p_instance libvlc instance
+     * @return media list player instance or NULL on error
+     */
+    LibVlcMediaListPlayer  libvlc_media_list_player_new(LibVlcInstance  p_instance );
+
+    /**
+     * Release media_list_player.
+     *
+     * @param p_mlp media list player instance
+     */
+    void libvlc_media_list_player_release(LibVlcMediaListPlayer  p_mlp );
+
+    /**
+     * Return the event manager of this media_list_player.
+     *
+     * @param p_mlp media list player instance
+     * @return the event manager
+     */
+    LibVlcEventManager  libvlc_media_list_player_event_manager(LibVlcMediaListPlayer  p_mlp);
+
+    /**
+     * Replace media player in media_list_player with this instance.
+     *
+     * @param p_mlp media list player instance
+     * @param p_mi media player instance
+     */
+    void libvlc_media_list_player_set_media_player(LibVlcMediaListPlayer  p_mlp, LibVlcMediaPlayer  p_mi );
+
+    /**
+     * Set the media list associated with the player
+     *
+     * @param p_mlp media list player instance
+     * @param p_mlist list of media
+     */
+    void libvlc_media_list_player_set_media_list(LibVlcMediaListPlayer  p_mlp, LibVlcMediaList  p_mlist );
+
+    /**
+     * Play media list
+     *
+     * @param p_mlp media list player instance
+     */
+    void libvlc_media_list_player_play(LibVlcMediaListPlayer  p_mlp);
+
+    /**
+     * Pause media list
+     *
+     * @param p_mlp media list player instance
+     */
+    void libvlc_media_list_player_pause(LibVlcMediaListPlayer  p_mlp);
+
+    /**
+     * Is media list playing?
+     *
+     * @param p_mlp media list player instance
+     * @return true for playing and false for not playing
+     */
+    int libvlc_media_list_player_is_playing(LibVlcMediaListPlayer  p_mlp );
+
+    /**
+     * Get current libvlc_state of media list player
+     *
+     * @param p_mlp media list player instance
+     * @return libvlc_state_t for media list player
+     */
+    int  libvlc_media_list_player_get_state(LibVlcMediaListPlayer  p_mlp );
+
+    /**
+     * Play media list item at position index
+     *
+     * @param p_mlp media list player instance
+     * @param i_index index in media list to play
+     * @return 0 upon success -1 if the item wasn't found
+     */
+    int libvlc_media_list_player_play_item_at_index(LibVlcMediaListPlayer  p_mlp, int i_index);
+
+    /**
+     * Play the given media item
+     *
+     * @param p_mlp media list player instance
+     * @param p_md the media instance
+     * @return 0 upon success, -1 if the media is not part of the media list
+     */
+    int libvlc_media_list_player_play_item(LibVlcMediaListPlayer  p_mlp, LibVlcMedia  p_md);
+
+    /**
+     * Stop playing media list
+     *
+     * @param p_mlp media list player instance
+     */
+    void libvlc_media_list_player_stop(LibVlcMediaListPlayer  p_mlp);
+
+    /**
+     * Play next item from media list
+     *
+     * @param p_mlp media list player instance
+     * @return 0 upon success -1 if there is no next item
+     */
+    int libvlc_media_list_player_next(LibVlcMediaListPlayer  p_mlp);
+
+    /**
+     * Play previous item from media list
+     *
+     * @param p_mlp media list player instance
+     * @return 0 upon success -1 if there is no previous item
+     */
+    int libvlc_media_list_player_previous(LibVlcMediaListPlayer  p_mlp);
+
+    /**
+     * Sets the playback mode for the playlist
+     *
+     * @param p_mlp media list player instance
+     * @param e_mode playback mode specification
+     */
+    // void libvlc_media_list_player_set_playback_mode(LibVlcMediaListPlayer  p_mlp, libvlc_playback_mode_t e_mode );
 
-    Pointer libvlc_media_player_get_nsobject(LibVlcMediaPlayer p_mi);
-
-    void libvlc_media_player_set_agl(LibVlcMediaPlayer p_mi, long drawable, libvlc_exception_t p_e);
-
-    long libvlc_media_player_get_agl(LibVlcMediaPlayer p_mi);
-
-    void libvlc_media_player_set_xwindow(LibVlcMediaPlayer p_mi, long drawable, libvlc_exception_t p_e);
-
-    long libvlc_media_player_get_xwindow(LibVlcMediaPlayer p_mi);
-
-    void libvlc_media_player_set_hwnd(LibVlcMediaPlayer p_mi, long drawable, libvlc_exception_t p_e);
-
-    Pointer libvlc_media_player_get_hwnd(LibVlcMediaPlayer p_mi);
-
-    long libvlc_media_player_get_length(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    long libvlc_media_player_get_time(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_set_time(LibVlcMediaPlayer p_mi, long the, libvlc_exception_t p_e);
-
-    float libvlc_media_player_get_position(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_set_position(LibVlcMediaPlayer p_mi, float f_pos, libvlc_exception_t p_e);
-
-    void libvlc_media_player_set_chapter(LibVlcMediaPlayer p_mi, int i_chapter, libvlc_exception_t p_e);
-
-    int libvlc_media_player_get_chapter(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_get_chapter_count(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_will_play(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_get_chapter_count_for_title(LibVlcMediaPlayer p_mi, int i_title, libvlc_exception_t p_e);
-
-    void libvlc_media_player_set_title(LibVlcMediaPlayer p_mi, int i_title, libvlc_exception_t p_e);
-
-    int libvlc_media_player_get_title(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_get_title_count(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_previous_chapter(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_next_chapter(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    float libvlc_media_player_get_rate(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_set_rate(LibVlcMediaPlayer p_mi, float movie, libvlc_exception_t p_e);
-
-    int libvlc_media_player_get_state(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    float libvlc_media_player_get_fps(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_has_vout(LibVlcMediaPlayer p_md, libvlc_exception_t p_e);
-
-    int libvlc_media_player_is_seekable(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_media_player_can_pause(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_media_player_next_frame(LibVlcMediaPlayer p_input, libvlc_exception_t p_e);
-
-    void libvlc_track_description_release(LibVlcTrackDescription p_track_description);
-
-    void libvlc_toggle_fullscreen(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    void libvlc_set_fullscreen(LibVlcMediaPlayer p_mediaplayer, int b_fullscreen, libvlc_exception_t p_e);
-
-    int libvlc_get_fullscreen(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    int libvlc_video_get_height(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    int libvlc_video_get_width(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    float libvlc_video_get_scale(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    void libvlc_video_set_scale(LibVlcMediaPlayer p_mediaplayer, float i_factor, libvlc_exception_t p_e);
-
-    String libvlc_video_get_aspect_ratio(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    void libvlc_video_set_aspect_ratio(LibVlcMediaPlayer p_mediaplayer, String psz_aspect, libvlc_exception_t p_e);
-
-    int libvlc_video_get_spu(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    int libvlc_video_get_spu_count(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    LibVlcTrackDescription libvlc_video_get_spu_description(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    void libvlc_video_set_spu(LibVlcMediaPlayer p_mediaplayer, int i_spu, libvlc_exception_t p_e);
-
-    int libvlc_video_set_subtitle_file(LibVlcMediaPlayer p_mediaplayer, String psz_subtitle, libvlc_exception_t p_e);
-
-    LibVlcTrackDescription libvlc_video_get_title_description(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    LibVlcTrackDescription libvlc_video_get_chapter_description(LibVlcMediaPlayer p_mediaplayer, int i_title,
-        libvlc_exception_t p_e);
-
-    String libvlc_video_get_crop_geometry(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    void libvlc_video_set_crop_geometry(LibVlcMediaPlayer p_mediaplayer, String psz_geometry, libvlc_exception_t p_e);
-
-    void libvlc_toggle_teletext(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    int libvlc_video_get_teletext(LibVlcMediaPlayer p_mediaplayer, libvlc_exception_t p_e);
-
-    void libvlc_video_set_teletext(LibVlcMediaPlayer p_mediaplayer, int i_page, libvlc_exception_t p_e);
-
-    int libvlc_video_get_track_count(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    LibVlcTrackDescription libvlc_video_get_track_description(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_video_get_track(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_video_set_track(LibVlcMediaPlayer p_mi, int i_track, libvlc_exception_t p_e);
-
-    void libvlc_video_take_snapshot(LibVlcMediaPlayer p_mi, String psz_filepath, int i_width, int i_height,
-        libvlc_exception_t p_e);
-
-    void libvlc_video_set_deinterlace(LibVlcMediaPlayer p_mi, int b_enable, String psz_mode, libvlc_exception_t p_e);
-
-    int libvlc_video_get_marquee_int(LibVlcMediaPlayer p_mi, VideoMarqueeIntOption option,
-        libvlc_exception_t p_e);
-
-    String libvlc_video_get_marquee_string(LibVlcMediaPlayer p_mi, VideoMarqueeStringOption option,
-        libvlc_exception_t p_e);
-
-    void libvlc_video_set_marquee_int(LibVlcMediaPlayer p_mi, VideoMarqueeIntOption option, int i_val,
-        libvlc_exception_t p_e);
-
-    void libvlc_video_set_marquee_string(LibVlcMediaPlayer p_mi, VideoMarqueeStringOption option,
-        String psz_text, libvlc_exception_t p_e);
-
-    LibVlcAudioOutput libvlc_audio_output_list_get(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_audio_output_list_release(LibVlcAudioOutput p_list);
-
-    int libvlc_audio_output_set(LibVlcInstance p_instance, String psz_name);
-
-    int libvlc_audio_output_device_count(LibVlcInstance p_instance, String psz_audio_output);
-
-    String libvlc_audio_output_device_longname(LibVlcInstance p_instance, String psz_audio_output, int i_device);
-
-    String libvlc_audio_output_device_id(LibVlcInstance p_instance, String psz_audio_output, int i_device);
-
-    void libvlc_audio_output_device_set(LibVlcInstance p_instance, String psz_audio_output, String psz_device_id);
-
-    int libvlc_audio_output_get_device_type(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_audio_output_set_device_type(LibVlcInstance p_instance, int device_type, libvlc_exception_t p_e);
-
-    void libvlc_audio_toggle_mute(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    int libvlc_audio_get_mute(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_audio_set_mute(LibVlcInstance p_instance, int status, libvlc_exception_t p_e);
-
-    int libvlc_audio_get_volume(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_audio_set_volume(LibVlcInstance p_instance, int i_volume, libvlc_exception_t p_e);
-
-    int libvlc_audio_get_track_count(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    LibVlcTrackDescription libvlc_audio_get_track_description(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    int libvlc_audio_get_track(LibVlcMediaPlayer p_mi, libvlc_exception_t p_e);
-
-    void libvlc_audio_set_track(LibVlcMediaPlayer p_mi, int i_track, libvlc_exception_t p_e);
-
-    int libvlc_audio_get_channel(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_audio_set_channel(LibVlcInstance p_instance, int channel, libvlc_exception_t p_e);
-
-    void libvlc_vlm_release(LibVlcInstance p_instance, libvlc_exception_t p_e);
-
-    void libvlc_vlm_add_broadcast(LibVlcInstance p_instance, String psz_name, String psz_input, String psz_output,
-        int i_options, String[] ppsz_options, int b_enabled, int b_loop, libvlc_exception_t p_e);
-
-    void libvlc_vlm_add_vod(LibVlcInstance p_instance, String psz_name, String psz_input, int i_options,
-        String[] ppsz_options, int b_enabled, String psz_mux, libvlc_exception_t p_e);
-
-    void libvlc_vlm_del_media(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e);
-
-    void libvlc_vlm_set_enabled(LibVlcInstance p_instance, String psz_name, int b_enabled, libvlc_exception_t p_e);
-
-    void libvlc_vlm_set_output(LibVlcInstance p_instance, String psz_name, String psz_output, libvlc_exception_t p_e);
-
-    void libvlc_vlm_set_input(LibVlcInstance p_instance, String psz_name, String psz_input, libvlc_exception_t p_e);
-
-    void libvlc_vlm_add_input(LibVlcInstance p_instance, String psz_name, String psz_input, libvlc_exception_t p_e);
-
-    void libvlc_vlm_set_loop(LibVlcInstance p_instance, String psz_name, int b_loop, libvlc_exception_t p_e);
-
-    void libvlc_vlm_set_mux(LibVlcInstance p_instance, String psz_name, String psz_mux, libvlc_exception_t p_e);
-
-    void libvlc_vlm_change_media(LibVlcInstance p_instance, String psz_name, String psz_input, String psz_output,
-        int i_options, String[] ppsz_options, int b_enabled, int b_loop, libvlc_exception_t p_e);
-
-    void libvlc_vlm_play_media(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e);
-
-    void libvlc_vlm_stop_media(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e);
-
-    void libvlc_vlm_pause_media(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e);
-
-    void libvlc_vlm_seek_media(LibVlcInstance p_instance, String psz_name, float f_percentage, libvlc_exception_t p_e);
-
-    String libvlc_vlm_show_media(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e);
-
-    float libvlc_vlm_get_media_instance_position(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    int libvlc_vlm_get_media_instance_time(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    int libvlc_vlm_get_media_instance_length(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    int libvlc_vlm_get_media_instance_rate(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    int libvlc_vlm_get_media_instance_title(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    int libvlc_vlm_get_media_instance_chapter(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    int libvlc_vlm_get_media_instance_seekable(LibVlcInstance p_instance, String psz_name, int i_instance,
-        libvlc_exception_t p_e);
-
-    LibVlcEventManager libvlc_vlm_get_event_manager(LibVlcInstance p_instance, libvlc_exception_t p_exception);
 
 }
+
index 92f381f..a17bdc4 100644 (file)
@@ -27,59 +27,89 @@ package org.videolan.jvlc.internal;
 
 
 public enum LibVlcEventType {
+       
+    libvlc_MediaMetaChanged, 
+    libvlc_MediaSubItemAdded, 
+    libvlc_MediaDurationChanged, 
+    libvlc_MediaPreparsedChanged, 
+    libvlc_MediaFreed, 
+    libvlc_MediaStateChanged,
+    
+    libvlc_MediaPlayerMediaChanged,
+    libvlc_MediaPlayerNothingSpecial, 
+    libvlc_MediaPlayerOpening, 
+    libvlc_MediaPlayerBuffering, 
+    libvlc_MediaPlayerPlaying, 
+    libvlc_MediaPlayerPaused, 
+    libvlc_MediaPlayerStopped, 
+    libvlc_MediaPlayerForward, 
+    libvlc_MediaPlayerBackward, 
+    libvlc_MediaPlayerEndReached, 
+    libvlc_MediaPlayerEncounteredError, 
+    libvlc_MediaPlayerTimeChanged, 
+    libvlc_MediaPlayerPositionChanged, 
+    libvlc_MediaPlayerSeekableChanged, 
+    libvlc_MediaPlayerPausableChanged, 
+    libvlc_MediaPlayerTitleChanged,
+    libvlc_MediaPlayerSnapshotTaken,
+    libvlc_MediaPlayerLengthChanged,
 
-    libvlc_MediaMetaChanged, // 0
-    libvlc_MediaSubItemAdded, // 1
-    libvlc_MediaDurationChanged, // 2
-    libvlc_MediaPreparsedChanged, // 3
-    libvlc_MediaFreed, // 4
-    libvlc_MediaStateChanged, // 5
+       libvlc_MediaListItemAdded, 
+       libvlc_MediaListWillAddItem, 
+       libvlc_MediaListItemDeleted, 
+       libvlc_MediaListWillDeleteItem,
 
-    libvlc_MediaPlayerNothingSpecial, // 6
-    libvlc_MediaPlayerOpening, // 7
-    libvlc_MediaPlayerBuffering, // 8
-    libvlc_MediaPlayerPlaying, // 9
-    libvlc_MediaPlayerPaused, // 10
-    libvlc_MediaPlayerStopped, // 11
-    libvlc_MediaPlayerForward, // 12
-    libvlc_MediaPlayerBackward, // 13
-    libvlc_MediaPlayerEndReached, // 14
-    libvlc_MediaPlayerEncounteredError, // 15
-    libvlc_MediaPlayerTimeChanged, // 16
-    libvlc_MediaPlayerPositionChanged, // 17
-    libvlc_MediaPlayerSeekableChanged, // 18
-    libvlc_MediaPlayerPausableChanged, // 19
+       libvlc_MediaListViewItemAdded, 
+       libvlc_MediaListViewWillAddItem, 
+       libvlc_MediaListViewItemDeleted, 
+       libvlc_MediaListViewWillDeleteItem, 
 
-    libvlc_MediaListItemAdded, // 20
-    libvlc_MediaListWillAddItem, // 21
-    libvlc_MediaListItemDeleted, // 22
-    libvlc_MediaListWillDeleteItem, // 23
+       libvlc_MediaListPlayerPlayed, 
+       libvlc_MediaListPlayerNextItemSet, 
+       libvlc_MediaListPlayerStopped, 
 
-    libvlc_MediaListViewItemAdded, // 24
-    libvlc_MediaListViewWillAddItem, // 25
-    libvlc_MediaListViewItemDeleted, // 26
-    libvlc_MediaListViewWillDeleteItem, // 27
+       libvlc_MediaDiscovererStarted, 
+       libvlc_MediaDiscovererEnded, 
 
-    libvlc_MediaListPlayerPlayed, // 28
-    libvlc_MediaListPlayerNextItemSet, // 29
-    libvlc_MediaListPlayerStopped, // 30
-
-    libvlc_MediaDiscovererStarted, // 31
-    libvlc_MediaDiscovererEnded, // 32
-
-    libvlc_MediaPlayerTitleChanged, // 33
-    libvlc_MediaPlayerSnapshotTaken, // 34
-    libvlc_MediaPlayerLengthChanged, // 35
-
-    libvlc_VlmMediaAdded, // 36
-    libvlc_VlmMediaRemoved, // 37
-    libvlc_VlmMediaChanged, // 38
-    libvlc_VlmMediaInstanceStarted, // 39
-    libvlc_VlmMediaInstanceStopped, // 40
-    libvlc_VlmMediaInstanceStatusInit, // 41
-    libvlc_VlmMediaInstanceStatusOpening, // 42
-    libvlc_VlmMediaInstanceStatusPlaying, // 43
-    libvlc_VlmMediaInstanceStatusPause, // 44
-    libvlc_VlmMediaInstanceStatusEnd, // 45
-    libvlc_VlmMediaInstanceStatusError; // 46
+       libvlc_VlmMediaAdded, 
+    libvlc_VlmMediaRemoved, 
+    libvlc_VlmMediaChanged, 
+    libvlc_VlmMediaInstanceStarted, 
+    libvlc_VlmMediaInstanceStopped, 
+    libvlc_VlmMediaInstanceStatusInit, 
+    libvlc_VlmMediaInstanceStatusOpening, 
+    libvlc_VlmMediaInstanceStatusPlaying, 
+    libvlc_VlmMediaInstanceStatusPause, 
+    libvlc_VlmMediaInstanceStatusEnd, 
+    libvlc_VlmMediaInstanceStatusError;
+       
+    public int getEventNumber()
+    {
+       if (this.ordinal() < libvlc_MediaPlayerMediaChanged.ordinal())
+       {
+               return this.ordinal();
+       }
+       else if (this.ordinal() < libvlc_MediaListItemAdded.ordinal())
+       {
+               return this.ordinal() - libvlc_MediaPlayerMediaChanged.ordinal() + 0x100;
+       }
+       else if (this.ordinal() < libvlc_MediaListViewItemAdded.ordinal())
+       {
+               return this.ordinal() - libvlc_MediaListItemAdded.ordinal() + 0x200;
+       }
+       else if (this.ordinal() < libvlc_MediaListPlayerPlayed.ordinal())
+       {
+               return this.ordinal() - libvlc_MediaListViewItemAdded.ordinal() + 0x300;
+       }
+       else if (this.ordinal() < libvlc_MediaDiscovererStarted.ordinal())
+       {
+               return this.ordinal() - libvlc_MediaListPlayerPlayed.ordinal() + 0x400;
+       }
+       else if (this.ordinal() < libvlc_VlmMediaAdded.ordinal())
+       {
+               return this.ordinal() - libvlc_MediaDiscovererStarted.ordinal() + 0x500;
+       }
+       return this.ordinal() - libvlc_VlmMediaAdded.ordinal() + 0x600;
+    }
+       
 }
index d89ceb9..a7d4b2d 100644 (file)
@@ -36,7 +36,6 @@ import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
 import org.videolan.jvlc.internal.LibVlc.LibVlcMedia;
 import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer;
 import org.videolan.jvlc.internal.LibVlc.libvlc_event_t;
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
 
 import com.sun.jna.Platform;
 import com.sun.jna.Pointer;
@@ -50,8 +49,6 @@ public class LibVlcImpl
     public static void main(String[] args) throws InterruptedException
     {
         LibVlc libVlc = LibVlc.SYNC_INSTANCE;
-        libvlc_exception_t exception = new libvlc_exception_t();
-        libVlc.libvlc_exception_init(exception);
 
         final Object lock = new Object();
 
@@ -60,14 +57,14 @@ public class LibVlcImpl
         System.out.println("changeset: " + libVlc.libvlc_get_changeset());
         System.out.println("compiler: " + libVlc.libvlc_get_compiler());
         
-        LibVlcInstance libvlc_instance_t = libVlc.libvlc_new(0, new String[] {"/usr/local/bin/vlc"}, exception);
+        LibVlcInstance libvlc_instance_t = libVlc.libvlc_new(0, new String[] {"/usr/local/bin/vlc"});
 
         LibVlcMedia mediaDescriptor = libVlc
-            .libvlc_media_new(libvlc_instance_t, "/home/carone/apps/a.avi", exception);
+            .libvlc_media_new_path(libvlc_instance_t, "/home/carone/apps/a.avi");
 
-        LibVlcMediaPlayer mediaPlayer = libVlc.libvlc_media_player_new_from_media(mediaDescriptor, exception);
+        LibVlcMediaPlayer mediaPlayer = libVlc.libvlc_media_player_new_from_media(mediaDescriptor);
 
-        LibVlcEventManager mediaInstanceEventManager = libVlc.libvlc_media_player_event_manager(mediaPlayer, exception);
+        LibVlcEventManager mediaInstanceEventManager = libVlc.libvlc_media_player_event_manager(mediaPlayer);
 
         LibVlcCallback played = new LibVlcCallback()
         {
@@ -93,17 +90,15 @@ public class LibVlcImpl
 
         libVlc.libvlc_event_attach(
             mediaInstanceEventManager,
-            LibVlcEventType.libvlc_MediaPlayerPlaying.ordinal(),
+            LibVlcEventType.libvlc_MediaPlayerPlaying.getEventNumber(),
             played,
-            null,
-            exception);
+            null);
 
         libVlc.libvlc_event_attach(
             mediaInstanceEventManager,
-            LibVlcEventType.libvlc_MediaPlayerEndReached.ordinal(),
+            LibVlcEventType.libvlc_MediaPlayerEndReached.getEventNumber(),
             endReached,
-            null,
-            exception);
+            null);
 
         JFrame frame = new JFrame("title");
         frame.setVisible(true);
@@ -122,12 +117,12 @@ public class LibVlcImpl
 
         if (Platform.isWindows())
         {
-            libVlc.libvlc_media_player_set_hwnd(mediaPlayer, drawable, exception);
+            libVlc.libvlc_media_player_set_hwnd(mediaPlayer, drawable);
         }
         else
         {
-            libVlc.libvlc_media_player_set_xwindow(mediaPlayer, drawable, exception);
+            libVlc.libvlc_media_player_set_xwindow(mediaPlayer, drawable);
         }
-        libVlc.libvlc_media_player_play(mediaPlayer, exception);
+        libVlc.libvlc_media_player_play(mediaPlayer);
     }
 }
index 0d8f1ed..4bcc594 100644 (file)
@@ -71,22 +71,5 @@ public class JVLCTest extends AbstractJVLCTest
         }
         
     }
-    
-    @Test
-    public void twoAudioInstancesTest() throws Exception
-    {
-        JVLC instance1 = new JVLC();
-        JVLC instance2 = new JVLC();
-        
-        instance1.play(mrl);
-        instance2.play(mrl);
-        
-        Thread.sleep(1000);
-        
-        instance1.getAudio().setMute(true);
-        Assert.assertNotNull(instance2.getAudio());
-        Assert.assertTrue(instance1.getAudio().getMute());
-        Assert.assertTrue(!instance2.getAudio().getMute());
-        
-    }
+
 }
index 3bc24ec..2b050cb 100644 (file)
@@ -90,7 +90,7 @@ public class MediaListTest extends AbstractJVLCTest
         Assert.assertEquals(0, mlist.size());
     }
     
-    @Test
+    @Test(expected = IndexOutOfBoundsException.class)
     public void mediaListRemoveNonExistingMedia()
     {
         MediaList mlist = new MediaList(jvlc);
index 6b033ef..cc0321a 100644 (file)
@@ -32,16 +32,12 @@ import java.io.OutputStream;
 import java.net.URL;
 import java.net.URLConnection;
 
-import junit.framework.Assert;
-
 import org.apache.commons.io.IOUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.videolan.jvlc.internal.LibVlc.LibVlcInstance;
-import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
-
 
 public abstract class AbstractVLCInternalTest
 {
@@ -52,8 +48,6 @@ public abstract class AbstractVLCInternalTest
 
     protected String mrl;
 
-    protected libvlc_exception_t exception;
-
     private String address = "http://streams.videolan.org/streams-videolan/avi/Hero-Div3.avi";
 
     /**
@@ -64,7 +58,6 @@ public abstract class AbstractVLCInternalTest
     @Before
     public void testSetup()
     {
-        exception = new libvlc_exception_t();
         String[] args = new String[]{
             "-vvv",
             "--ignore-config",
@@ -76,8 +69,7 @@ public abstract class AbstractVLCInternalTest
             "dummy",
             "-V",
             "dummy" };
-        libvlcInstance = libvlc.libvlc_new(args.length, args, exception);
-        libvlc.libvlc_exception_clear(exception);
+        libvlcInstance = libvlc.libvlc_new(args.length, args);
 
         downloadSample();
     }
@@ -86,12 +78,6 @@ public abstract class AbstractVLCInternalTest
     public void tearDown()
     {
         libvlc.libvlc_release(libvlcInstance);
-        libvlc.libvlc_exception_clear(exception);
-    }
-
-    protected void catchException(libvlc_exception_t exception)
-    {
-        Assert.assertEquals(libvlc.libvlc_errmsg(), 0, libvlc.libvlc_exception_raised(exception));
     }
 
     private void downloadSample()
index 8796647..4a1bffc 100644 (file)
@@ -40,7 +40,7 @@ public class LibVlcCoreTest
     public void testNew() throws Exception
     {
         libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcInstance libvlcInstance = instance.libvlc_new(0, new String[] {"-I","dummy","--aout=dummy","--vout=dummy"}, exception);
+        LibVlcInstance libvlcInstance = instance.libvlc_new(0, new String[] {"-I","dummy","--aout=dummy","--vout=dummy"});
         Assert.assertNotNull(libvlcInstance);
         Assert.assertEquals(0, exception.b_raised);
     }
@@ -49,17 +49,15 @@ public class LibVlcCoreTest
     public void testRelease() throws Exception
     {
         libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcInstance libvlcInstance = instance.libvlc_new(0, new String[] {}, exception);
+        LibVlcInstance libvlcInstance = instance.libvlc_new(0, new String[] {});
         instance.libvlc_release(libvlcInstance);
     }
     
     @Test
     public void testAddIntf() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcInstance libvlcInstance = instance.libvlc_new(0, new String[] {}, exception);
-        instance.libvlc_add_intf(libvlcInstance, "dummy", exception);
-        Assert.assertEquals(0, exception.b_raised);
+        LibVlcInstance libvlcInstance = instance.libvlc_new(0, new String[] {});
+        instance.libvlc_add_intf(libvlcInstance, "dummy");
         instance.libvlc_release(libvlcInstance);
     }
     
index b136b0c..88a0b36 100644 (file)
@@ -38,25 +38,21 @@ public class LibVlcLogTest extends AbstractVLCInternalTest
     @Test
     public void testLogOpen()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance, exception);
+        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance);
         Assert.assertNotNull(libvlcLog);
     }
     
     @Test
     public void testLogClose()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance, exception);
+        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance);
         libvlc.libvlc_log_close(libvlcLog);
-        Assert.assertEquals(0, exception.b_raised);
     }
 
     //@Test
     public void testLogClear()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance, exception);
+        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance);
         libvlc.libvlc_log_clear(libvlcLog);
         Assert.assertEquals(0, libvlc.libvlc_log_count(libvlcLog));
     }
@@ -64,12 +60,10 @@ public class LibVlcLogTest extends AbstractVLCInternalTest
     //@Test
     public void testLogGetIterator()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance, exception);
+        LibVlcLog libvlcLog = libvlc.libvlc_log_open(libvlcInstance);
         libvlc.libvlc_log_clear(libvlcLog);
-        Assert.assertEquals(0, exception.b_raised);
         Assert.assertEquals(0, libvlc.libvlc_log_count(libvlcLog));
-        LibVlcLogIterator logIterator = libvlc.libvlc_log_get_iterator(libvlcLog, exception);
+        LibVlcLogIterator logIterator = libvlc.libvlc_log_get_iterator(libvlcLog);
         Assert.assertNotNull(logIterator);
     }
 }
index 1fb78f6..faf836a 100644 (file)
@@ -42,8 +42,8 @@ public class LibVlcMediaEventsTest extends AbstractVLCEventTest
     @Test
     public void mediaFreedTest()
     {
-        LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcEventManager eventManager = libvlc.libvlc_media_event_manager(media, exception);
+        LibVlcMedia media = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcEventManager eventManager = libvlc.libvlc_media_event_manager(media);
         LibVlcCallback callback = new LibVlc.LibVlcCallback()
         {
 
@@ -54,7 +54,7 @@ public class LibVlcMediaEventsTest extends AbstractVLCEventTest
             }
             
         };
-        libvlc.libvlc_event_attach(eventManager, LibVlcEventType.libvlc_MediaFreed.ordinal(), callback, null, exception);
+        libvlc.libvlc_event_attach(eventManager, LibVlcEventType.libvlc_MediaFreed.ordinal(), callback, null);
         libvlc.libvlc_media_release(media);
         Assert.assertEquals(1, eventFired);
     }
index 7339cfb..cfe580c 100644 (file)
@@ -43,10 +43,10 @@ public class LibVlcMediaListEventsTest extends AbstractVLCEventTest
     @Test
     public void itemAddedTest()
     {
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia media = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
         
-        LibVlcEventManager eventManager = libvlc.libvlc_media_list_event_manager(mediaList, exception);
+        LibVlcEventManager eventManager = libvlc.libvlc_media_list_event_manager(mediaList);
         LibVlcCallback callback = new LibVlc.LibVlcCallback()
         {
 
@@ -61,20 +61,20 @@ public class LibVlcMediaListEventsTest extends AbstractVLCEventTest
             eventManager,
             LibVlcEventType.libvlc_MediaListItemAdded.ordinal(),
             callback,
-            null,
-            exception);
+            null
+            );
         
-        libvlc.libvlc_media_list_add_media(mediaList, media, exception);
+        libvlc.libvlc_media_list_add_media(mediaList, media);
         Assert.assertEquals(1, eventFired);
     }
 
     @Test
     public void itemDeletedTest()
     {
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia media = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
         
-        LibVlcEventManager eventManager = libvlc.libvlc_media_list_event_manager(mediaList, exception);
+        LibVlcEventManager eventManager = libvlc.libvlc_media_list_event_manager(mediaList);
         LibVlcCallback callback = new LibVlc.LibVlcCallback()
         {
 
@@ -89,11 +89,11 @@ public class LibVlcMediaListEventsTest extends AbstractVLCEventTest
             eventManager,
             LibVlcEventType.libvlc_MediaListItemDeleted.ordinal(),
             callback,
-            null,
-            exception);
+            null
+            );
         
-        libvlc.libvlc_media_list_add_media(mediaList, media, exception);
-        libvlc.libvlc_media_list_remove_index(mediaList, 0, exception);
+        libvlc.libvlc_media_list_add_media(mediaList, media);
+        libvlc.libvlc_media_list_remove_index(mediaList, 0);
         Assert.assertEquals(1, eventFired);
     }
 
index 41ea8c0..9a9ace0 100644 (file)
@@ -44,21 +44,19 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerNewTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
         Assert.assertNotNull(mediaListPlayer);
-        Assert.assertEquals(0, exception.b_raised);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
 
     @Test
     public void mediaListPlayerSetMediaListTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
         libvlc.libvlc_media_list_release(mediaList);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
@@ -66,13 +64,14 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerSetMediaListTest2()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        
+        libvlc.libvlc_media_release(mediaDescriptor);
         libvlc.libvlc_media_list_release(mediaList);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
@@ -80,36 +79,35 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerIsNotPlayingTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        int result = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
-        Assert.assertEquals(0, result);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        int result = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer);
+        Assert.assertEquals(LibVlcState.libvlc_NothingSpecial.ordinal(), result);
+        
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
 
     @Test
     public void mediaListPlayerPlayNoItemTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        libvlc.libvlc_media_list_player_play(mediaListPlayer, exception);
-        Assert.assertEquals(1, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        libvlc.libvlc_media_list_player_play(mediaListPlayer);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
 
     @Test
     public void mediaListPlayerPlay()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
         current = mediaListPlayer;
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        libvlc.libvlc_media_list_player_play(mediaListPlayer, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        libvlc.libvlc_media_list_player_play(mediaListPlayer);
+        
         libvlc.libvlc_media_release(mediaDescriptor);
         libvlc.libvlc_media_list_release(mediaList);
     }
@@ -117,28 +115,24 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerPlayItemAtIndex() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0);
         while (true)
         {
-            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
-            if (exception.b_raised == 1)
-            {
-                throw new RuntimeException("Native exception thrown");
-            }
+            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer);
             if (playing == 1)
             {
                 break;
             }
             Thread.sleep(150);
         }
-        libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
-        while (libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception) != LibVlcState.libvlc_Ended
+        libvlc.libvlc_media_list_player_stop(mediaListPlayer);
+        while (libvlc.libvlc_media_list_player_get_state(mediaListPlayer) != LibVlcState.libvlc_Ended
             .ordinal())
         {
             Thread.sleep(100);
@@ -151,21 +145,17 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerPlayItem() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor);
+        
         while (true)
         {
-            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
-            if (exception.b_raised == 1)
-            {
-                throw new RuntimeException("Native exception thrown");
-            }
+            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer);
             if (playing == 1)
             {
                 break;
@@ -173,7 +163,7 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
             Thread.sleep(150);
         }
         Thread.sleep(400);
-        libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+        libvlc.libvlc_media_list_player_stop(mediaListPlayer);
         libvlc.libvlc_media_list_release(mediaList);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
@@ -181,9 +171,9 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerGetStateEnded()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer);
         Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), state);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
@@ -191,38 +181,34 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaLtistPlayerPause() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor);
         while (true)
         {
-            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
-            if (exception.b_raised == 1)
-            {
-                throw new RuntimeException("Native exception thrown");
-            }
+            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer);
             if (playing == 1)
             {
                 break;
             }
             Thread.sleep(150);
         }
-        libvlc.libvlc_media_list_player_pause(mediaListPlayer, exception);
+        libvlc.libvlc_media_list_player_pause(mediaListPlayer);
 
         Thread.sleep(500);
         
-        int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        int state = libvlc.libvlc_media_list_player_get_state(mediaListPlayer);
+        
         Thread.sleep(200L);
         Assert.assertEquals(
             "Expected state: " + LibVlcState.libvlc_Paused + ".\n",
             LibVlcState.libvlc_Paused.ordinal(),
             state);
-        libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+        libvlc.libvlc_media_list_player_stop(mediaListPlayer);
         libvlc.libvlc_media_list_release(mediaList);
         libvlc.libvlc_media_list_player_release(mediaListPlayer);
     }
@@ -230,21 +216,20 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaListPlayerSetMediaInstance()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_list_player_set_media_player(mediaListPlayer, mi, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_list_player_set_media_player(mediaListPlayer, mi);
+        
     }
 
     @Test
     public void mediaListPlayerNextNoItems()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        libvlc.libvlc_media_list_player_next(mediaListPlayer, exception);
-        Assert.assertEquals(1, exception.b_raised);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        libvlc.libvlc_media_list_player_next(mediaListPlayer);
     }
 
     /**
@@ -253,35 +238,35 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     // @Test
     public void mediaListPlayerNext() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        libvlc.libvlc_media_list_player_play_item_at_index(mediaListPlayer, 0);
         Thread.sleep(150);
-        libvlc.libvlc_media_list_player_next(mediaListPlayer, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        libvlc.libvlc_media_list_player_next(mediaListPlayer);
+        
         libvlc.libvlc_media_list_release(mediaList);
     }
 
     @Test
     public void mediaListPlayerIsPlaying() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance, exception);
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor, exception);
-        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList, exception);
-        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor, exception);
+        
+        LibVlcMediaListPlayer mediaListPlayer = libvlc.libvlc_media_list_player_new(libvlcInstance);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        LibVlcMedia mediaDescriptor = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, mediaDescriptor);
+        libvlc.libvlc_media_list_player_set_media_list(mediaListPlayer, mediaList);
+        libvlc.libvlc_media_list_player_play_item(mediaListPlayer, mediaDescriptor);
 
         while (true)
         {
-            int playing = libvlc.libvlc_media_list_player_get_state(mediaListPlayer, exception);
-            Assert.assertEquals(0, exception.b_raised);
+            int playing = libvlc.libvlc_media_list_player_get_state(mediaListPlayer);
+            
             if (playing == LibVlcState.libvlc_Playing.ordinal())
             {
                 break;
@@ -289,11 +274,11 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
             Thread.sleep(150);
         }
 
-        libvlc.libvlc_media_list_player_stop(mediaListPlayer, exception);
+        libvlc.libvlc_media_list_player_stop(mediaListPlayer);
         while (true)
         {
-            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer, exception);
-            Assert.assertEquals(0, exception.b_raised);
+            int playing = libvlc.libvlc_media_list_player_is_playing(mediaListPlayer);
+            
             if (playing == 0)
             {
                 break;
@@ -301,8 +286,7 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
             Thread.sleep(150);
         }
         Assert.assertEquals(LibVlcState.libvlc_Ended.ordinal(), libvlc.libvlc_media_list_player_get_state(
-            mediaListPlayer,
-            exception));
+            mediaListPlayer));
         libvlc.libvlc_media_list_release(mediaList);
     }
 
@@ -312,8 +296,8 @@ public class LibVlcMediaListPlayerTest extends AbstractVLCInternalTest
     {
         if (current != null)
         {
-            libvlc.libvlc_media_list_player_stop(current, exception);
-            while (libvlc.libvlc_media_list_player_get_state(current, exception) != LibVlcState.libvlc_Ended.ordinal())
+            libvlc.libvlc_media_list_player_stop(current);
+            while (libvlc.libvlc_media_list_player_get_state(current) != LibVlcState.libvlc_Ended.ordinal())
             {
                 try
                 {
index 8b2aa83..1809c5a 100644 (file)
@@ -40,106 +40,103 @@ public class LibVlcMediaListTest extends AbstractVLCInternalTest
     public void mediaListNew()
     {
         libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
         Assert.assertNotNull(mediaList);
-        Assert.assertEquals(0, exception.b_raised);
+        
     }
 
     @Test
     public void mediaListAddMediaDescriptor()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+        
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
         String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-        LibVlcMedia libvlc_media = libvlc.libvlc_media_new(
+        LibVlcMedia libvlc_media = libvlc.libvlc_media_new_location(
             libvlcInstance,
-            mrl,
-            exception);
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        Assert.assertEquals(0, exception.b_raised);
+            mrl
+            );
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        
     }
 
     @Test
     public void mediaListCountTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+        
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
         String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-        LibVlcMedia libvlc_media = libvlc.libvlc_media_new(
+        LibVlcMedia libvlc_media = libvlc.libvlc_media_new_location(
             libvlcInstance,
-            mrl,
-            exception);
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        int result = libvlc.libvlc_media_list_count(mediaList, exception);
+            mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        int result = libvlc.libvlc_media_list_count(mediaList);
         Assert.assertEquals(1, result);
-        Assert.assertEquals(0, exception.b_raised);
+        
 
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        result = libvlc.libvlc_media_list_count(mediaList, exception);
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        result = libvlc.libvlc_media_list_count(mediaList);
         Assert.assertEquals(2, result);
-        Assert.assertEquals(0, exception.b_raised);
+        
     }
 
     @Test
     public void mediaListEventManagerTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
-        Assert.assertNotNull(libvlc.libvlc_media_list_event_manager(mediaList, exception));
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
+        Assert.assertNotNull(libvlc.libvlc_media_list_event_manager(mediaList));
+        
     }
 
     @Test
     public void mediaListIndexOfItemTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+        
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
         String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-        LibVlcMedia libvlc_media = libvlc.libvlc_media_new(
+        LibVlcMedia libvlc_media = libvlc.libvlc_media_new_location(
             libvlcInstance,
-            mrl,
-            exception);
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        int index = libvlc.libvlc_media_list_index_of_item(mediaList, libvlc_media, exception);
+            mrl
+            );
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        int index = libvlc.libvlc_media_list_index_of_item(mediaList, libvlc_media);
         Assert.assertEquals(0, index);
-        Assert.assertEquals(0, exception.b_raised);
+        
     }
 
     @Test
     public void mediaListRemoveIndexTest()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+        
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
         String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-        LibVlcMedia libvlc_media = libvlc.libvlc_media_new(
+        LibVlcMedia libvlc_media = libvlc.libvlc_media_new_location(
             libvlcInstance,
-            mrl,
-            exception);
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        libvlc.libvlc_media_list_remove_index(mediaList, 0, exception);
-        Assert.assertEquals(0, exception.b_raised);
+            mrl
+            );
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        libvlc.libvlc_media_list_remove_index(mediaList, 0);
+        
     }
 
     @Test
     public void mediaListRemoveIndexTest2()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance, exception);
+        
+        LibVlcMediaList mediaList = libvlc.libvlc_media_list_new(libvlcInstance);
         String mrl = this.getClass().getResource("/raffa_voice.ogg").getPath();
-        LibVlcMedia libvlc_media = libvlc.libvlc_media_new(
+        LibVlcMedia libvlc_media = libvlc.libvlc_media_new_location(
             libvlcInstance,
-            mrl,
-            exception);
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        libvlc.libvlc_media_list_remove_index(mediaList, 0, exception);
-        Assert.assertEquals(0, exception.b_raised);
+            mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        libvlc.libvlc_media_list_remove_index(mediaList, 0);
+        
 
-        libvlc_media = libvlc.libvlc_media_new(
+        libvlc_media = libvlc.libvlc_media_new_location(
             libvlcInstance,
-            mrl,
-            exception);
-        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media, exception);
-        libvlc.libvlc_media_list_remove_index(mediaList, 0, exception);
+            mrl);
+        libvlc.libvlc_media_list_add_media(mediaList, libvlc_media);
+        libvlc.libvlc_media_list_remove_index(mediaList, 0);
     }   
     
 }
index fa70e9d..6f370f2 100644 (file)
@@ -43,9 +43,9 @@ public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
     @Test
     public void testPlayingEvent() throws Exception
     {
-        LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media, exception);
-        LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer, exception);
+        LibVlcMedia media = libvlc.libvlc_media_new_path(libvlcInstance, mrl);
+        LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media);
+        LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer);
         LibVlcCallback callback = new LibVlc.LibVlcCallback()
         {
 
@@ -60,9 +60,9 @@ public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
             eventManager,
             LibVlcEventType.libvlc_MediaPlayerPlaying.ordinal(),
             callback,
-            null,
-            exception);
-        libvlc.libvlc_media_player_play(mediaPlayer, exception);
+            null
+            );
+        libvlc.libvlc_media_player_play(mediaPlayer);
         Thread.sleep(2000L);
         Assert.assertEquals(1, eventFired);
     }
@@ -70,9 +70,9 @@ public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
     @Test
     public void testPausedEvent() throws Exception
     {
-        LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media, exception);
-        LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer, exception);
+        LibVlcMedia media = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media);
+        LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer);
         LibVlcCallback callback = new LibVlc.LibVlcCallback()
         {
 
@@ -87,12 +87,12 @@ public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
             eventManager,
             LibVlcEventType.libvlc_MediaPlayerPaused.ordinal(),
             callback,
-            null,
-            exception);
+            null
+            );
         
-        libvlc.libvlc_media_player_play(mediaPlayer, exception);
+        libvlc.libvlc_media_player_play(mediaPlayer);
         Thread.sleep(1000L);
-        libvlc.libvlc_media_player_pause(mediaPlayer, exception);
+        libvlc.libvlc_media_player_pause(mediaPlayer);
         Thread.sleep(1000L);
         
         Assert.assertEquals(1, eventFired);
@@ -101,9 +101,9 @@ public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
     @Test
     public void testStoppedEvent() throws Exception
     {
-        LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media, exception);
-        LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer, exception);
+        LibVlcMedia media = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media);
+        LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer);
         LibVlcCallback callback = new LibVlc.LibVlcCallback()
         {
 
@@ -118,12 +118,12 @@ public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
             eventManager,
             LibVlcEventType.libvlc_MediaPlayerStopped.ordinal(),
             callback,
-            null,
-            exception);
+            null
+            );
         
-        libvlc.libvlc_media_player_play(mediaPlayer, exception);
+        libvlc.libvlc_media_player_play(mediaPlayer);
         Thread.sleep(1000L);
-        libvlc.libvlc_media_player_stop(mediaPlayer, exception);
+        libvlc.libvlc_media_player_stop(mediaPlayer);
         Thread.sleep(1000L);
         
         Assert.assertEquals(1, eventFired);
index 0f8496e..c8399c9 100644 (file)
@@ -36,90 +36,81 @@ public class LibVlcMediaPlayerTest extends AbstractVLCInternalTest
     @Test
     public void mediaPlayerNew()
     {
-        LibVlcMediaPlayer instance = libvlc.libvlc_media_player_new(libvlcInstance, exception);
+        LibVlcMediaPlayer instance = libvlc.libvlc_media_player_new(libvlcInstance);
         Assert.assertNotNull(instance);
-        Assert.assertEquals(0, exception.b_raised);
     }
     
     @Test
     public void mediaPlayerPlayBad()
     {
-        LibVlcMediaPlayer instance = libvlc.libvlc_media_player_new(libvlcInstance, exception);
-        libvlc.libvlc_media_player_play(instance, exception);
-        Assert.assertEquals(1, exception.b_raised); // no associated media descriptor
+        LibVlcMediaPlayer instance = libvlc.libvlc_media_player_new(libvlcInstance);
+        libvlc.libvlc_media_player_play(instance);
     }
     
     @Test
     public void mediaPlayerPlay()
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_player_play(mi, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_player_play(mi);
     }
     
     @Test
     public void mediaPlayerIsPlaying() throws Exception
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        Assert.assertEquals(0, libvlc.libvlc_media_player_is_playing(mi, exception));
-        libvlc.libvlc_media_player_play(mi, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        Assert.assertEquals(0, libvlc.libvlc_media_player_is_playing(mi));
+        libvlc.libvlc_media_player_play(mi);
         Thread.sleep(200);
-        Assert.assertEquals(1, libvlc.libvlc_media_player_is_playing(mi, exception));
+        Assert.assertEquals(1, libvlc.libvlc_media_player_is_playing(mi));
     }
     
     @Test
     public void mediaPlayerPauseBad()
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_player_pause(mi, exception);
-        Assert.assertEquals(1, exception.b_raised);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_player_pause(mi);
     }
     
     @Test
     public void mediaPlayerPause()
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_player_play(mi, exception);
-        libvlc.libvlc_media_player_pause(mi, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_player_play(mi);
+        libvlc.libvlc_media_player_pause(mi);
     }
     
     @Test
     public void mediaPlayerSetPosition()
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_player_play(mi, exception);
-        libvlc.libvlc_media_player_set_position(mi, 0.5f, exception);
-        Assert.assertEquals(0, exception.b_raised);
-        float position = libvlc.libvlc_media_player_get_position(mi, exception);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_player_play(mi);
+        libvlc.libvlc_media_player_set_position(mi, 0.5f);
+        float position = libvlc.libvlc_media_player_get_position(mi);
         Assert.assertTrue("Position is: " + position, position >= 0.5f);
     }
     
     @Test
     public void mediaPlayerStop()
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_player_stop(mi, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_player_stop(mi);
     }
     
     @Test(timeout = 2000L)
     public void mediaPlayerStop2() throws Exception
     {
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md, exception);
-        libvlc.libvlc_media_player_play(mi, exception);
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcMediaPlayer mi = libvlc.libvlc_media_player_new_from_media(md);
+        libvlc.libvlc_media_player_play(mi);
         Thread.sleep(100);
-        libvlc.libvlc_media_player_stop(mi, exception);
+        libvlc.libvlc_media_player_stop(mi);
         Thread.sleep(500);
-        Assert.assertEquals(0, exception.b_raised);
     }
     
 }
index 591eec9..e668c5b 100644 (file)
@@ -39,60 +39,49 @@ public class LibVlcMediaTest extends AbstractVLCInternalTest
     @Test
     public void testMediaNew() throws Exception
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+        
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
         Assert.assertNotNull(md);
-        Assert.assertEquals(0, exception.b_raised);
+        
     }
     
     @Test
     public void testMediaGetMrl()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        String mdMrl = libvlc.libvlc_media_get_mrl(md, exception);
+        
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        String mdMrl = libvlc.libvlc_media_get_mrl(md);
         Assert.assertEquals(mrl, mdMrl);
     }
     
     @Test
     public void testMediaDuplicate()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
+        
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
         LibVlcMedia md2 = libvlc.libvlc_media_duplicate(md);
         Assert.assertNotSame(md.getPointer(), md2.getPointer());
-        Assert.assertEquals(libvlc.libvlc_media_get_mrl(md2, exception), libvlc.libvlc_media_get_mrl(md, exception));
+        Assert.assertEquals(libvlc.libvlc_media_get_mrl(md2), libvlc.libvlc_media_get_mrl(md));
     }
     
     @Test
     public void testMediaEventManager()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        LibVlcEventManager evManager = libvlc.libvlc_media_event_manager(md, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        LibVlcEventManager evManager = libvlc.libvlc_media_event_manager(md);
+        
         Assert.assertNotNull(evManager);
     }
 
     @Test
     public void testMediaGetState()
     {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        int state = libvlc.libvlc_media_get_state(md, exception);
-        Assert.assertEquals(0, exception.b_raised);
+        
+        LibVlcMedia md = libvlc.libvlc_media_new_location(libvlcInstance, mrl);
+        int state = libvlc.libvlc_media_get_state(md);
+        
         Assert.assertEquals(LibVlcState.libvlc_NothingSpecial.ordinal(), state);
     }
-
-    @Test
-    public void testMediaIsPreparsed()
-    {
-        libvlc_exception_t exception = new libvlc_exception_t();
-        LibVlcMedia md = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
-        int state = libvlc.libvlc_media_is_preparsed(md, exception);
-        Assert.assertEquals(0, exception.b_raised);
-        Assert.assertEquals(0, state);
-    }
-
     
 }