about summary refs log tree commit diff stats
path: root/src/wrapped/wrappedpulsemainloopglib.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-01-16 18:22:52 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-01-16 18:22:52 +0100
commit92f7b6fd9e3333f09381bfbf639e97a2d108a1e0 (patch)
treeb6f71525812b766bfe339a0ff6d034c7a6c2c018 /src/wrapped/wrappedpulsemainloopglib.c
parent68c7586c4c2c80903af142d6e219562612d5cc7a (diff)
downloadbox64-92f7b6fd9e3333f09381bfbf639e97a2d108a1e0.tar.gz
box64-92f7b6fd9e3333f09381bfbf639e97a2d108a1e0.zip
Wrapped libpulse-mainloop-glib (for #1203, untested)
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"
+