From 771263380c3b3b4b412964b0fe53619aa7c580e2 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 4 Jan 2018 12:46:15 +0100 Subject: Add wlr_output::enabled --- include/wlr/interfaces/wlr_output.h | 7 ++----- include/wlr/types/wlr_output.h | 10 ++++++---- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'include/wlr') diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h index 6d71f9b6..d5837def 100644 --- a/include/wlr/interfaces/wlr_output.h +++ b/include/wlr/interfaces/wlr_output.h @@ -26,14 +26,11 @@ struct wlr_output_impl { }; void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend, - const struct wlr_output_impl *impl); -void wlr_output_free(struct wlr_output *output); + const struct wlr_output_impl *impl, struct wl_display *display); void wlr_output_update_mode(struct wlr_output *output, struct wlr_output_mode *mode); void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width, int32_t height, int32_t refresh); -struct wl_global *wlr_output_create_global(struct wlr_output *wlr_output, - struct wl_display *display); -void wlr_output_destroy_global(struct wlr_output *wlr_output); +void wlr_output_update_enabled(struct wlr_output *output, bool enabled); #endif diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index 6374ae9b..e7491704 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -36,19 +36,19 @@ struct wlr_output_impl; struct wlr_output { const struct wlr_output_impl *impl; struct wlr_backend *backend; + struct wl_display *display; struct wl_global *wl_global; struct wl_list wl_resources; - uint32_t flags; char name[16]; char make[48]; char model[16]; char serial[16]; - float scale; - int32_t width, height; - int32_t refresh; // mHz int32_t phys_width, phys_height; // mm + + bool enabled; + float scale; enum wl_output_subpixel subpixel; enum wl_output_transform transform; bool needs_swap; @@ -58,6 +58,8 @@ struct wlr_output { // Note: some backends may have zero modes struct wl_list modes; struct wlr_output_mode *current_mode; + int32_t width, height; + int32_t refresh; // mHz struct { struct wl_signal frame; -- cgit v1.2.3 From d9ecfbaf325f66b15d60d0f8c4fe08a939cb6576 Mon Sep 17 00:00:00 2001 From: emersion Date: Thu, 4 Jan 2018 14:51:36 +0100 Subject: Add wlr_output enable event --- include/wlr/types/wlr_output.h | 1 + types/wlr_output.c | 3 +++ 2 files changed, 4 insertions(+) (limited to 'include/wlr') diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index e7491704..a726c4c8 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -64,6 +64,7 @@ struct wlr_output { struct { struct wl_signal frame; struct wl_signal swap_buffers; + struct wl_signal enable; struct wl_signal resolution; struct wl_signal scale; struct wl_signal transform; diff --git a/types/wlr_output.c b/types/wlr_output.c index 18c2ef89..4b842571 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -146,6 +146,8 @@ void wlr_output_update_enabled(struct wlr_output *output, bool enabled) { } else { wlr_output_destroy_global(output); } + + wl_signal_emit(&output->events.enable, output); } static void wlr_output_update_matrix(struct wlr_output *output) { @@ -269,6 +271,7 @@ void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend, wl_signal_init(&output->events.frame); wl_signal_init(&output->events.swap_buffers); wl_signal_init(&output->events.resolution); + wl_signal_init(&output->events.enable); wl_signal_init(&output->events.scale); wl_signal_init(&output->events.transform); wl_signal_init(&output->events.destroy); -- cgit v1.2.3 From 8ebd7d4dbebc89aedf5e08d30ebcb5326b92f80b Mon Sep 17 00:00:00 2001 From: emersion Date: Sat, 6 Jan 2018 12:42:32 +0100 Subject: output: rename resolution event to mode --- examples/support/shared.c | 2 +- include/wlr/types/wlr_output.h | 2 +- types/wlr_output.c | 4 ++-- types/wlr_output_layout.c | 12 ++++++------ 4 files changed, 10 insertions(+), 10 deletions(-) (limited to 'include/wlr') diff --git a/examples/support/shared.c b/examples/support/shared.c index f76e4389..6cfaa6aa 100644 --- a/examples/support/shared.c +++ b/examples/support/shared.c @@ -425,7 +425,7 @@ static void output_add_notify(struct wl_listener *listener, void *data) { ostate->frame.notify = output_frame_notify; ostate->resolution.notify = output_resolution_notify; wl_signal_add(&output->events.frame, &ostate->frame); - wl_signal_add(&output->events.resolution, &ostate->resolution); + wl_signal_add(&output->events.mode, &ostate->resolution); wl_list_insert(&state->outputs, &ostate->link); if (state->output_add_cb) { state->output_add_cb(ostate); diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index a726c4c8..71463cb5 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -65,7 +65,7 @@ struct wlr_output { struct wl_signal frame; struct wl_signal swap_buffers; struct wl_signal enable; - struct wl_signal resolution; + struct wl_signal mode; struct wl_signal scale; struct wl_signal transform; struct wl_signal destroy; diff --git a/types/wlr_output.c b/types/wlr_output.c index 4b842571..8194c17e 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -202,7 +202,7 @@ void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width, wlr_output_send_current_mode_to_resource(resource); } - wl_signal_emit(&output->events.resolution, output); + wl_signal_emit(&output->events.mode, output); } void wlr_output_set_transform(struct wlr_output *output, @@ -270,8 +270,8 @@ void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend, wl_list_init(&output->wl_resources); wl_signal_init(&output->events.frame); wl_signal_init(&output->events.swap_buffers); - wl_signal_init(&output->events.resolution); wl_signal_init(&output->events.enable); + wl_signal_init(&output->events.mode); wl_signal_init(&output->events.scale); wl_signal_init(&output->events.transform); wl_signal_init(&output->events.destroy); diff --git a/types/wlr_output_layout.c b/types/wlr_output_layout.c index 7e782399..9b9b0c68 100644 --- a/types/wlr_output_layout.c +++ b/types/wlr_output_layout.c @@ -19,7 +19,7 @@ struct wlr_output_layout_output_state { bool auto_configured; struct wl_listener enable; - struct wl_listener resolution; + struct wl_listener mode; struct wl_listener scale; struct wl_listener transform; struct wl_listener output_destroy; @@ -49,7 +49,7 @@ static void wlr_output_layout_output_destroy( struct wlr_output_layout_output *l_output) { wl_signal_emit(&l_output->events.destroy, l_output); wl_list_remove(&l_output->state->enable.link); - wl_list_remove(&l_output->state->resolution.link); + wl_list_remove(&l_output->state->mode.link); wl_list_remove(&l_output->state->scale.link); wl_list_remove(&l_output->state->transform.link); wl_list_remove(&l_output->state->output_destroy.link); @@ -150,9 +150,9 @@ static void handle_output_enable(struct wl_listener *listener, void *data) { wlr_output_layout_reconfigure(state->layout); } -static void handle_output_resolution(struct wl_listener *listener, void *data) { +static void handle_output_mode(struct wl_listener *listener, void *data) { struct wlr_output_layout_output_state *state = - wl_container_of(listener, state, resolution); + wl_container_of(listener, state, mode); wlr_output_layout_reconfigure(state->layout); } @@ -196,8 +196,8 @@ static struct wlr_output_layout_output *wlr_output_layout_output_create( wl_signal_add(&output->events.enable, &l_output->state->enable); l_output->state->enable.notify = handle_output_enable; - wl_signal_add(&output->events.resolution, &l_output->state->resolution); - l_output->state->resolution.notify = handle_output_resolution; + wl_signal_add(&output->events.mode, &l_output->state->mode); + l_output->state->mode.notify = handle_output_mode; wl_signal_add(&output->events.scale, &l_output->state->scale); l_output->state->scale.notify = handle_output_scale; wl_signal_add(&output->events.transform, &l_output->state->transform); -- cgit v1.2.3