]> git.sesse.net Git - vlc/blobdiff - bindings/cil/tests/testvlc.cs
Basic tests for the media player, fix time units
[vlc] / bindings / cil / tests / testvlc.cs
index 1e0c9c20e2c06c93298236dee05be587d6499eeb..3868cadee0da57c21cd600258185590a2b503503 100644 (file)
@@ -35,6 +35,21 @@ namespace VideoLAN.LibVLC.Test
             Console.WriteLine (" preparsed: {0}", m.IsPreparsed);
         }
 
+        private static void DumpPlayer (Player p)
+        {
+            if (!p.IsPlaying)
+                return;
+
+            int percent = (int)(p.Position * 100);
+            Console.Write ("{0} of {1} ms ({2}%)\r", p.Time, p.Length,
+                           percent);
+        }
+
+        private static void Sleep (int msec)
+        {
+            System.Threading.Thread.Sleep (msec);
+        }
+
         public static int Main (string[] args)
         {
             string[] argv = new string[]{
@@ -46,13 +61,27 @@ namespace VideoLAN.LibVLC.Test
             Console.WriteLine (" (compiled with {0})", VLC.Compiler);
 
             VLC vlc = new VLC (argv);
-            Media m = new Media (vlc, "/dev/null");
-            DumpMedia (m);
+            foreach (string mrl in args)
+            {
+                Media media = new Media (vlc, mrl);
+                Player player = new Player (media);
+
+                DumpMedia (media);
+                DumpMedia ((Media)media.Clone ());
 
-            DumpMedia ((Media)m.Clone ());
+                player.Play ();
+                do
+                {
+                    DumpPlayer (player);
+                    Sleep (500);
+                }
+                while (player.IsPlaying);
+                player.Stop ();
+                media.Dispose ();
+                player.Dispose ();
+            }
 
             vlc.Dispose ();
-            m.Dispose ();
             return 0;
         }
     };