package org.videolan.jvlc;
import java.util.ArrayList;
-import java.util.LinkedHashSet;
import java.util.List;
import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
-import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor;
+import org.videolan.jvlc.internal.LibVlc.LibVlcMedia;
import org.videolan.jvlc.internal.LibVlc.LibVlcMediaList;
import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
private final LibVlcMediaList instance;
- private final LibVlcEventManager eventManager;
-
private List<String> items = new ArrayList<String>();
+ private LibVlcEventManager eventManager;
+
+ private volatile boolean released;
+
public MediaList(JVLC jvlc)
{
this.jvlc = jvlc;
}
items.add(descriptor.getMrl());
libvlc_exception_t exception = new libvlc_exception_t();
- jvlc.getLibvlc().libvlc_media_list_add_media_descriptor(instance, descriptor.getInstance(), exception);
+ jvlc.getLibvlc().libvlc_media_list_add_media(instance, descriptor.getInstance(), exception);
}
/**
{
throw new IndexOutOfBoundsException();
}
- LibVlcMediaDescriptor descriptor = jvlc.getLibvlc().libvlc_media_list_item_at_index(instance, index, exception);
+ LibVlcMedia descriptor = jvlc.getLibvlc().libvlc_media_list_item_at_index(instance, index, exception);
return new MediaDescriptor(jvlc, descriptor);
}
}
/**
- * @param media The media descriptor mrl.
+ * @param mrl The media descriptor mrl.
*/
public boolean removeMedia(String mrl)
{
libvlc_exception_t exception = new libvlc_exception_t();
jvlc
.getLibvlc()
- .libvlc_media_list_insert_media_descriptor(instance, descriptor.getInstance(), index, exception);
+ .libvlc_media_list_insert_media(instance, descriptor.getInstance(), index, exception);
}
/**
@Override
protected void finalize() throws Throwable
{
- jvlc.getLibvlc().libvlc_media_list_release(instance);
+ release();
super.finalize();
}
return instance;
}
+ /**
+ *
+ */
+ public void release()
+ {
+ if (released)
+ {
+ return;
+ }
+ released = true;
+
+ jvlc.getLibvlc().libvlc_media_list_release(instance);
+ }
+
}