LibraryForwarding/wayland: Add more method signatures

This commit is contained in:
Tony Wasserka committed 2025-06-27 10:57:10 +02:00
1 parent a691c3cd99
commit 18360d4ccb
2 files changed
+28

No files matched your search

+14
View File
@@ -124,6 +124,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v
} else if (signature == "ii") {
// E.g. xdg_toplevel::configure_bounds
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'i', 'i'>(callback[i]);
} else if (signature == "iu") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'i', 'u'>(callback[i]);
} else if (signature == "iia") {
// E.g. xdg_toplevel::configure
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'i', 'i', 'a'>(callback[i]);
@@ -142,6 +144,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v
} else if (signature == "uff") {
// E.g. wl_pointer_listener::motion
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'f', 'f'>(callback[i]);
} else if (signature == "uffff") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'f', 'f', 'f', 'f'>(callback[i]);
} else if (signature == "uhu") {
// E.g. wl_keyboard_listener::keymap
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'h', 'u'>(callback[i]);
@@ -154,6 +158,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v
} else if (signature == "uiii") {
// E.g. wl_output_listener::mode
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'i', 'i', 'i'>(callback[i]);
} else if (signature == "uiiii") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'i', 'i', 'i', 'i'>(callback[i]);
} else if (signature == "uo") {
// E.g. wl_pointer_listener::leave
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'o'>(callback[i]);
@@ -166,6 +172,10 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v
} else if (signature == "uoffo") {
// E.g. wl_data_device_listener::enter
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'o', 'f', 'f', 'o'>(callback[i]);
} else if (signature == "us") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 's'>(callback[i]);
} else if (signature == "uss") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 's', 's'>(callback[i]);
} else if (signature == "usu") {
// E.g. wl_registry::global
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 's', 'u'>(callback[i]);
@@ -181,6 +191,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v
} else if (signature == "uuoiff") {
// E.g. wl_touch_listener::down
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'u', 'o', 'i', 'f', 'f'>(callback[i]);
} else if (signature == "uuou") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'u', 'o', 'u'>(callback[i]);
} else if (signature == "uuu") {
// E.g. zwp_linux_dmabuf_v1::modifier
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'u', 'u', 'u'>(callback[i]);
@@ -193,6 +205,8 @@ extern "C" int wl_proxy_add_listener(wl_proxy* proxy, void (**callback)(void), v
} else if (signature == "s") {
// E.g. wl_seat::name
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'s'>(callback[i]);
} else if (signature == "ss") {
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'s', 's'>(callback[i]);
} else if (signature == "sii") {
// E.g. zwp_text_input_v3::preedit_string
host_callbacks[i] = WaylandAllocateHostTrampolineForGuestListener<'s', 'i', 'i'>(callback[i]);
+14
View File
@@ -352,6 +352,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest
} else if (signature == "ii") {
// E.g. xdg_toplevel::configure_bounds
WaylandFinalizeHostTrampolineForGuestListener<'i', 'i'>(callback);
} else if (signature == "iu") {
WaylandFinalizeHostTrampolineForGuestListener<'i', 'u'>(callback);
} else if (signature == "iia") {
// E.g. xdg_toplevel::configure
FEX::HLE::FinalizeHostTrampolineForGuestFunction((FEX::HLE::HostToGuestTrampolinePtr*)callback,
@@ -371,6 +373,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest
} else if (signature == "uff") {
// E.g. wl_pointer_listener::motion
WaylandFinalizeHostTrampolineForGuestListener<'u', 'f', 'f'>(callback);
} else if (signature == "uffff") {
WaylandFinalizeHostTrampolineForGuestListener<'u', 'f', 'f', 'f', 'f'>(callback);
} else if (signature == "uhu") {
// E.g. wl_keyboard_listener::keymap
WaylandFinalizeHostTrampolineForGuestListener<'u', 'h', 'u'>(callback);
@@ -383,6 +387,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest
} else if (signature == "uiii") {
// E.g. wl_output_listener::mode
WaylandFinalizeHostTrampolineForGuestListener<'u', 'i', 'i', 'i'>(callback);
} else if (signature == "uiiii") {
WaylandFinalizeHostTrampolineForGuestListener<'u', 'i', 'i', 'i', 'i'>(callback);
} else if (signature == "uo") {
// E.g. wl_pointer_listener::leave
WaylandFinalizeHostTrampolineForGuestListener<'u', 'o'>(callback);
@@ -396,6 +402,10 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest
} else if (signature == "uoffo") {
// E.g. wl_data_device_listener::enter
WaylandFinalizeHostTrampolineForGuestListener<'u', 'o', 'f', 'f', 'o'>(callback);
} else if (signature == "us") {
WaylandFinalizeHostTrampolineForGuestListener<'u', 's'>(callback);
} else if (signature == "uss") {
WaylandFinalizeHostTrampolineForGuestListener<'u', 's', 's'>(callback);
} else if (signature == "usu") {
// E.g. wl_registry::global
WaylandFinalizeHostTrampolineForGuestListener<'u', 's', 'u'>(callback);
@@ -411,6 +421,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest
} else if (signature == "uuoiff") {
// E.g. wl_touch_listener::down
WaylandFinalizeHostTrampolineForGuestListener<'u', 'u', 'o', 'i', 'f', 'f'>(callback);
} else if (signature == "uuou") {
WaylandFinalizeHostTrampolineForGuestListener<'u', 'u', 'o', 'u'>(callback);
} else if (signature == "uuu") {
// E.g. zwp_linux_dmabuf_v1::modifier
WaylandFinalizeHostTrampolineForGuestListener<'u', 'u', 'u'>(callback);
@@ -426,6 +438,8 @@ fexfn_impl_libwayland_client_wl_proxy_add_listener(struct wl_proxy* proxy, guest
} else if (signature == "sii") {
// E.g. zwp_text_input_v3::preedit_string
WaylandFinalizeHostTrampolineForGuestListener<'s', 'i', 'i'>(callback);
} else if (signature == "ss") {
WaylandFinalizeHostTrampolineForGuestListener<'s', 's'>(callback);
} else {
fprintf(stderr, "TODO: Unknown wayland event signature descriptor %s\n", signature.data());
std::abort();