Added Version class
authorStephan Sundermann <stephansundermann@gmail.com>
Wed, 31 Jul 2013 11:19:42 +0000 (13:19 +0200)
committerStephan Sundermann <stephansundermann@gmail.com>
Sat, 21 Dec 2013 15:52:21 +0000 (16:52 +0100)
sources/custom/Version.cs [new file with mode: 0644]

diff --git a/sources/custom/Version.cs b/sources/custom/Version.cs
new file mode 100644 (file)
index 0000000..38a084c
--- /dev/null
@@ -0,0 +1,81 @@
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+//
+// Version.cs: Lightweight Version Object for GStreamer
+//
+// Authors:
+//   Aaron Bockover (abockover@novell.com)
+//      Stephan Sundermann (stephansundermann@gmail.com)
+//
+// Copyright (C) 2006 Novell, Inc.
+//
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace Gst {
+  public static class Version {
+    private static uint major;
+    private static uint minor;
+    private static uint micro;
+    private static uint nano;
+    private static string version_string;
+
+    static Version() {
+      gst_version (out major, out minor, out micro, out nano);
+    }
+
+    public static string Description {
+      get {
+        if (version_string == null) {
+          IntPtr version_string_ptr = gst_version_string();
+          version_string = Gst.GLib.Marshaller.Utf8PtrToString (version_string_ptr);
+        }
+
+        return version_string;
+      }
+    }
+
+    public static uint Major {
+      get {
+        return major;
+      }
+    }
+
+    public static uint Minor {
+      get {
+        return minor;
+      }
+    }
+
+    public static uint Micro {
+      get {
+        return micro;
+      }
+    }
+
+    public static uint Nano {
+      get {
+        return nano;
+      }
+    }
+
+    [DllImport ("libgstreamer-1.0-0.dll") ]
+    private static extern void gst_version (out uint major, out uint minor, out uint micro, out uint nano);
+
+    [DllImport ("libgstreamer-1.0-0.dll") ]
+    private static extern IntPtr gst_version_string();
+  }
+}
\ No newline at end of file