// // Version.cs: Lightweight Version Object for GStreamer // // Authors: // Aaron Bockover // Stephan Sundermann // // Copyright (C) 2006 Novell, Inc. // // 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 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 = 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("gstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void gst_version(out uint major, out uint minor, out uint micro, out uint nano); [DllImport("gstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)] private static extern IntPtr gst_version_string(); } }