1 /*****************************************************************************
2 * LibVlc.java: VLC Java Bindings JNA Glue
3 *****************************************************************************
4 * Copyright (C) 1998-2008 the VideoLAN team
6 * Authors: Filippo Carone <filippo@carone.org>
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.
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.
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 *****************************************************************************/
26 package org.videolan.jvlc.internal;
28 import com.sun.jna.Callback;
29 import com.sun.jna.Library;
30 import com.sun.jna.Native;
31 import com.sun.jna.Pointer;
32 import com.sun.jna.PointerType;
33 import com.sun.jna.Structure;
36 public interface LibVlc extends Library
39 LibVlc INSTANCE = (LibVlc) Native.loadLibrary("libvlc-control", LibVlc.class);
41 public static class libvlc_exception_t extends Structure
48 public String message;
51 public class LibVlcInstance extends PointerType
55 public class LibVlcMediaDescriptor extends PointerType
59 public class LibVlcMediaInstance extends PointerType
63 public class LibVlcMediaList extends PointerType
67 public class LibVlcMediaListPlayer extends PointerType
71 public class LibVlcEventManager extends PointerType
76 void libvlc_exception_init(libvlc_exception_t exception);
78 int libvlc_exception_raised(final libvlc_exception_t exception);
80 void libvlc_exception_raise(libvlc_exception_t exception, String format, Object... args);
82 void libvlc_exception_clear(libvlc_exception_t exception);
84 String libvlc_exception_get_message(libvlc_exception_t exception);
87 LibVlcInstance libvlc_new(int argc, String[] argv, libvlc_exception_t exception);
89 void libvlc_release(LibVlcInstance libvlc_instance_t);
93 void libvlc_video_set_parent(LibVlcInstance libvlc_instance, long drawable, libvlc_exception_t exception);
95 void libvlc_toggle_fullscreen(LibVlcMediaInstance libvlc_instance);
97 void libvlc_set_fullscreen(LibVlcMediaInstance instance, int fullscreen, libvlc_exception_t exception);
99 int libvlc_get_fullscreen(LibVlcMediaInstance instance, libvlc_exception_t exception);
101 int libvlc_video_get_height(LibVlcMediaInstance instance, libvlc_exception_t exception);
103 int libvlc_video_get_width(LibVlcMediaInstance instance, libvlc_exception_t exception);
105 String libvlc_video_get_aspect_ration(LibVlcMediaInstance instance, libvlc_exception_t exception);
107 void libvlc_video_set_aspect_ration(LibVlcMediaInstance instance, String ratio, libvlc_exception_t exception);
109 int libvlc_video_get_spu(LibVlcMediaInstance instance, libvlc_exception_t exception);
111 int libvlc_video_set_spu(LibVlcMediaInstance instance, int spu, libvlc_exception_t exception);
113 String libvlc_video_get_crop_geometry(LibVlcMediaInstance instance, libvlc_exception_t exception);
115 void libvlc_video_set_crop_geometry(LibVlcMediaInstance instance, String geometry, libvlc_exception_t exception);
117 void libvlc_video_take_snapshot(LibVlcMediaInstance instance, String filename, int width, int height,
118 libvlc_exception_t exception);
120 void libvlc_video_destroy(LibVlcMediaInstance instance, libvlc_exception_t exception);
122 void libvlc_video_resize(LibVlcMediaInstance instance, int width, int height, libvlc_exception_t exception);
124 void libvlc_video_reparent(LibVlcMediaInstance instance, long drawable, libvlc_exception_t exception);
126 void libvlc_video_set_size(LibVlcInstance instance, int width, int height, libvlc_exception_t exception);
130 void libvlc_audio_toggle_mute(LibVlcInstance instance, libvlc_exception_t exception);
132 void libvlc_audio_set_mute(LibVlcInstance instance, int mute, libvlc_exception_t exception);
134 int libvlc_audio_get_mute(LibVlcInstance instance, libvlc_exception_t exception);
136 int libvlc_audio_get_volume(LibVlcInstance instance, libvlc_exception_t exception);
138 int libvlc_audio_set_volume(LibVlcInstance instance, int volume, libvlc_exception_t exception);
142 LibVlcMediaDescriptor libvlc_media_descriptor_new(LibVlcInstance libvlc_instance, String mrl,
143 libvlc_exception_t exception);
145 void libvlc_media_descriptor_add_option(LibVlcMediaDescriptor media_descriptor, String option,
146 libvlc_exception_t exception);
148 String libvlc_media_descriptor_get_mrl(LibVlcMediaDescriptor media_descriptor);
150 void libvlc_media_descriptor_release(LibVlcMediaDescriptor media_descriptor);
152 LibVlcEventManager libvlc_media_descriptor_event_manager(LibVlcMediaDescriptor media_descriptor,
153 libvlc_exception_t exception);
157 LibVlcMediaInstance libvlc_media_instance_new(LibVlcInstance instance, libvlc_exception_t exception);
159 LibVlcMediaInstance libvlc_media_instance_new_from_media_descriptor(LibVlcMediaDescriptor media_descriptor,
160 libvlc_exception_t exception);
162 void libvlc_media_instance_play(LibVlcMediaInstance media_instance, libvlc_exception_t exception);
164 void libvlc_media_instance_pause(LibVlcMediaInstance media_instance, libvlc_exception_t exception);
166 void libvlc_media_instance_stop(LibVlcMediaInstance media_instance, libvlc_exception_t exception);
168 void libvlc_media_instance_set_drawable(LibVlcMediaInstance libvlc_media_instance, long drawable,
169 libvlc_exception_t exception);
171 long libvlc_media_instance_get_length(LibVlcMediaInstance instance, libvlc_exception_t exception);
173 long libvlc_media_instance_get_time(LibVlcMediaInstance instance, libvlc_exception_t exception);
175 void libvlc_media_instance_set_time(LibVlcMediaInstance instance, long time, libvlc_exception_t exception);
177 float libvlc_media_instance_get_position(LibVlcMediaInstance instance, libvlc_exception_t exception);
179 void libvlc_media_instance_set_position(LibVlcMediaInstance instance, float position, libvlc_exception_t exception);
181 int libvlc_media_instance_will_play(LibVlcMediaInstance instance, libvlc_exception_t exception);
183 void libvlc_media_instance_set_rate(LibVlcMediaInstance instance, float rate, libvlc_exception_t exception);
185 float libvlc_media_instance_get_rate(LibVlcMediaInstance instance, libvlc_exception_t exception);
187 int libvlc_media_instance_has_vout(LibVlcMediaInstance instance2, libvlc_exception_t exception);
189 float libvlc_media_instance_get_fps(LibVlcMediaInstance instance2, libvlc_exception_t exception);
191 void libvlc_media_instance_release(LibVlcMediaInstance instance);
193 LibVlcEventManager libvlc_media_instance_event_manager(LibVlcMediaInstance media_instance,
194 libvlc_exception_t exception);
198 LibVlcMediaList libvlc_media_list_new(LibVlcInstance libvlc_instance, libvlc_exception_t exception);
200 void libvlc_media_list_release(LibVlcMediaList libVlcMediaList);
202 void libvlc_media_list_add_file_content(LibVlcMediaList libvlc_media_list, String fileName,
203 libvlc_exception_t exception);
205 void libvlc_media_list_set_media_descriptor(LibVlcMediaList libvlc_media_list,
206 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
208 LibVlcMediaDescriptor libvlc_media_list_media_descriptor(LibVlcMediaList libvlc_media_list,
209 libvlc_exception_t exception);
211 void libvlc_media_list_add_media_descriptor(LibVlcMediaList libvlc_media_list,
212 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
214 void libvlc_media_list_insert_media_descriptor(LibVlcMediaList libvlc_media_list,
215 LibVlcMediaDescriptor libvlc_media_descriptor, int position, libvlc_exception_t exception);
217 void libvlc_media_list_remove_index(LibVlcMediaList libvlc_media_list, int position, libvlc_exception_t exception);
219 int libvlc_media_list_count(LibVlcMediaList libvlc_media_list, libvlc_exception_t exception);
221 LibVlcMediaDescriptor libvlc_media_list_item_at_index(LibVlcMediaList libvlc_media_list, int position,
222 libvlc_exception_t exception);
224 int libvlc_media_list_index_of_item(LibVlcMediaList libvlc_media_list,
225 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
227 int libvlc_media_list_is_readonly(LibVlcMediaList libvlc_media_list);
229 LibVlcEventManager libvlc_media_list_event_manager(LibVlcMediaList libvlc_media_list, libvlc_exception_t exception);
231 // libvlc_media_list_player
233 LibVlcMediaListPlayer libvlc_media_list_player_new(LibVlcInstance libvlc_media_instance,
234 libvlc_exception_t exception);
236 void libvlc_media_list_player_release(LibVlcMediaListPlayer libvlc_media_list_player);
238 void libvlc_media_list_player_set_media_instance(LibVlcMediaListPlayer libvlc_media_list_player,
239 LibVlcMediaInstance libvlc_media_instance, libvlc_exception_t exception);
241 void libvlc_media_list_player_set_media_list(LibVlcMediaListPlayer libvlc_media_list_player,
242 LibVlcMediaList libvlc_media_list, libvlc_exception_t exception);
244 void libvlc_media_list_player_play(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
246 void libvlc_media_list_player_pause(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
248 int libvlc_media_list_player_is_playing(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
250 int libvlc_media_list_player_get_state(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
252 void libvlc_media_list_player_play_item_at_index(LibVlcMediaListPlayer libvlc_media_list_player, int position,
253 libvlc_exception_t exception);
255 void libvlc_media_list_player_play_item(LibVlcMediaListPlayer libvlc_media_list_player,
256 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
258 void libvlc_media_list_player_stop(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
260 void libvlc_media_list_player_next(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
264 public static interface LibVlcCallback extends Callback
267 void callback(int libvlc_event_t, Pointer userData);
270 void libvlc_event_attach(LibVlcEventManager event_manager, int event_type, LibVlcCallback callback,
271 Pointer userData, libvlc_exception_t exception);
273 void libvlc_event_detach(LibVlcEventManager event_manager, int event_type, LibVlcCallback callback,
274 Pointer userData, libvlc_exception_t excecption);