Add media and player state support
[vlc.git] / bindings / cil / src / media.cs
index a6ed833..5c3b0cf 100644 (file)
@@ -42,6 +42,24 @@ namespace VideoLAN.LibVLC
         }
     };
 
+    /**
+     * @brief State: media/player state
+     *
+     * Media and Player objects are always in one of these state.
+     * @see Media::State and @see Player::State.
+     */
+    public enum State
+    {
+        NothingSpecial, /**< Nothing going on */
+        Opening, /**< Being opened */
+        Buffering, /**< Buffering before play */
+        Playing, /**< Playing */
+        Paused, /**< Paused */
+        Stopped, /**< Stopped */
+        Ended, /**< Played until the end */
+        Error, /**< Failed */
+    };
+
     /**
      * @brief Media: a source media
      * @ingroup API
@@ -121,6 +139,19 @@ namespace VideoLAN.LibVLC
             return new Media (LibVLC.MediaDuplicate (Handle));
         }
 
+        /**
+         * Current state of the media.
+         */
+        public State State
+        {
+            get
+            {
+                State ret = LibVLC.MediaGetState (Handle, ex);
+                Raise ();
+                return ret;
+            }
+        }
+
         /**
          * Duration of the media in microseconds. The precision of the result
          * depends on the input stram protocol and file format. The value