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 void libvlc_playlist_loop(LibVlcInstance instance, int loop, libvlc_exception_t exception);
144 void libvlc_playlist_play(LibVlcInstance instance, int itemIndex, int optionsCount, String[] options, libvlc_exception_t exception);
146 void libvlc_playlist_pause(LibVlcInstance instance, libvlc_exception_t exception);
148 void libvlc_playlist_stop(LibVlcInstance instance, libvlc_exception_t exception);
150 int libvlc_playlist_isplaying(LibVlcInstance instance, libvlc_exception_t exception);
152 int libvlc_playlist_items_count(LibVlcInstance instance, libvlc_exception_t exception);
154 void libvlc_playlist_next(LibVlcInstance instance, libvlc_exception_t exception);
156 void libvlc_playlist_prev(LibVlcInstance instance, libvlc_exception_t exception);
158 void libvlc_playlist_clear(LibVlcInstance instance, libvlc_exception_t exception);
160 int libvlc_playlist_add(LibVlcInstance instance, String uri, String name, libvlc_exception_t exception);
162 int libvlc_playlist_delete_item(LibVlcInstance instance, int itemIndex, libvlc_exception_t exception);
164 LibVlcMediaInstance libvlc_playlist_get_media_instance(LibVlcInstance instance, libvlc_exception_t exception);
166 int libvlc_media_instance_is_seekable(LibVlcMediaInstance instance, libvlc_exception_t exception);
168 int libvlc_media_instance_can_pause(LibVlcMediaInstance instance, libvlc_exception_t exception);
171 LibVlcMediaDescriptor libvlc_media_descriptor_new(LibVlcInstance libvlc_instance, String mrl,
172 libvlc_exception_t exception);
174 void libvlc_media_descriptor_add_option(LibVlcMediaDescriptor media_descriptor, String option,
175 libvlc_exception_t exception);
177 String libvlc_media_descriptor_get_mrl(LibVlcMediaDescriptor media_descriptor);
179 void libvlc_media_descriptor_release(LibVlcMediaDescriptor media_descriptor);
181 LibVlcEventManager libvlc_media_descriptor_event_manager(LibVlcMediaDescriptor media_descriptor,
182 libvlc_exception_t exception);
186 LibVlcMediaInstance libvlc_media_instance_new(LibVlcInstance instance, libvlc_exception_t exception);
188 LibVlcMediaInstance libvlc_media_instance_new_from_media_descriptor(LibVlcMediaDescriptor media_descriptor,
189 libvlc_exception_t exception);
191 void libvlc_media_instance_play(LibVlcMediaInstance media_instance, libvlc_exception_t exception);
193 void libvlc_media_instance_pause(LibVlcMediaInstance media_instance, libvlc_exception_t exception);
195 void libvlc_media_instance_stop(LibVlcMediaInstance media_instance, libvlc_exception_t exception);
197 void libvlc_media_instance_set_drawable(LibVlcMediaInstance libvlc_media_instance, long drawable,
198 libvlc_exception_t exception);
200 long libvlc_media_instance_get_length(LibVlcMediaInstance instance, libvlc_exception_t exception);
202 long libvlc_media_instance_get_time(LibVlcMediaInstance instance, libvlc_exception_t exception);
204 void libvlc_media_instance_set_time(LibVlcMediaInstance instance, long time, libvlc_exception_t exception);
206 float libvlc_media_instance_get_position(LibVlcMediaInstance instance, libvlc_exception_t exception);
208 void libvlc_media_instance_set_position(LibVlcMediaInstance instance, float position, libvlc_exception_t exception);
210 int libvlc_media_instance_will_play(LibVlcMediaInstance instance, libvlc_exception_t exception);
212 void libvlc_media_instance_set_rate(LibVlcMediaInstance instance, float rate, libvlc_exception_t exception);
214 float libvlc_media_instance_get_rate(LibVlcMediaInstance instance, libvlc_exception_t exception);
216 int libvlc_media_instance_has_vout(LibVlcMediaInstance instance2, libvlc_exception_t exception);
218 float libvlc_media_instance_get_fps(LibVlcMediaInstance instance2, libvlc_exception_t exception);
220 void libvlc_media_instance_release(LibVlcMediaInstance instance);
222 LibVlcEventManager libvlc_media_instance_event_manager(LibVlcMediaInstance media_instance,
223 libvlc_exception_t exception);
227 LibVlcMediaList libvlc_media_list_new(LibVlcInstance libvlc_instance, libvlc_exception_t exception);
229 void libvlc_media_list_release(LibVlcMediaList libVlcMediaList);
231 void libvlc_media_list_add_file_content(LibVlcMediaList libvlc_media_list, String fileName,
232 libvlc_exception_t exception);
234 void libvlc_media_list_set_media_descriptor(LibVlcMediaList libvlc_media_list,
235 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
237 LibVlcMediaDescriptor libvlc_media_list_media_descriptor(LibVlcMediaList libvlc_media_list,
238 libvlc_exception_t exception);
240 void libvlc_media_list_add_media_descriptor(LibVlcMediaList libvlc_media_list,
241 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
243 void libvlc_media_list_insert_media_descriptor(LibVlcMediaList libvlc_media_list,
244 LibVlcMediaDescriptor libvlc_media_descriptor, int position, libvlc_exception_t exception);
246 void libvlc_media_list_remove_index(LibVlcMediaList libvlc_media_list, int position, libvlc_exception_t exception);
248 int libvlc_media_list_count(LibVlcMediaList libvlc_media_list, libvlc_exception_t exception);
250 LibVlcMediaDescriptor libvlc_media_list_item_at_index(LibVlcMediaList libvlc_media_list, int position,
251 libvlc_exception_t exception);
253 int libvlc_media_list_index_of_item(LibVlcMediaList libvlc_media_list,
254 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
256 int libvlc_media_list_is_readonly(LibVlcMediaList libvlc_media_list);
258 LibVlcEventManager libvlc_media_list_event_manager(LibVlcMediaList libvlc_media_list, libvlc_exception_t exception);
260 // libvlc_media_list_player
262 LibVlcMediaListPlayer libvlc_media_list_player_new(LibVlcInstance libvlc_media_instance,
263 libvlc_exception_t exception);
265 void libvlc_media_list_player_release(LibVlcMediaListPlayer libvlc_media_list_player);
267 void libvlc_media_list_player_set_media_instance(LibVlcMediaListPlayer libvlc_media_list_player,
268 LibVlcMediaInstance libvlc_media_instance, libvlc_exception_t exception);
270 void libvlc_media_list_player_set_media_list(LibVlcMediaListPlayer libvlc_media_list_player,
271 LibVlcMediaList libvlc_media_list, libvlc_exception_t exception);
273 void libvlc_media_list_player_play(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
275 void libvlc_media_list_player_pause(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
277 int libvlc_media_list_player_is_playing(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
279 int libvlc_media_list_player_get_state(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
281 void libvlc_media_list_player_play_item_at_index(LibVlcMediaListPlayer libvlc_media_list_player, int position,
282 libvlc_exception_t exception);
284 void libvlc_media_list_player_play_item(LibVlcMediaListPlayer libvlc_media_list_player,
285 LibVlcMediaDescriptor libvlc_media_descriptor, libvlc_exception_t exception);
287 void libvlc_media_list_player_stop(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
289 void libvlc_media_list_player_next(LibVlcMediaListPlayer libvlc_media_list_player, libvlc_exception_t exception);
293 public static interface LibVlcCallback extends Callback
296 void callback(int libvlc_event_t, Pointer userData);
299 void libvlc_event_attach(LibVlcEventManager event_manager, int event_type, LibVlcCallback callback,
300 Pointer userData, libvlc_exception_t exception);
302 void libvlc_event_detach(LibVlcEventManager event_manager, int event_type, LibVlcCallback callback,
303 Pointer userData, libvlc_exception_t excecption);
305 void libvlc_toggle_fullscreen(LibVlcMediaInstance instance, libvlc_exception_t exception);