{
// Wait dummily for check_items_order_callback() to flag 'done_playing':
while (!check->done_playing)
- msleep(100000);
+ sched_yield();
+}
+
+static inline void wait_playing(libvlc_media_list_player_t *mlp)
+{
+ while (!libvlc_media_list_player_is_playing (mlp))
+ sched_yield();
+}
+
+static inline void wait_stopped(libvlc_media_list_player_t *mlp)
+{
+ while (libvlc_media_list_player_is_playing (mlp))
+ sched_yield();
+}
+
+static inline void stop_and_wait(libvlc_media_list_player_t *mlp)
+{
+ libvlc_media_list_player_stop (mlp);
+ wait_stopped (mlp);
}
static void check_items_order_callback(const libvlc_event_t * p_event, void * user_data)
// Wait until all item are read
wait_queued_items(&check);
- libvlc_media_list_player_stop (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_list_player_release (mlp);
libvlc_release (vlc);
libvlc_media_list_player_play_item (mlp, md);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
libvlc_media_release (md);
libvlc_media_list_player_previous (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
libvlc_media_list_player_pause (mlp);
libvlc_media_list_player_previous (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
-
- libvlc_media_list_player_stop (mlp);
+ wait_playing (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_list_player_previous (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
-
- libvlc_media_list_player_stop (mlp);
+ wait_playing (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_list_player_release (mlp);
libvlc_release (vlc);
libvlc_media_release (md);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
libvlc_media_list_player_next (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
libvlc_media_list_player_pause (mlp);
libvlc_media_list_player_next (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
- libvlc_media_list_player_stop (mlp);
-
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_list_player_next (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
- libvlc_media_list_player_stop (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_list_player_release (mlp);
libvlc_release (vlc);
libvlc_media_list_player_play_item( mlp, md );
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
libvlc_media_list_player_pause (mlp);
- libvlc_media_list_player_stop (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_release (md);
libvlc_media_list_player_release (mlp);
assert(mlp);
for (unsigned i = 0; i < 5; i++)
- {
libvlc_media_list_add_media( ml, md );
- }
libvlc_media_list_player_set_media_list( mlp, ml );
libvlc_media_list_player_play_item_at_index( mlp, 0 );
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
-
- libvlc_media_list_player_stop (mlp);
+ wait_playing (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_release (md);
libvlc_media_list_player_release (mlp);
libvlc_media_list_player_play_item (mlp, md);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
libvlc_media_release (md);
libvlc_media_release (md2);
libvlc_media_list_player_play_item (mlp, md);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
- libvlc_media_list_player_stop (mlp);
-
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
// Test repeat playback mode
log ("Testing media player playback option - Repeat\n");
libvlc_media_list_player_play_item (mlp, md);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
- libvlc_media_list_player_stop (mlp);
-
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ stop_and_wait (mlp);
libvlc_media_list_player_release (mlp);
libvlc_release (vlc);