From: Filippo Carone Date: Mon, 7 Apr 2008 21:28:08 +0000 (+0200) Subject: VLM class almost done X-Git-Tag: 0.9.0-test0~1517 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=88ff21f116e5a39e0261a984e99e9f1bc47aec9e;p=vlc VLM class almost done --- diff --git a/bindings/java/core/src/main/java/org/videolan/jvlc/JVLC.java b/bindings/java/core/src/main/java/org/videolan/jvlc/JVLC.java index 1d089c1566..32cf179888 100644 --- a/bindings/java/core/src/main/java/org/videolan/jvlc/JVLC.java +++ b/bindings/java/core/src/main/java/org/videolan/jvlc/JVLC.java @@ -46,6 +46,8 @@ public class JVLC private MediaList mediaList; + private VLM vlm; + private volatile boolean released; public JVLC() @@ -96,6 +98,16 @@ public class JVLC return new Logger(this); } + 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(); @@ -136,6 +148,11 @@ public class JVLC if (!released) { released = true; + if (vlm != null) + { + vlm.release(); + vlm = null; + } libvlc.libvlc_release(instance); } } diff --git a/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java b/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java index 23a53452e5..4f4c4161c2 100644 --- a/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java +++ b/bindings/java/core/src/main/java/org/videolan/jvlc/VLM.java @@ -30,7 +30,6 @@ import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t; public class VLM { - private JVLC jvlc; public VLM(JVLC jvlc) @@ -140,5 +139,14 @@ public class VLM jvlc.getLibvlc().libvlc_vlm_show_media(jvlc.getInstance(), name, exception); } + /** + * + */ + public void release() + { + libvlc_exception_t exception = new libvlc_exception_t(); + jvlc.getLibvlc().libvlc_vlm_release(jvlc.getInstance(), exception); + } + } diff --git a/bindings/java/core/src/main/java/org/videolan/jvlc/internal/LibVlc.java b/bindings/java/core/src/main/java/org/videolan/jvlc/internal/LibVlc.java index 9fd9f0e686..44adeeff29 100644 --- a/bindings/java/core/src/main/java/org/videolan/jvlc/internal/LibVlc.java +++ b/bindings/java/core/src/main/java/org/videolan/jvlc/internal/LibVlc.java @@ -529,6 +529,8 @@ public interface LibVlc extends Library String libvlc_vlm_show_media(LibVlcInstance p_instance, String psz_name, libvlc_exception_t p_e); + void libvlc_vlm_release(LibVlcInstance p_instance, libvlc_exception_t p_e); + // event manager public static interface LibVlcCallback extends Callback diff --git a/bindings/java/core/src/test/java/org/videolan/jvlc/VLMTest.java b/bindings/java/core/src/test/java/org/videolan/jvlc/VLMTest.java new file mode 100644 index 0000000000..c9ccff31ec --- /dev/null +++ b/bindings/java/core/src/test/java/org/videolan/jvlc/VLMTest.java @@ -0,0 +1,59 @@ +/***************************************************************************** + * VLMTest.java: VLC Java Bindings + ***************************************************************************** + * Copyright (C) 1998-2008 the VideoLAN team + * + * Authors: Filippo Carone + * + * + * $Id $ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + *****************************************************************************/ + +package org.videolan.jvlc; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + + +public class VLMTest +{ + private JVLC jvlc; + + private String mrl = getClass().getResource("/raffa_voice.ogg").getFile(); + + @Before + public void setup() + { + jvlc = new JVLC("-I dummy --aout=dummy --vout=dummy"); + jvlc.setLogVerbosity(LoggerVerbosityLevel.INFO); + } + + @After + public void tearDown() + { + jvlc.release(); + } + + @Test + public void testPlayMedia() + { + VLM vlm = jvlc.getVLM(); + vlm.playMedia(mrl); + } + +}