This allows for the direct addition of subitems in the playback options test.
This would not be necessary if there were an add subitems function.
*/
-#include "../../src/control/media_internal.h"
+#include "../../lib/media_internal.h"
struct check_items_order_data {
bool done_playing;
{
// 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)
vlc = libvlc_new (argc, argv);
assert (vlc != NULL);
- md = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert(md);
ml = libvlc_media_list_new (vlc);
assert (ml != NULL);
- mlp = libvlc_media_list_player_new (vlc, &ex);
- catch ();
+ mlp = libvlc_media_list_player_new (vlc);
+ assert(mlp);
- libvlc_media_list_add_media (ml, md, &ex);
- catch ();
+ libvlc_media_list_add_media (ml, md);
static struct check_items_order_data check;
check_data_init(&check);
queue_expected_item(&check, media_list_add_file_path (vlc, ml, file));
// Add a node
- libvlc_media_t *node = libvlc_media_new_as_node(vlc, "node", &ex);
- catch ();
- libvlc_media_list_add_media(ml, node, &ex);
- catch ();
+ libvlc_media_t *node = libvlc_media_new_as_node(vlc, "node");
+ assert(node);
+ libvlc_media_list_add_media(ml, node);
queue_expected_item(&check, node);
// Add items to that node
check_items_order_callback, &check);
assert(val == 0);
- libvlc_media_list_player_play(mlp, &ex);
- catch ();
+ libvlc_media_list_player_play(mlp);
// 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);
vlc = libvlc_new (argc, argv);
assert (vlc != NULL);
- md = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert(md);
ml = libvlc_media_list_new (vlc);
assert (ml != NULL);
- mlp = libvlc_media_list_player_new (vlc, &ex);
- catch ();
+ mlp = libvlc_media_list_player_new (vlc);
+ assert(mlp);;
- libvlc_media_list_add_media (ml, md, &ex);
- catch ();
+ libvlc_media_list_add_media (ml, md);
// Add three media
media_list_add_file_path (vlc, ml, file);
libvlc_media_list_player_set_media_list (mlp, ml);
- libvlc_media_list_player_play_item (mlp, md, &ex);
- catch ();
+ 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, &ex);
- catch ();
-
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ libvlc_media_list_player_previous (mlp);
- libvlc_media_list_player_pause (mlp, &ex);
- catch();
+ wait_playing (mlp);
- libvlc_media_list_player_previous (mlp, &ex);
- catch ();
+ libvlc_media_list_player_pause (mlp);
+ libvlc_media_list_player_previous (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ wait_playing (mlp);
- libvlc_media_list_player_stop (mlp);
+ stop_and_wait (mlp);
- while (libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ libvlc_media_list_player_previous (mlp);
- libvlc_media_list_player_previous (mlp, &ex);
- catch ();
+ wait_playing (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
-
- 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);
vlc = libvlc_new (argc, argv);
assert (vlc != NULL);
- md = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert(md);
ml = libvlc_media_list_new (vlc);
assert (ml != NULL);
- mlp = libvlc_media_list_player_new (vlc, &ex);
- catch ();
+ mlp = libvlc_media_list_player_new (vlc);
+ assert(mlp);
- libvlc_media_list_add_media (ml, md, &ex);
- catch ();
+ libvlc_media_list_add_media (ml, md);
// Add three media
media_list_add_file_path (vlc, ml, file);
libvlc_media_list_player_set_media_list (mlp, ml);
- libvlc_media_list_player_play_item (mlp, md, &ex);
- catch ();
+ libvlc_media_list_player_play_item (mlp, md);
libvlc_media_release (md);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
-
- libvlc_media_list_player_next (mlp, &ex);
- catch ();
+ wait_playing (mlp);
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ libvlc_media_list_player_next (mlp);
- libvlc_media_list_player_pause (mlp, &ex);
- catch();
+ wait_playing (mlp);
- libvlc_media_list_player_next (mlp, &ex);
- catch ();
-
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ libvlc_media_list_player_pause (mlp);
+ libvlc_media_list_player_next (mlp);
- 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_next (mlp, &ex);
- catch ();
+ 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);
vlc = libvlc_new (argc, argv);
assert (vlc != NULL);
- md = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert(md);
ml = libvlc_media_list_new (vlc);
assert (ml != NULL);
- mlp = libvlc_media_list_player_new (vlc, &ex);
+ mlp = libvlc_media_list_player_new (vlc);
+ assert(mlp);
- libvlc_media_list_add_media( ml, md, &ex );
- catch ();
+ libvlc_media_list_add_media( ml, md);
libvlc_media_list_player_set_media_list( mlp, ml );
- libvlc_media_list_player_play_item( mlp, md, &ex );
- catch ();
+ 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, &ex);
- catch();
+ 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);
log ("Testing play_item_at_index of %s using the media list.\n", file);
- vlc = libvlc_new (argc, argv, &ex);
+ vlc = libvlc_new (argc, argv);
assert (vlc != NULL);
- md = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert(md);
ml = libvlc_media_list_new (vlc);
assert (ml != NULL);
- mlp = libvlc_media_list_player_new (vlc, &ex);
+ mlp = libvlc_media_list_player_new (vlc);
+ assert(mlp);
for (unsigned i = 0; i < 5; i++)
- {
- libvlc_media_list_add_media( ml, md, &ex );
- catch ();
- }
+ 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 );
- libvlc_media_list_player_play_item_at_index( mlp, 0, &ex );
- catch ();
-
- 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);
* ml5&6: 0 0 -- 1
*/
- md = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md = libvlc_media_new_path (vlc, file);
+ assert(md);
- md2 = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md2 = libvlc_media_new_path (vlc, file);
+ assert(md2);
- md3 = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md3 = libvlc_media_new_path (vlc, file);
+ assert(md3);
- md4 = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md4 = libvlc_media_new_path (vlc, file);
+ assert(md4);
- md5 = libvlc_media_new_path (vlc, file, &ex);
- catch ();
+ md5 = libvlc_media_new_path (vlc, file);
+ assert(md5);
ml = libvlc_media_list_new (vlc);
assert (ml != NULL);
media_list_add_file_path (vlc, ml3, file);
media_list_add_file_path (vlc, ml3, file);
- libvlc_media_list_add_media (ml3, md4, &ex);
- catch ();
+ libvlc_media_list_add_media (ml3, md4);
media_list_add_file_path (vlc, ml3, file);
media_list_add_file_path (vlc, ml3, file);
media_list_add_file_path (vlc, ml3, file);
- libvlc_media_list_add_media (ml3, md5, &ex);
- catch ();
+ libvlc_media_list_add_media (ml3, md5);
media_list_add_file_path (vlc, ml4, file);
media_list_add_file_path (vlc, ml4, file);
md4->p_subitems = ml5;
md5->p_subitems = ml6;
- libvlc_media_list_add_media (ml, md, &ex);
- catch ();
-
- libvlc_media_list_add_media (ml, md2, &ex);
- catch ();
-
- libvlc_media_list_add_media (ml, md3, &ex);
- catch ();
+ libvlc_media_list_add_media (ml, md);
+ libvlc_media_list_add_media (ml, md2);
+ libvlc_media_list_add_media (ml, md3);
- mlp = libvlc_media_list_player_new (vlc, &ex);
- catch ();
+ mlp = libvlc_media_list_player_new (vlc);
+ assert(mlp);
libvlc_media_list_player_set_media_list (mlp, ml);
// Test default playback mode
libvlc_media_list_player_set_playback_mode(mlp, libvlc_playback_mode_default);
- libvlc_media_list_player_play_item (mlp, md, &ex);
- catch ();
+ 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);
log ("Testing media player playback option - Loop\n");
libvlc_media_list_player_set_playback_mode(mlp, libvlc_playback_mode_loop);
- libvlc_media_list_player_play_item (mlp, md, &ex);
- catch ();
+ 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_set_playback_mode(mlp, libvlc_playback_mode_repeat);
- libvlc_media_list_player_play_item (mlp, md, &ex);
- catch ();
-
- while (!libvlc_media_list_player_is_playing (mlp))
- sched_yield();
+ libvlc_media_list_player_play_item (mlp, md);
- 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);
{
test_init();
+ // There are 6 tests. And they take some times.
+ alarm(6 * 5);
+
test_media_list_player_pause_stop (test_defaults_args, test_defaults_nargs);
test_media_list_player_play_item_at_index (test_defaults_args, test_defaults_nargs);
test_media_list_player_previous (test_defaults_args, test_defaults_nargs);