]> git.sesse.net Git - vlc/blobdiff - bindings/java/src/playlist-jni.cc
fix dependancies
[vlc] / bindings / java / src / playlist-jni.cc
index 44459845b3f791d59f455c6aef12056aac05ae23..2f8d4bb4645a563b2544408838b711a9ad651990 100644 (file)
 /* These are a must*/\r
 #include <jni.h>\r
 #include <vlc/libvlc.h>\r
+#ifdef WIN32\r
+#include <windows.h>\r
+#undef usleep\r
+#define usleep(var) Sleep(var/1000)\r
+#else\r
+#include <unistd.h>\r
+#endif\r
+#include <stdio.h>\r
 \r
 /* JVLC internal imports, generated by gcjh */\r
 #include "../includes/Playlist.h"\r
@@ -52,14 +60,14 @@ JNIEXPORT jint JNICALL Java_org_videolan_jvlc_Playlist__1playlist_1add (JNIEnv *
             ppsz_options[ i+1 ] =\r
                 env->GetStringUTFChars( ( jstring ) env->GetObjectArrayElement( options, i ), 0 );\r
         }\r
-        res = libvlc_playlist_add_extended( ( libvlc_instance_t * ) instance, psz_uri, psz_name, i_options, ppsz_options, exception );\r
+        res = libvlc_playlist_add_extended( ( libvlc_instance_t * ) instance, psz_uri, psz_name, i_options, ppsz_options, &exception );\r
 \r
-        CHECK_EXCEPTION_FREE;\r
+        CHECK_EXCEPTION;\r
         \r
     } else {\r
-        res = libvlc_playlist_add( ( libvlc_instance_t * ) instance, psz_uri, psz_name, exception );\r
+        res = libvlc_playlist_add( ( libvlc_instance_t * ) instance, psz_uri, psz_name, &exception );\r
         \r
-        CHECK_EXCEPTION_FREE;\r
+        CHECK_EXCEPTION;\r
     }\r
     \r
     if (psz_uri != NULL) {\r
@@ -91,9 +99,16 @@ JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1play (JNIEnv *env, jobj
        }\r
     }\r
 \r
-    libvlc_playlist_play( ( libvlc_instance_t * ) instance, id, i_options, ( char **  ) ppsz_options, exception );\r
+    libvlc_playlist_play( ( libvlc_instance_t * ) instance, id, i_options, ( char **  ) ppsz_options, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE;\r
+    CHECK_EXCEPTION;\r
+    \r
+    while (! libvlc_playlist_isplaying( (libvlc_instance_t*) instance, &exception ) )\r
+    {\r
+        usleep(100);\r
+    }\r
+\r
+    CHECK_EXCEPTION;\r
 }\r
 \r
 \r
@@ -101,54 +116,60 @@ JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1pause (JNIEnv *env, job
 {\r
     INIT_FUNCTION ;\r
 \r
-    libvlc_playlist_pause( ( libvlc_instance_t* ) instance, exception );\r
+    libvlc_playlist_pause( ( libvlc_instance_t* ) instance, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 }\r
 \r
 JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1stop (JNIEnv *env, jobject _this)\r
 {\r
     INIT_FUNCTION ;\r
 \r
-    libvlc_playlist_stop( ( libvlc_instance_t* ) instance, exception );\r
+    libvlc_playlist_stop( ( libvlc_instance_t* ) instance, &exception );\r
+    \r
+    while ( libvlc_playlist_isplaying( (libvlc_instance_t*) instance, &exception ) )\r
+    {\r
+        usleep(100);\r
+    }\r
+    \r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 }\r
 \r
 JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1next (JNIEnv *env, jobject _this)\r
 {\r
     INIT_FUNCTION ;\r
     \r
-    libvlc_playlist_next( ( libvlc_instance_t* ) instance, exception );\r
+    libvlc_playlist_next( ( libvlc_instance_t* ) instance, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 }\r
 \r
 JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1prev (JNIEnv *env, jobject _this)\r
 {\r
     INIT_FUNCTION ;\r
     \r
-    libvlc_playlist_prev( (libvlc_instance_t*) instance, exception );\r
+    libvlc_playlist_prev( (libvlc_instance_t*) instance, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 }\r
 \r
 JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1clear (JNIEnv *env, jobject _this)\r
 {\r
     INIT_FUNCTION ;\r
 \r
-    libvlc_playlist_clear( (libvlc_instance_t*) instance, exception );\r
+    libvlc_playlist_clear( (libvlc_instance_t*) instance, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 }\r
 \r
 JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1deleteItem (JNIEnv *env, jobject _this, jint itemID)\r
 {\r
     INIT_FUNCTION ;\r
 \r
-    libvlc_playlist_delete_item( ( libvlc_instance_t * ) instance, itemID, exception );\r
+    libvlc_playlist_delete_item( ( libvlc_instance_t * ) instance, itemID, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 }\r
 \r
 \r
@@ -157,9 +178,9 @@ JNIEXPORT jint JNICALL Java_org_videolan_jvlc_Playlist__1itemsCount (JNIEnv *env
     INIT_FUNCTION ;\r
     int res = 0;\r
 \r
-    res = libvlc_playlist_items_count( (libvlc_instance_t*) instance, exception );\r
+    res = libvlc_playlist_items_count( (libvlc_instance_t*) instance, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 \r
     return res;\r
 \r
@@ -170,9 +191,9 @@ JNIEXPORT jint JNICALL Java_org_videolan_jvlc_Playlist__1isRunning (JNIEnv *env,
     INIT_FUNCTION ;\r
     int res = 0;\r
 \r
-    res = libvlc_playlist_isplaying( (libvlc_instance_t*) instance, exception );\r
+    res = libvlc_playlist_isplaying( (libvlc_instance_t*) instance, &exception );\r
 \r
-    CHECK_EXCEPTION_FREE ;\r
+    CHECK_EXCEPTION ;\r
 \r
     return res;\r
 }\r
@@ -182,8 +203,8 @@ JNIEXPORT void JNICALL Java_org_videolan_jvlc_Playlist__1setLoop
 {\r
    INIT_FUNCTION ;\r
 \r
-   libvlc_playlist_loop( (libvlc_instance_t*) instance, loop, exception );\r
+   libvlc_playlist_loop( (libvlc_instance_t*) instance, loop, &exception );\r
 \r
-   CHECK_EXCEPTION_FREE ;\r
+   CHECK_EXCEPTION ;\r
    \r
 }   \r