MediaInstance renamed to MediaPlayer
[vlc/bindings/jvlc.git] / 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     private boolean released;
40     
41     /**
42      * @param jvlc The jvlc instance to create the media descriptor for.
43      * @param media The media string
44      */
45     public MediaDescriptor(JVLC jvlc, String media)
46     {
47         libvlc_exception_t exception = new libvlc_exception_t();
48         libvlc = jvlc.getLibvlc();
49         instance = libvlc.libvlc_media_new(jvlc.getInstance(), media, exception);
50         eventManager = libvlc.libvlc_media_event_manager(instance, exception);
51     }
52
53     MediaDescriptor(JVLC jvlc, LibVlcMediaDescriptor instance)
54     {
55         libvlc_exception_t exception = new libvlc_exception_t();
56         libvlc = jvlc.getLibvlc();
57         this.instance = instance;
58         eventManager = libvlc.libvlc_media_event_manager(instance, exception);
59     }
60
61     public void addOption(String option)
62     {
63         libvlc_exception_t exception = new libvlc_exception_t();
64         libvlc.libvlc_media_add_option(instance, option, exception );
65     }
66     
67     public String getMrl()
68     {
69         return libvlc.libvlc_media_get_mrl(instance);
70     }
71     
72     public MediaPlayer getMediaInstance()
73     {
74         return new MediaPlayer(this);
75     }
76     
77     /**
78      * {@inheritDoc}
79      */
80     @Override
81     protected void finalize() throws Throwable
82     {
83         release();
84         super.finalize();
85     }
86
87     
88     
89     /**
90      * Returns the instance.
91      * @return the instance
92      */
93     LibVlcMediaDescriptor getInstance()
94     {
95         return instance;
96     }
97     
98     /**
99      * Returns the libvlc.
100      * @return the libvlc
101      */
102     LibVlc getLibvlc()
103     {
104         return libvlc;
105     }
106
107     /**
108      * 
109      */
110     public void release()
111     {
112         if (released)
113         {
114             return;
115         }
116         released = true;
117         libvlc.libvlc_media_release(instance);
118     }
119     
120     
121 }