]> git.sesse.net Git - vlc/blob - bindings/java/core/src/main/java/org/videolan/jvlc/MediaDescriptor.java
7e863d3ba3f5319ab6f8447360a7f46cdc77858a
[vlc] / bindings / java / core / src / main / java / org / videolan / jvlc / MediaDescriptor.java
1 /*****************************************************************************
2  * MediaDescriptor.java: VLC Java Bindings Media Descriptor
3  *****************************************************************************
4  * Copyright (C) 1998-2008 the VideoLAN team
5  *
6  * Authors: Filippo Carone <filippo@carone.org>
7  *
8  *
9  * $Id $
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
24  *****************************************************************************/
25
26 package org.videolan.jvlc;
27
28 import org.videolan.jvlc.internal.LibVlc;
29 import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
30 import org.videolan.jvlc.internal.LibVlc.LibVlcMediaDescriptor;
31 import org.videolan.jvlc.internal.LibVlc.libvlc_exception_t;
32
33
34 public class MediaDescriptor
35 {
36     private LibVlcMediaDescriptor instance;
37     private LibVlc libvlc;
38     private LibVlcEventManager eventManager;
39     
40     /**
41      * @param jvlc The jvlc instance to create the media descriptor for.
42      * @param media The media string
43      */
44     public MediaDescriptor(JVLC jvlc, String media)
45     {
46         libvlc_exception_t exception = new libvlc_exception_t();
47         libvlc = jvlc.getLibvlc();
48         instance = libvlc.libvlc_media_new(jvlc.getInstance(), media, exception);
49         eventManager = libvlc.libvlc_media_event_manager(instance, exception);
50     }
51
52     MediaDescriptor(JVLC jvlc, LibVlcMediaDescriptor instance)
53     {
54         libvlc_exception_t exception = new libvlc_exception_t();
55         libvlc = jvlc.getLibvlc();
56         this.instance = instance;
57         eventManager = libvlc.libvlc_media_event_manager(instance, exception);
58     }
59
60     public void addOption(String option)
61     {
62         libvlc_exception_t exception = new libvlc_exception_t();
63         libvlc.libvlc_media_add_option(instance, option, exception );
64     }
65     
66     public String getMrl()
67     {
68         return libvlc.libvlc_media_get_mrl(instance);
69     }
70     
71     public MediaInstance getMediaInstance()
72     {
73         return new MediaInstance(this);
74     }
75     
76     /**
77      * {@inheritDoc}
78      */
79     @Override
80     protected void finalize() throws Throwable
81     {
82         libvlc.libvlc_media_release(instance);
83         super.finalize();
84     }
85
86     
87     
88     /**
89      * Returns the instance.
90      * @return the instance
91      */
92     LibVlcMediaDescriptor getInstance()
93     {
94         return instance;
95     }
96     
97     /**
98      * Returns the libvlc.
99      * @return the libvlc
100      */
101     LibVlc getLibvlc()
102     {
103         return libvlc;
104     }
105 }