]> git.sesse.net Git - vlc/blob - bindings/java/core/src/test/java/org/videolan/jvlc/internal/LibVlcMediaPlayerEventsTest.java
Add some locking.
[vlc] / bindings / java / core / src / test / java / org / videolan / jvlc / internal / LibVlcMediaPlayerEventsTest.java
1 /*****************************************************************************
2  * LibVlcMediaPlayerEventsTest.java: VLC Java Bindings
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.internal;
27
28 import junit.framework.Assert;
29
30 import org.junit.After;
31 import org.junit.Test;
32 import org.videolan.jvlc.internal.LibVlc.LibVlcCallback;
33 import org.videolan.jvlc.internal.LibVlc.LibVlcEventManager;
34 import org.videolan.jvlc.internal.LibVlc.LibVlcMedia;
35 import org.videolan.jvlc.internal.LibVlc.LibVlcMediaPlayer;
36 import org.videolan.jvlc.internal.LibVlc.libvlc_event_t;
37
38 import com.sun.jna.Pointer;
39
40
41 public class LibVlcMediaPlayerEventsTest extends AbstractVLCEventTest
42 {
43     @Test
44     public void testPlayingEvent() throws Exception
45     {
46         LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
47         LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media, exception);
48         LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer, exception);
49         LibVlcCallback callback = new LibVlc.LibVlcCallback()
50         {
51
52             public void callback(libvlc_event_t libvlc_event, Pointer userData)
53             {
54                 Assert.assertEquals(LibVlcEventType.libvlc_MediaPlayerPlaying.ordinal(), libvlc_event.type);
55                 eventFired = 1;
56             }
57         };
58         
59         libvlc.libvlc_event_attach(
60             eventManager,
61             LibVlcEventType.libvlc_MediaPlayerPlaying.ordinal(),
62             callback,
63             null,
64             exception);
65         libvlc.libvlc_media_player_play(mediaPlayer, exception);
66         Thread.sleep(2000L);
67         Assert.assertEquals(1, eventFired);
68     }
69
70     @Test
71     public void testPausedEvent() throws Exception
72     {
73         LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
74         LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media, exception);
75         LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer, exception);
76         LibVlcCallback callback = new LibVlc.LibVlcCallback()
77         {
78
79             public void callback(libvlc_event_t libvlc_event, Pointer userData)
80             {
81                 Assert.assertEquals(LibVlcEventType.libvlc_MediaPlayerPaused.ordinal(), libvlc_event.type);                
82                 eventFired = 1;
83             }
84         };
85         
86         libvlc.libvlc_event_attach(
87             eventManager,
88             LibVlcEventType.libvlc_MediaPlayerPaused.ordinal(),
89             callback,
90             null,
91             exception);
92         
93         libvlc.libvlc_media_player_play(mediaPlayer, exception);
94         Thread.sleep(1000L);
95         libvlc.libvlc_media_player_pause(mediaPlayer, exception);
96         Thread.sleep(1000L);
97         
98         Assert.assertEquals(1, eventFired);
99     }
100
101     @Test
102     public void testStoppedEvent() throws Exception
103     {
104         LibVlcMedia media = libvlc.libvlc_media_new(libvlcInstance, mrl, exception);
105         LibVlcMediaPlayer mediaPlayer = libvlc.libvlc_media_player_new_from_media(media, exception);
106         LibVlcEventManager eventManager = libvlc.libvlc_media_player_event_manager(mediaPlayer, exception);
107         LibVlcCallback callback = new LibVlc.LibVlcCallback()
108         {
109
110             public void callback(libvlc_event_t libvlc_event, Pointer userData)
111             {
112                 Assert.assertEquals(LibVlcEventType.libvlc_MediaPlayerStopped.ordinal(), libvlc_event.type);                
113                 eventFired = 1;
114             }
115         };
116         
117         libvlc.libvlc_event_attach(
118             eventManager,
119             LibVlcEventType.libvlc_MediaPlayerStopped.ordinal(),
120             callback,
121             null,
122             exception);
123         
124         libvlc.libvlc_media_player_play(mediaPlayer, exception);
125         Thread.sleep(1000L);
126         libvlc.libvlc_media_player_stop(mediaPlayer, exception);
127         Thread.sleep(1000L);
128         
129         Assert.assertEquals(1, eventFired);
130     }
131
132 }