From 86dfd2840fc5fd2651d0e45bbfca0140fea7b103 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Tue, 10 Oct 2023 14:18:35 +0200 Subject: Added wrapped libayatana-appindicator3 and libdbusmenu-glib (for #1013) --- src/library_list.h | 3 +- src/wrapped/generated/functions_list.txt | 7 ++ .../generated/wrappedayatanaappindicator3defs.h | 8 ++ .../generated/wrappedayatanaappindicator3types.h | 17 +++ .../generated/wrappedayatanaappindicator3undefs.h | 8 ++ src/wrapped/generated/wrappeddbusmenuglibdefs.h | 8 ++ src/wrapped/generated/wrappeddbusmenuglibtypes.h | 22 ++++ src/wrapped/generated/wrappeddbusmenuglibundefs.h | 8 ++ src/wrapped/wrappedayatanaappindicator3.c | 19 ++++ src/wrapped/wrappedayatanaappindicator3_private.h | 45 ++++++++ src/wrapped/wrappeddbusmenuglib.c | 115 +++++++++++++++++++++ src/wrapped/wrappeddbusmenuglib_private.h | 84 +++++++++++++++ 12 files changed, 343 insertions(+), 1 deletion(-) create mode 100644 src/wrapped/generated/wrappedayatanaappindicator3defs.h create mode 100644 src/wrapped/generated/wrappedayatanaappindicator3types.h create mode 100644 src/wrapped/generated/wrappedayatanaappindicator3undefs.h create mode 100644 src/wrapped/generated/wrappeddbusmenuglibdefs.h create mode 100644 src/wrapped/generated/wrappeddbusmenuglibtypes.h create mode 100644 src/wrapped/generated/wrappeddbusmenuglibundefs.h create mode 100644 src/wrapped/wrappedayatanaappindicator3.c create mode 100644 src/wrapped/wrappedayatanaappindicator3_private.h create mode 100644 src/wrapped/wrappeddbusmenuglib.c create mode 100644 src/wrapped/wrappeddbusmenuglib_private.h (limited to 'src') diff --git a/src/library_list.h b/src/library_list.h index 5a5d3ec7..c0935775 100644 --- a/src/library_list.h +++ b/src/library_list.h @@ -128,10 +128,11 @@ GO("libgthread-2.0.so.0", gthread2) //GO("libgstreamer-0.10.so.0", gstreamer010) //GO("libgstinterfaces-0.10.so.0", gstinterfaces010) //GO("libdbusmenu-gtk.so.4", dbusmenugtk) -//GO("libdbusmenu-glib.so.4", dbusmenuglib) +GO("libdbusmenu-glib.so.4", dbusmenuglib) GO("libdbus-glib-1.so.2", dbusglib1) //GO("libgudev-1.0.so.0", gudev1) //GO("libappindicator.so.1", appindicator) +GO("libayatana-appindicator3.so.1", ayatanaappindicator3) GO("libatk-1.0.so.0", atk) GO("libatk-bridge-2.0.so.0", atkbridge) GO("libatspi.so.0", atspi) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 01b2f668..94d60e02 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -2956,6 +2956,7 @@ wrappedatomic: wrappedatspi: - pFppp: - atspi_event_listener_new +wrappedayatanaappindicator3: wrappedbz2: - iFp: - BZ2_bzCompressEnd @@ -3111,6 +3112,12 @@ wrappeddbusglib1: - dbus_g_proxy_begin_call - pFpppppiiV: - dbus_g_proxy_begin_call_with_timeout +wrappeddbusmenuglib: +- vFppp: + - dbusmenu_menuitem_foreach + - dbusmenu_menuitem_send_about_to_show +- iFppp: + - dbusmenu_client_add_type_handler wrappedevent21: - vFpiwpp: - event_set diff --git a/src/wrapped/generated/wrappedayatanaappindicator3defs.h b/src/wrapped/generated/wrappedayatanaappindicator3defs.h new file mode 100644 index 00000000..2a648441 --- /dev/null +++ b/src/wrapped/generated/wrappedayatanaappindicator3defs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedayatanaappindicator3DEFS_H_ +#define __wrappedayatanaappindicator3DEFS_H_ + + +#endif // __wrappedayatanaappindicator3DEFS_H_ diff --git a/src/wrapped/generated/wrappedayatanaappindicator3types.h b/src/wrapped/generated/wrappedayatanaappindicator3types.h new file mode 100644 index 00000000..7b6fac00 --- /dev/null +++ b/src/wrapped/generated/wrappedayatanaappindicator3types.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedayatanaappindicator3TYPES_H_ +#define __wrappedayatanaappindicator3TYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedayatanaappindicator3TYPES_H_ diff --git a/src/wrapped/generated/wrappedayatanaappindicator3undefs.h b/src/wrapped/generated/wrappedayatanaappindicator3undefs.h new file mode 100644 index 00000000..2e8c6839 --- /dev/null +++ b/src/wrapped/generated/wrappedayatanaappindicator3undefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedayatanaappindicator3UNDEFS_H_ +#define __wrappedayatanaappindicator3UNDEFS_H_ + + +#endif // __wrappedayatanaappindicator3UNDEFS_H_ diff --git a/src/wrapped/generated/wrappeddbusmenuglibdefs.h b/src/wrapped/generated/wrappeddbusmenuglibdefs.h new file mode 100644 index 00000000..c595b51b --- /dev/null +++ b/src/wrapped/generated/wrappeddbusmenuglibdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappeddbusmenuglibDEFS_H_ +#define __wrappeddbusmenuglibDEFS_H_ + + +#endif // __wrappeddbusmenuglibDEFS_H_ diff --git a/src/wrapped/generated/wrappeddbusmenuglibtypes.h b/src/wrapped/generated/wrappeddbusmenuglibtypes.h new file mode 100644 index 00000000..9235ed59 --- /dev/null +++ b/src/wrapped/generated/wrappeddbusmenuglibtypes.h @@ -0,0 +1,22 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappeddbusmenuglibTYPES_H_ +#define __wrappeddbusmenuglibTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef void (*vFppp_t)(void*, void*, void*); +typedef int32_t (*iFppp_t)(void*, void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(dbusmenu_menuitem_foreach, vFppp_t) \ + GO(dbusmenu_menuitem_send_about_to_show, vFppp_t) \ + GO(dbusmenu_client_add_type_handler, iFppp_t) + +#endif // __wrappeddbusmenuglibTYPES_H_ diff --git a/src/wrapped/generated/wrappeddbusmenuglibundefs.h b/src/wrapped/generated/wrappeddbusmenuglibundefs.h new file mode 100644 index 00000000..8e4dbc7b --- /dev/null +++ b/src/wrapped/generated/wrappeddbusmenuglibundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappeddbusmenuglibUNDEFS_H_ +#define __wrappeddbusmenuglibUNDEFS_H_ + + +#endif // __wrappeddbusmenuglibUNDEFS_H_ diff --git a/src/wrapped/wrappedayatanaappindicator3.c b/src/wrapped/wrappedayatanaappindicator3.c new file mode 100644 index 00000000..82977330 --- /dev/null +++ b/src/wrapped/wrappedayatanaappindicator3.c @@ -0,0 +1,19 @@ +#include +#include +#include +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* ayatanaappindicator3Name = "libayatana-appindicator3.so.1"; + +#define LIBNAME ayatanaappindicator3 + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedayatanaappindicator3_private.h b/src/wrapped/wrappedayatanaappindicator3_private.h new file mode 100644 index 00000000..8c76408b --- /dev/null +++ b/src/wrapped/wrappedayatanaappindicator3_private.h @@ -0,0 +1,45 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(app_indicator_build_menu_from_desktop, vFppp) +GO(app_indicator_category_get_type, pFv) +GO(app_indicator_get_attention_icon, pFp) +GO(app_indicator_get_attention_icon_desc, pFp) +GO(app_indicator_get_category, iFp) +GO(app_indicator_get_icon, pFp) +GO(app_indicator_get_icon_desc, pFp) +GO(app_indicator_get_icon_theme_path, pFp) +GO(app_indicator_get_id, pFp) +GO(app_indicator_get_label, pFp) +GO(app_indicator_get_label_guide, pFp) +GO(app_indicator_get_menu, pFp) +GO(app_indicator_get_ordering_index, uFp) +GO(app_indicator_get_secondary_activate_target, pFp) +GO(app_indicator_get_status, iFp) +GO(app_indicator_get_title, pFp) +GO(app_indicator_get_type, iFv) +GO(app_indicator_new, pFppi) +GO(app_indicator_new_with_path, pFppip) +GO(app_indicator_set_attention_icon, vFpp) +GO(app_indicator_set_attention_icon_full, vFppp) +GO(app_indicator_set_icon, vFpp) +GO(app_indicator_set_icon_full, vFppp) +GO(app_indicator_set_icon_theme_path, vFpp) +GO(app_indicator_set_label, vFppp) +GO(app_indicator_set_menu, vFpp) +GO(app_indicator_set_ordering_index, vFpu) +GO(app_indicator_set_secondary_activate_target, vFpp) +GO(app_indicator_set_status, vFpi) +GO(app_indicator_set_title, vFpp) +GO(app_indicator_status_get_type, iFv) +//GO(_application_service_marshal_VOID__BOOLEAN_STRING_OBJECT, +//GO(_application_service_marshal_VOID__INT_INT, +//GO(_application_service_marshal_VOID__INT_STRING, +//GO(_application_service_marshal_VOID__INT_STRING_STRING, +//GO(_application_service_marshal_VOID__INT_UINT, +//GO(_application_service_marshal_VOID__STRING_INT_STRING_STRING_STRING_STRING_STRING, +//GO(_application_service_marshal_VOID__STRING_STRING, +//GO(_generate_id, +//DATA(_notification_item, +//DATA(_notification_watcher, diff --git a/src/wrapped/wrappeddbusmenuglib.c b/src/wrapped/wrappeddbusmenuglib.c new file mode 100644 index 00000000..dd5f3183 --- /dev/null +++ b/src/wrapped/wrappeddbusmenuglib.c @@ -0,0 +1,115 @@ +#include +#include +#include +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include + +#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 "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "callback.h" + +#ifdef ANDROID + const char* dbusmenuglibName = "libdbusmenu-glib.so"; +#else + const char* dbusmenuglibName = "libdbusmenu-glib.so.4"; +#endif + +#define LIBNAME dbusmenuglib + +#include "generated/wrappeddbusmenuglibtypes.h" + +#include "wrappercallback.h" + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) + +// DbusmenuClientTypeHandler +#define GO(A) \ +static uintptr_t my_DbusmenuClientTypeHandler_fct_##A = 0; \ +static int my_DbusmenuClientTypeHandler_##A(void* a, void* b, void* c, void* d) \ +{ \ + return RunFunctionFmt(my_DbusmenuClientTypeHandler_fct_##A, "pppp", a, b, c, d);\ +} +SUPER() +#undef GO +static void* findDbusmenuClientTypeHandlerFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DbusmenuClientTypeHandler_fct_##A == (uintptr_t)fct) return my_DbusmenuClientTypeHandler_##A; + SUPER() + #undef GO + #define GO(A) if(my_DbusmenuClientTypeHandler_fct_##A == 0) {my_DbusmenuClientTypeHandler_fct_##A = (uintptr_t)fct; return my_DbusmenuClientTypeHandler_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbusmenuglib DbusmenuClientTypeHandler callback\n"); + return NULL; +} + +// DbusmenuMenuitem +#define GO(A) \ +static uintptr_t my_DbusmenuMenuitem_fct_##A = 0; \ +static void my_DbusmenuMenuitem_##A(void* a, void* b) \ +{ \ + RunFunctionFmt(my_DbusmenuMenuitem_fct_##A, "pp", a, b);\ +} +SUPER() +#undef GO +static void* findDbusmenuMenuitemFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_DbusmenuMenuitem_fct_##A == (uintptr_t)fct) return my_DbusmenuMenuitem_##A; + SUPER() + #undef GO + #define GO(A) if(my_DbusmenuMenuitem_fct_##A == 0) {my_DbusmenuMenuitem_fct_##A = (uintptr_t)fct; return my_DbusmenuMenuitem_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for dbusmenuglib DbusmenuMenuitem callback\n"); + return NULL; +} + +#undef SUPER + +EXPORT int my_dbusmenu_client_add_type_handler(x64emu_t* emu, void* client, void* type, void* f) +{ + (void)emu; + return my->dbusmenu_client_add_type_handler(client, type, findDbusmenuClientTypeHandlerFct(f)); +} + +EXPORT void my_dbusmenu_menuitem_foreach(x64emu_t* emu, void* mi, void* f, void* data) +{ + (void)emu; + my->dbusmenu_menuitem_foreach(mi, findDbusmenuMenuitemFct(f), data); +} + +EXPORT void my_dbusmenu_menuitem_send_about_to_show(x64emu_t* emu, void* mi, void* f, void* data) +{ + (void)emu; + my->dbusmenu_menuitem_send_about_to_show(mi, findDbusmenuMenuitemFct(f), data); +} + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#define CUSTOM_INIT \ + getMy(lib); \ + +#define CUSTOM_FINI \ + freeMy(); + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappeddbusmenuglib_private.h b/src/wrapped/wrappeddbusmenuglib_private.h new file mode 100644 index 00000000..c7491448 --- /dev/null +++ b/src/wrapped/wrappeddbusmenuglib_private.h @@ -0,0 +1,84 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +//DATA(dbus_menu_clean_xml, +GOM(dbusmenu_client_add_type_handler, iFEppp) +//GO(dbusmenu_client_add_type_handler_full, +GO(dbusmenu_client_get_icon_paths, pFp) +GO(dbusmenu_client_get_root, pFp) +//GO(dbusmenu_client_get_status, +//GO(dbusmenu_client_get_text_direction, +GO(dbusmenu_client_get_type, pFv) +//GO(dbusmenu_client_menuitem_get_type, +//GO(dbusmenu_client_menuitem_new, +//GO(dbusmenu_client_new, +//GO(dbusmenu_client_send_about_to_show, +//GO(dbusmenu_client_send_event, +//GO(dbusmenu_defaults_default_get, +//GO(dbusmenu_defaults_default_get_type, +//GO(dbusmenu_defaults_default_set, +//GO(dbusmenu_defaults_get_type, +//GO(dbusmenu_defaults_ref_default, +//GO(dbusmenu_menuitem_build_variant, +GO(dbusmenu_menuitem_child_add_position, iFppu) +GO(dbusmenu_menuitem_child_append, iFpp) +GO(dbusmenu_menuitem_child_delete, iFpp) +GO(dbusmenu_menuitem_child_find, pFpi) +GO(dbusmenu_menuitem_child_prepend, iFpp) +GO(dbusmenu_menuitem_child_reorder, iFppu) +//GO(dbusmenu_menuitem_exposed, +GO(dbusmenu_menuitem_find_id, pFpi) +GOM(dbusmenu_menuitem_foreach, vFEppp) +GO(dbusmenu_menuitem_get_children, pFp) +GO(dbusmenu_menuitem_get_id, iFp) +GO(dbusmenu_menuitem_get_parent, pFp) +GO(dbusmenu_menuitem_get_position, uFpp) +GO(dbusmenu_menuitem_get_position_realized, uFpp) +GO(dbusmenu_menuitem_get_root, iFp) +GO(dbusmenu_menuitem_get_type, iFv) +GO(dbusmenu_menuitem_handle_event, vFpppu) +GO(dbusmenu_menuitem_new, pFv) +GO(dbusmenu_menuitem_new_with_id, pFi) +GO(dbusmenu_menuitem_properties_copy, pFp) +GO(dbusmenu_menuitem_properties_list, pFp) +//GO(dbusmenu_menuitem_properties_variant, +GO(dbusmenu_menuitem_property_exist, iFpp) +GO(dbusmenu_menuitem_property_get, pFpp) +GO(dbusmenu_menuitem_property_get_bool, iFpp) +GO(dbusmenu_menuitem_property_get_byte_array, pFppp) +GO(dbusmenu_menuitem_property_get_int, iFpp) +GO(dbusmenu_menuitem_property_get_variant, pFpp) +//GO(dbusmenu_menuitem_property_is_default, +GO(dbusmenu_menuitem_property_remove, vFpp) +GO(dbusmenu_menuitem_property_set, iFppp) +GO(dbusmenu_menuitem_property_set_bool, iFppi) +GO(dbusmenu_menuitem_property_set_byte_array, iFpppL) +GO(dbusmenu_menuitem_property_set_int, iFppi) +GO(dbusmenu_menuitem_property_set_variant, iFppp) +GO(dbusmenu_menuitem_proxy_get_type, iFv) +//GO(dbusmenu_menuitem_proxy_get_wrapped, +//GO(dbusmenu_menuitem_proxy_new, +//GO(dbusmenu_menuitem_realized, +GOM(dbusmenu_menuitem_send_about_to_show, vFEppp) +//GO(dbusmenu_menuitem_set_parent, +//GO(dbusmenu_menuitem_set_realized, +GO(dbusmenu_menuitem_set_root, vFpi) +GO(dbusmenu_menuitem_show_to_user, vFpu) +GO(dbusmenu_menuitem_take_children, pFp) +//GO(dbusmenu_menuitem_unparent, +GO(dbusmenu_server_get_icon_paths, pFp) +GO(dbusmenu_server_get_status, iFp) +GO(dbusmenu_server_get_text_direction, iFp) +GO(dbusmenu_server_get_type, iFv) +GO(dbusmenu_server_new, pFp) +GO(dbusmenu_server_set_icon_paths, vFpp) +GO(dbusmenu_server_set_root, vFpp) +GO(dbusmenu_server_set_status, vFpi) +GO(dbusmenu_server_set_text_direction, vFpi) +//GO(dbusmenu_status_get_nick, +GO(dbusmenu_status_get_type, iFv) +//GO(dbusmenu_status_get_value_from_nick, +//GO(dbusmenu_text_direction_get_nick, +//GO(dbusmenu_text_direction_get_type, +//GO(dbusmenu_text_direction_get_value_from_nick, -- cgit 1.4.1