summaryrefslogtreecommitdiffstats
path: root/mono/DBus.cs
diff options
context:
space:
mode:
Diffstat (limited to 'mono/DBus.cs')
-rw-r--r--mono/DBus.cs24
1 files changed, 22 insertions, 2 deletions
diff --git a/mono/DBus.cs b/mono/DBus.cs
index 1032792a..e2751841 100644
--- a/mono/DBus.cs
+++ b/mono/DBus.cs
@@ -1,13 +1,33 @@
namespace DBus {
using System;
+ using System.Runtime.InteropServices;
public class Exception : ApplicationException {
internal Exception (ref Error error)
: base (Runtime.InteropServices.Marshal.PtrToStringAnsi (error.message)) { }
}
- public class Internals {
- public const string Libname = "libdbus-1.so.0";
+ internal class Internals {
+ internal const string DBusLibname = "libdbus-1.so.0";
+ internal const string DBusGLibname = "libdbus-glib-1.so.0";
+ internal const string GLibname = "libglib-2.0.so.0";
+ internal const string GThreadname = "libgthread-2.0.so.0";
+
+ internal static void Init () {
+ if (!initialized) {
+ initialized = true;
+ g_thread_init ((IntPtr) 0);
+ dbus_gthread_init ();
+ }
+ }
+
+ private static bool initialized = false;
+
+ [DllImport (DBus.Internals.DBusGLibname, EntryPoint="dbus_gthread_init")]
+ private extern static void dbus_gthread_init ();
+
+ [DllImport (DBus.Internals.GThreadname, EntryPoint="g_thread_init")]
+ private extern static void g_thread_init (IntPtr vtable);
}
}