libvlc_media_list_player_set_media_list( mlp, ml, &ex );
libvlc_media_list_player_play_item( mlp, md, &ex );
- sleep(1); // play is asynchronous
catch ();
libvlc_media_list_player_pause (mlp, &ex);
libvlc_media_player_play (mi, &ex);
catch ();
- /* FIXME: Do something clever */
- sleep(1);
+ /* Wait a correct state */
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mi, &ex);
+ catch ();
+ } while( state != libvlc_Playing &&
+ state != libvlc_Error &&
+ state != libvlc_MediaPlayerEndReached );
- assert( libvlc_media_player_get_state (mi, &ex) != libvlc_Error );
- catch ();
+ assert( state == libvlc_Playing || state == libvlc_MediaPlayerEndReached );
libvlc_media_player_stop (mi, &ex);
catch ();
libvlc_media_player_play (mi, &ex);
catch ();
- /* FIXME: Do something clever */
- sleep(1);
+ /* Wait a correct state */
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mi, &ex);
+ catch ();
+ } while( state != libvlc_Playing &&
+ state != libvlc_Error &&
+ state != libvlc_MediaPlayerEndReached );
- assert( libvlc_media_player_get_state (mi, &ex) == libvlc_Playing );
- catch ();
+ assert( state == libvlc_Playing || state == libvlc_MediaPlayerEndReached );
libvlc_media_player_pause (mi, &ex);
assert( libvlc_media_player_get_state (mi, &ex) == libvlc_Paused );