about summary refs log tree commit diff stats
path: root/src/wrapped/wrappedpulsemainloopglib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wrapped/wrappedpulsemainloopglib.c')
-rw-r--r--src/wrapped/wrappedpulsemainloopglib.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/wrapped/wrappedpulsemainloopglib.c b/src/wrapped/wrappedpulsemainloopglib.c
new file mode 100644
index 00000000..b8ef0d50
--- /dev/null
+++ b/src/wrapped/wrappedpulsemainloopglib.c
@@ -0,0 +1,54 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "box64context.h"
+#include "librarian.h"
+#include "myalign.h"
+
+#ifdef ANDROID
+    const char* pulsemainloopglibName = "libpulse-mainloop-glib.so";
+#else
+    const char* pulsemainloopglibName = "libpulse-mainloop-glib.so.0";
+#endif
+
+#define LIBNAME pulsemainloopglib
+
+#include "generated/wrappedpulsemainloopglibtypes.h"
+
+#include "wrappercallback.h"
+
+void my_autobridge_mainloop_api(x64emu_t* emu, void* api);  // defined in pulse.c
+EXPORT void* my_pa_glib_mainloop_get_api(x64emu_t* emu, void* mainloop)
+{
+    void* ret = my->pa_glib_mainloop_get_api(mainloop);
+    my_autobridge_mainloop_api(emu, ret);
+    return ret;
+}
+
+#define PRE_INIT        \
+    if(box64_nopulse)   \
+        return -1;
+
+#ifdef ANDROID
+    #define CUSTOM_INIT \
+        setNeededLibs(lib, 1, "libpulse.so");
+#else
+    #define CUSTOM_INIT \
+        setNeededLibs(lib, 1, "libpulse.so.0");
+#endif
+
+
+#include "wrappedlib_init.h"
+