+static void wait_playing(libvlc_media_player_t *mp)
+{
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mp);
+ } while(state != libvlc_Playing &&
+ state != libvlc_Error &&
+ state != libvlc_Ended );
+
+ state = libvlc_media_player_get_state (mp);
+ assert(state == libvlc_Playing || state == libvlc_Ended);
+}
+
+static void wait_paused(libvlc_media_player_t *mp)
+{
+ libvlc_state_t state;
+ do {
+ state = libvlc_media_player_get_state (mp);
+ } while(state != libvlc_Paused &&
+ state != libvlc_Ended );
+
+ state = libvlc_media_player_get_state (mp);
+ assert(state == libvlc_Paused || state == libvlc_Ended);
+}
+
+/* Test a bunch of A/V properties. This most does nothing since the current
+ * test file contains a dummy audio track. This is a smoke test. */
+static void test_audio_video(libvlc_media_player_t *mp)
+{
+ bool fs = libvlc_get_fullscreen(mp);
+ libvlc_set_fullscreen(mp, true);
+ assert(libvlc_get_fullscreen(mp));
+ libvlc_set_fullscreen(mp, false);
+ assert(!libvlc_get_fullscreen(mp));
+ libvlc_toggle_fullscreen(mp);
+ assert(libvlc_get_fullscreen(mp));
+ libvlc_toggle_fullscreen(mp);
+ assert(!libvlc_get_fullscreen(mp));
+ libvlc_set_fullscreen(mp, fs);
+ assert(libvlc_get_fullscreen(mp) == fs);
+
+ assert(libvlc_video_get_scale(mp) == 0.); /* default */
+ libvlc_video_set_scale(mp, 0.); /* no-op */
+ libvlc_video_set_scale(mp, 2.5);
+ assert(libvlc_video_get_scale(mp) == 2.5);
+ libvlc_video_set_scale(mp, 0.);
+ libvlc_video_set_scale(mp, 0.); /* no-op */
+ assert(libvlc_video_get_scale(mp) == 0.);
+}
+
+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_playing (mp);
+
+ libvlc_media_player_stop (mp);
+ libvlc_media_player_release (mp);
+ libvlc_release (vlc);
+}
+