X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bindings%2Fjava%2Fcore%2Fsrc%2Fmain%2Fjava%2Forg%2Fvideolan%2Fjvlc%2FMediaList.java;h=834c4bd9a3496c246a1f010d13e9622dbafeb096;hb=de94406f0097da88e57f9a4f36acdbf50580a312;hp=49c1b72711219865b378e6613730dde71f34d069;hpb=27bee6c9629cd7f5c987b52433ca7270cc3ca6e6;p=vlc diff --git a/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java b/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java index 49c1b72711..834c4bd9a3 100644 --- a/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java +++ b/bindings/java/core/src/main/java/org/videolan/jvlc/MediaList.java @@ -26,11 +26,10 @@ 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; @@ -42,10 +41,12 @@ public class MediaList private final LibVlcMediaList instance; - private final LibVlcEventManager eventManager; - private List items = new ArrayList(); + private LibVlcEventManager eventManager; + + private volatile boolean released; + public MediaList(JVLC jvlc) { this.jvlc = jvlc; @@ -74,7 +75,7 @@ public class MediaList } 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); } /** @@ -112,7 +113,7 @@ public class MediaList { 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); } @@ -133,7 +134,7 @@ public class MediaList } /** - * @param media The media descriptor mrl. + * @param mrl The media descriptor mrl. */ public boolean removeMedia(String mrl) { @@ -179,7 +180,7 @@ public class MediaList 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); } /** @@ -188,7 +189,7 @@ public class MediaList @Override protected void finalize() throws Throwable { - jvlc.getLibvlc().libvlc_media_list_release(instance); + release(); super.finalize(); } @@ -201,6 +202,20 @@ public class MediaList return instance; } + /** + * + */ + public void release() + { + if (released) + { + return; + } + released = true; + + jvlc.getLibvlc().libvlc_media_list_release(instance); + } + }