private MediaList mediaList;
+ private VLM vlm;
+
+ private volatile boolean released;
+
public JVLC()
{
- String[] args = new String[1];
- args[0] = "jvlc";
+ String[] args = new String[] {};
instance = createInstance(args);
mediaList = new MediaList(this);
}
public JVLC(String[] args)
{
- String[] myargs = new String[args.length + 1];
- myargs[0] = "jvlc";
- System.arraycopy(args, 0, myargs, 1, args.length);
- instance = createInstance(myargs);
+ instance = createInstance(args);
}
public JVLC(String args)
this(args.split(" "));
}
- public MediaInstance play(String media)
+ /*
+ * Core methods
+ */
+ private LibVlcInstance createInstance(String[] args)
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ return libvlc.libvlc_new(args.length, args, exception);
+ }
+
+ public MediaPlayer play(String media)
{
MediaDescriptor mediaDescriptor = new MediaDescriptor(this, media);
- MediaInstance mediaInstance = new MediaInstance(mediaDescriptor);
+ MediaPlayer mediaInstance = new MediaPlayer(mediaDescriptor);
mediaInstance.play();
+ mediaDescriptor.release();
return mediaInstance;
}
libvlc.libvlc_video_set_parent(instance, drawable, exception );
}
- /*
- * Core methods
+ public Logger getLogger()
+ {
+ return new Logger(this);
+ }
+
+ /**
+ * Returns the mediaList.
+ * @return the mediaList
*/
- private LibVlcInstance createInstance(String[] args)
+ public MediaList getMediaList()
+ {
+ return mediaList;
+ }
+
+ public VLM getVLM()
+ {
+ if (vlm != null)
+ {
+ vlm.release();
+ }
+ this.vlm = new VLM(this);
+ return vlm;
+ }
+
+ public LoggerVerbosityLevel getLogVerbosity()
{
libvlc_exception_t exception = new libvlc_exception_t();
- libvlc.libvlc_exception_init(exception);
+ int level = libvlc.libvlc_get_log_verbosity(instance, exception);
+ return LoggerVerbosityLevel.getSeverity(level);
+ }
- return libvlc.libvlc_new(args.length, args, exception);
+ public void setLogVerbosity(LoggerVerbosityLevel level)
+ {
+ libvlc_exception_t exception = new libvlc_exception_t();
+ libvlc.libvlc_set_log_verbosity(instance, level.ordinal(), exception);
}
+
/**
* Returns the _instance.
* @return the _instance
{
return libvlc;
}
+
+ /**
+ * Releases this instance and the native resources.
+ */
+ public void release()
+ {
+ if (released)
+ {
+ return;
+ }
+ released = true;
+ if (vlm != null)
+ {
+ vlm.release();
+ vlm = null;
+ }
+ libvlc.libvlc_release(instance);
+ }
/*
* (non-Javadoc)
@Override
protected void finalize() throws Throwable
{
- libvlc.libvlc_release(instance);
+ release();
super.finalize();
}
- /**
- * Returns the mediaList.
- * @return the mediaList
- */
- public MediaList getMediaList()
- {
- return mediaList;
- }
-
}