#include "test.h"
+static void test_media_player_set_media(const char** argv, int argc)
+{
+ const char * file = test_default_sample;
+
+ log ("Testing set_media\n");
+
+ libvlc_instance_t *vlc = libvlc_new (argc, argv);
+ assert (vlc != NULL);
+
+ libvlc_media_t *md = libvlc_media_new_path (vlc, file);
+ assert (md != NULL);
+
+ libvlc_media_player_t *mp = libvlc_media_player_new (vlc);
+ assert (mp != NULL);
+
+ libvlc_media_player_set_media (mp, md);
+
+ libvlc_media_release (md);
+
+ libvlc_media_player_play (mp);
+
+ /* Wait a correct state */
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mp);
+ } while(state != libvlc_Playing &&
+ state != libvlc_Error &&
+ state != libvlc_Ended );
+
+ assert(state == libvlc_Playing || state == libvlc_Ended);
+
+ libvlc_media_player_stop (mp);
+ libvlc_media_player_release (mp);
+ libvlc_release (vlc);
+}
+
static void test_media_player_play_stop(const char** argv, int argc)
{
libvlc_instance_t *vlc;
log ("Testing play and pause of %s\n", file);
- libvlc_exception_init (&ex);
- vlc = libvlc_new (argc, argv, &ex);
- catch ();
+ vlc = libvlc_new (argc, argv);
+ assert (vlc != NULL);
- md = libvlc_media_new (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert (md != NULL);
- mi = libvlc_media_player_new_from_media (md, &ex);
- catch ();
+ mi = libvlc_media_player_new_from_media (md);
+ assert (mi != NULL);
libvlc_media_release (md);
- libvlc_media_player_play (mi, &ex);
- catch ();
-
- /* FIXME: Do something clever */
- sleep(1);
+ libvlc_media_player_play (mi);
- assert( libvlc_media_player_get_state (mi, &ex) != libvlc_Error );
- catch ();
+ /* Wait a correct state */
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mi);
+ } while( state != libvlc_Playing &&
+ state != libvlc_Error &&
+ state != libvlc_Ended );
- libvlc_media_player_stop (mi, &ex);
- catch ();
+ assert( state == libvlc_Playing || state == libvlc_Ended );
+ libvlc_media_player_stop (mi);
libvlc_media_player_release (mi);
- catch ();
-
libvlc_release (vlc);
- catch ();
}
static void test_media_player_pause_stop(const char** argv, int argc)
libvlc_media_player_t *mi;
const char * file = test_default_sample;
- log ("Testing play and pause of %s\n", file);
+ log ("Testing pause and stop of %s\n", file);
- libvlc_exception_init (&ex);
- vlc = libvlc_new (argc, argv, &ex);
- catch ();
+ vlc = libvlc_new (argc, argv);
+ assert (vlc != NULL);
- md = libvlc_media_new (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert (md != NULL);
- mi = libvlc_media_player_new_from_media (md, &ex);
- catch ();
+ mi = libvlc_media_player_new_from_media (md);
+ assert (mi != NULL);
libvlc_media_release (md);
- libvlc_media_player_play (mi, &ex);
- catch ();
+ libvlc_media_player_play (mi);
- /* FIXME: Do something clever */
- sleep(1);
+ log ("Waiting for playing\n");
- assert( libvlc_media_player_get_state (mi, &ex) == libvlc_Playing );
- catch ();
+ /* Wait a correct state */
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mi);
+ } while( state != libvlc_Playing &&
+ state != libvlc_Error &&
+ state != libvlc_Ended );
- libvlc_media_player_pause (mi, &ex);
- assert( libvlc_media_player_get_state (mi, &ex) == libvlc_Paused );
- catch();
+ assert( state == libvlc_Playing || state == libvlc_Ended );
- libvlc_media_player_stop (mi, &ex);
- catch ();
+#if 0
+ /* This can't work because under some condition (short file, this is the case) this will be
+ * equivalent to a play() */
+ libvlc_media_player_pause (mi);
- libvlc_media_player_release (mi);
- catch ();
+ log ("Waiting for pause\n");
+
+ /* Wait a correct state */
+ do {
+ state = libvlc_media_player_get_state (mi);
+ } while( state != libvlc_Paused &&
+ state != libvlc_Error &&
+ state != libvlc_Ended );
+ assert( state == libvlc_Paused || state == libvlc_Ended );
+#endif
+
+ libvlc_media_player_stop (mi);
+ libvlc_media_player_release (mi);
libvlc_release (vlc);
- catch ();
}
{
test_init();
+ test_media_player_set_media (test_defaults_args, test_defaults_nargs);
test_media_player_play_stop (test_defaults_args, test_defaults_nargs);
test_media_player_pause_stop (test_defaults_args, test_defaults_nargs);