mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-26 22:55:58 +01:00
Merge pull request #505 from martinetd/io_is_foo
Add wlr_input_device_is_foo and wlr_output_is_bar functions
This commit is contained in:
commit
1a96ce0c53
16 changed files with 59 additions and 8 deletions
|
@ -658,6 +658,10 @@ static struct wlr_output_impl output_impl = {
|
||||||
.get_gamma_size = wlr_drm_connector_get_gamma_size,
|
.get_gamma_size = wlr_drm_connector_get_gamma_size,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool wlr_output_is_drm(struct wlr_output *output) {
|
||||||
|
return output->impl == &output_impl;
|
||||||
|
}
|
||||||
|
|
||||||
static int retry_pageflip(void *data) {
|
static int retry_pageflip(void *data) {
|
||||||
struct wlr_drm_connector *conn = data;
|
struct wlr_drm_connector *conn = data;
|
||||||
wlr_log(L_INFO, "%s: Retrying pageflip", conn->output.name);
|
wlr_log(L_INFO, "%s: Retrying pageflip", conn->output.name);
|
||||||
|
|
|
@ -19,6 +19,10 @@ static struct wlr_input_device_impl input_device_impl = {
|
||||||
.destroy = input_device_destroy,
|
.destroy = input_device_destroy,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool wlr_input_device_is_headless(struct wlr_input_device *wlr_dev) {
|
||||||
|
return wlr_dev->impl == &input_device_impl;
|
||||||
|
}
|
||||||
|
|
||||||
struct wlr_input_device *wlr_headless_add_input_device(
|
struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
struct wlr_backend *wlr_backend, enum wlr_input_device_type type) {
|
struct wlr_backend *wlr_backend, enum wlr_input_device_type type) {
|
||||||
struct wlr_headless_backend *backend =
|
struct wlr_headless_backend *backend =
|
||||||
|
|
|
@ -82,6 +82,10 @@ static const struct wlr_output_impl output_impl = {
|
||||||
.swap_buffers = output_swap_buffers,
|
.swap_buffers = output_swap_buffers,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool wlr_output_is_headless(struct wlr_output *wlr_output) {
|
||||||
|
return wlr_output->impl == &output_impl;
|
||||||
|
}
|
||||||
|
|
||||||
static int signal_frame(void *data) {
|
static int signal_frame(void *data) {
|
||||||
struct wlr_headless_output *output = data;
|
struct wlr_headless_output *output = data;
|
||||||
wl_signal_emit(&output->wlr_output.events.frame, &output->wlr_output);
|
wl_signal_emit(&output->wlr_output.events.frame, &output->wlr_output);
|
||||||
|
|
|
@ -53,6 +53,10 @@ static struct wlr_input_device *allocate_device(
|
||||||
return wlr_dev;
|
return wlr_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wlr_input_device_is_libinput(struct wlr_input_device *wlr_dev) {
|
||||||
|
return wlr_dev->impl == &input_device_impl;
|
||||||
|
}
|
||||||
|
|
||||||
static void handle_device_added(struct wlr_libinput_backend *backend,
|
static void handle_device_added(struct wlr_libinput_backend *backend,
|
||||||
struct libinput_device *libinput_dev) {
|
struct libinput_device *libinput_dev) {
|
||||||
assert(backend && libinput_dev);
|
assert(backend && libinput_dev);
|
||||||
|
|
|
@ -205,6 +205,10 @@ static struct wlr_output_impl output_impl = {
|
||||||
.move_cursor = wlr_wl_output_move_cursor,
|
.move_cursor = wlr_wl_output_move_cursor,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool wlr_output_is_wl(struct wlr_output *wlr_output) {
|
||||||
|
return wlr_output->impl == &output_impl;
|
||||||
|
}
|
||||||
|
|
||||||
static void xdg_surface_handle_configure(void *data, struct zxdg_surface_v6 *xdg_surface,
|
static void xdg_surface_handle_configure(void *data, struct zxdg_surface_v6 *xdg_surface,
|
||||||
uint32_t serial) {
|
uint32_t serial) {
|
||||||
struct wlr_wl_backend_output *output = data;
|
struct wlr_wl_backend_output *output = data;
|
||||||
|
|
|
@ -203,6 +203,10 @@ static struct wlr_input_device_impl input_device_impl = {
|
||||||
.destroy = input_device_destroy
|
.destroy = input_device_destroy
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool wlr_input_device_is_wl(struct wlr_input_device *dev) {
|
||||||
|
return dev->impl == &input_device_impl;
|
||||||
|
}
|
||||||
|
|
||||||
static struct wlr_input_device *allocate_device(struct wlr_wl_backend *backend,
|
static struct wlr_input_device *allocate_device(struct wlr_wl_backend *backend,
|
||||||
enum wlr_input_device_type type) {
|
enum wlr_input_device_type type) {
|
||||||
struct wlr_wl_input_device *wlr_wl_dev;
|
struct wlr_wl_input_device *wlr_wl_dev;
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
static struct wlr_backend_impl backend_impl;
|
static struct wlr_backend_impl backend_impl;
|
||||||
static struct wlr_output_impl output_impl;
|
static struct wlr_output_impl output_impl;
|
||||||
|
static struct wlr_input_device_impl input_device_impl = { 0 };
|
||||||
|
|
||||||
static uint32_t xcb_button_to_wl(uint32_t button) {
|
static uint32_t xcb_button_to_wl(uint32_t button) {
|
||||||
switch (button) {
|
switch (button) {
|
||||||
|
@ -328,12 +329,12 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
|
||||||
}
|
}
|
||||||
|
|
||||||
wlr_input_device_init(&x11->keyboard_dev, WLR_INPUT_DEVICE_KEYBOARD,
|
wlr_input_device_init(&x11->keyboard_dev, WLR_INPUT_DEVICE_KEYBOARD,
|
||||||
NULL, "X11 keyboard", 0, 0);
|
&input_device_impl, "X11 keyboard", 0, 0);
|
||||||
wlr_keyboard_init(&x11->keyboard, NULL);
|
wlr_keyboard_init(&x11->keyboard, NULL);
|
||||||
x11->keyboard_dev.keyboard = &x11->keyboard;
|
x11->keyboard_dev.keyboard = &x11->keyboard;
|
||||||
|
|
||||||
wlr_input_device_init(&x11->pointer_dev, WLR_INPUT_DEVICE_POINTER,
|
wlr_input_device_init(&x11->pointer_dev, WLR_INPUT_DEVICE_POINTER,
|
||||||
NULL, "X11 pointer", 0, 0);
|
&input_device_impl, "X11 pointer", 0, 0);
|
||||||
wlr_pointer_init(&x11->pointer, NULL);
|
wlr_pointer_init(&x11->pointer, NULL);
|
||||||
x11->pointer_dev.pointer = &x11->pointer;
|
x11->pointer_dev.pointer = &x11->pointer;
|
||||||
|
|
||||||
|
@ -401,3 +402,11 @@ static struct wlr_output_impl output_impl = {
|
||||||
.make_current = output_make_current,
|
.make_current = output_make_current,
|
||||||
.swap_buffers = output_swap_buffers,
|
.swap_buffers = output_swap_buffers,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool wlr_output_is_x11(struct wlr_output *wlr_output) {
|
||||||
|
return wlr_output->impl == &output_impl;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wlr_input_device_is_x11(struct wlr_input_device *wlr_dev) {
|
||||||
|
return wlr_dev->impl == &input_device_impl;
|
||||||
|
}
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#include <wlr/backend/session.h>
|
#include <wlr/backend/session.h>
|
||||||
#include <wlr/backend/drm.h>
|
#include <wlr/backend/drm.h>
|
||||||
#include <wlr/types/wlr_output.h>
|
|
||||||
#include <wlr/render/egl.h>
|
#include <wlr/render/egl.h>
|
||||||
|
|
||||||
#include "iface.h"
|
#include "iface.h"
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
#include <wlr/backend/interface.h>
|
#include <wlr/backend/interface.h>
|
||||||
#include <wlr/backend/headless.h>
|
#include <wlr/backend/headless.h>
|
||||||
#include <wlr/types/wlr_output.h>
|
|
||||||
|
|
||||||
struct wlr_headless_backend {
|
struct wlr_headless_backend {
|
||||||
struct wlr_backend backend;
|
struct wlr_backend backend;
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
#include <wlr/render/egl.h>
|
#include <wlr/render/egl.h>
|
||||||
#include <wlr/backend/wayland.h>
|
#include <wlr/backend/wayland.h>
|
||||||
#include <wlr/types/wlr_box.h>
|
#include <wlr/types/wlr_box.h>
|
||||||
#include <wlr/types/wlr_output.h>
|
|
||||||
#include <wlr/types/wlr_input_device.h>
|
|
||||||
#include <wayland-util.h>
|
#include <wayland-util.h>
|
||||||
|
|
||||||
struct wlr_wl_backend {
|
struct wlr_wl_backend {
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
#include <X11/Xlib-xcb.h>
|
#include <X11/Xlib-xcb.h>
|
||||||
#include <wayland-server.h>
|
#include <wayland-server.h>
|
||||||
#include <wlr/render/egl.h>
|
#include <wlr/render/egl.h>
|
||||||
#include <wlr/types/wlr_output.h>
|
|
||||||
#include <wlr/types/wlr_input_device.h>
|
|
||||||
|
|
||||||
struct wlr_x11_backend;
|
struct wlr_x11_backend;
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,12 @@
|
||||||
#include <wayland-server.h>
|
#include <wayland-server.h>
|
||||||
#include <wlr/backend/session.h>
|
#include <wlr/backend/session.h>
|
||||||
#include <wlr/backend.h>
|
#include <wlr/backend.h>
|
||||||
|
#include <wlr/types/wlr_output.h>
|
||||||
|
|
||||||
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
|
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
|
||||||
struct wlr_session *session, int gpu_fd, struct wlr_backend *parent);
|
struct wlr_session *session, int gpu_fd, struct wlr_backend *parent);
|
||||||
|
|
||||||
bool wlr_backend_is_drm(struct wlr_backend *backend);
|
bool wlr_backend_is_drm(struct wlr_backend *backend);
|
||||||
|
bool wlr_output_is_drm(struct wlr_output *output);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <wlr/backend.h>
|
#include <wlr/backend.h>
|
||||||
#include <wlr/types/wlr_input_device.h>
|
#include <wlr/types/wlr_input_device.h>
|
||||||
|
#include <wlr/types/wlr_output.h>
|
||||||
|
|
||||||
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display);
|
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display);
|
||||||
struct wlr_output *wlr_headless_add_output(struct wlr_backend *backend,
|
struct wlr_output *wlr_headless_add_output(struct wlr_backend *backend,
|
||||||
|
@ -10,5 +11,7 @@ struct wlr_output *wlr_headless_add_output(struct wlr_backend *backend,
|
||||||
struct wlr_input_device *wlr_headless_add_input_device(
|
struct wlr_input_device *wlr_headless_add_input_device(
|
||||||
struct wlr_backend *backend, enum wlr_input_device_type type);
|
struct wlr_backend *backend, enum wlr_input_device_type type);
|
||||||
bool wlr_backend_is_headless(struct wlr_backend *backend);
|
bool wlr_backend_is_headless(struct wlr_backend *backend);
|
||||||
|
bool wlr_input_device_is_headless(struct wlr_input_device *device);
|
||||||
|
bool wlr_output_is_headless(struct wlr_output *output);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12,5 +12,6 @@ struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
|
||||||
struct libinput_device *wlr_libinput_get_device_handle(struct wlr_input_device *dev);
|
struct libinput_device *wlr_libinput_get_device_handle(struct wlr_input_device *dev);
|
||||||
|
|
||||||
bool wlr_backend_is_libinput(struct wlr_backend *backend);
|
bool wlr_backend_is_libinput(struct wlr_backend *backend);
|
||||||
|
bool wlr_input_device_is_libinput(struct wlr_input_device *device);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
#include <wayland-client.h>
|
#include <wayland-client.h>
|
||||||
#include <wayland-server.h>
|
#include <wayland-server.h>
|
||||||
#include <wlr/backend.h>
|
#include <wlr/backend.h>
|
||||||
|
#include <wlr/types/wlr_input_device.h>
|
||||||
|
#include <wlr/types/wlr_output.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,6 +13,7 @@
|
||||||
* you must use wlr_wl_output_create to add them.
|
* you must use wlr_wl_output_create to add them.
|
||||||
*/
|
*/
|
||||||
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display);
|
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a new output to this backend. You may remove outputs by destroying them.
|
* Adds a new output to this backend. You may remove outputs by destroying them.
|
||||||
* Note that if called before initializing the backend, this will return NULL
|
* Note that if called before initializing the backend, this will return NULL
|
||||||
|
@ -18,9 +21,20 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display);
|
||||||
* the output_add signal).
|
* the output_add signal).
|
||||||
*/
|
*/
|
||||||
struct wlr_output *wlr_wl_output_create(struct wlr_backend *backend);
|
struct wlr_output *wlr_wl_output_create(struct wlr_backend *backend);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* True if the given backend is a wlr_wl_backend.
|
* True if the given backend is a wlr_wl_backend.
|
||||||
*/
|
*/
|
||||||
bool wlr_backend_is_wl(struct wlr_backend *backend);
|
bool wlr_backend_is_wl(struct wlr_backend *backend);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the given input device is a wlr_wl_input_device.
|
||||||
|
*/
|
||||||
|
bool wlr_input_device_is_wl(struct wlr_input_device *device);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* True if the given output is a wlr_wl_backend_output.
|
||||||
|
*/
|
||||||
|
bool wlr_output_is_wl(struct wlr_output *output);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,10 +4,14 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <wayland-server.h>
|
#include <wayland-server.h>
|
||||||
#include <wlr/backend.h>
|
#include <wlr/backend.h>
|
||||||
|
#include <wlr/types/wlr_input_device.h>
|
||||||
|
#include <wlr/types/wlr_output.h>
|
||||||
|
|
||||||
struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
|
struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
|
||||||
const char *x11_display);
|
const char *x11_display);
|
||||||
|
|
||||||
bool wlr_backend_is_x11(struct wlr_backend *backend);
|
bool wlr_backend_is_x11(struct wlr_backend *backend);
|
||||||
|
bool wlr_input_device_is_x11(struct wlr_input_device *device);
|
||||||
|
bool wlr_output_is_x11(struct wlr_output *output);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue