weston_log("Failed to initialize backlight\n");
}
- wl_list_insert(ec->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&ec->base, &output->base);
find_and_parse_output_edid(ec, output, connector);
if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)
output->finish_frame_timer =
wl_event_loop_add_timer(loop, finish_frame_handler, output);
- wl_list_insert(compositor->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&compositor->base, &output->base);
weston_log("fbdev output %d×%d px\n",
output->mode.width, output->mode.height);
output->image);
}
- wl_list_insert(c->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&c->base, &output->base);
return 0;
}
output->base.switch_mode = rdp_switch_mode;
c->output = output;
- wl_list_insert(c->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&c->base, &output->base);
return 0;
out_shadow_surface:
if (rpi_renderer_output_create(&output->base, output->display) < 0)
goto out_output;
- wl_list_insert(compositor->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&compositor->base, &output->base);
weston_log("Raspberry Pi HDMI output %dx%d px\n",
output->mode.width, output->mode.height);
output->base.set_dpms = NULL;
output->base.switch_mode = wayland_output_switch_mode;
- wl_list_insert(c->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&c->base, &output->base);
return output;
output->finish_frame_timer =
wl_event_loop_add_timer(loop, finish_frame_handler, output);
- wl_list_insert(c->base.output_list.prev, &output->base.link);
+ weston_compositor_add_output(&c->base, &output->base);
weston_log("x11 output %dx%d, window id %d\n",
width, height, output->window);
output->global =
wl_global_create(c->wl_display, &wl_output_interface, 2,
output, bind_output);
- wl_signal_emit(&c->output_created_signal, output);
+}
+
+/** Adds an output to the compositor's output list and
+ * send the compositor's output_created signal.
+ *
+ * \param compositor The compositor instance.
+ * \param output The output to be added.
+ */
+WL_EXPORT void
+weston_compositor_add_output(struct weston_compositor *compositor,
+ struct weston_output *output)
+{
+ wl_list_insert(compositor->output_list.prev, &output->link);
+ wl_signal_emit(&compositor->output_created_signal, output);
}
WL_EXPORT void
weston_output_init(struct weston_output *output, struct weston_compositor *c,
int x, int y, int width, int height, uint32_t transform, int32_t scale);
void
+weston_compositor_add_output(struct weston_compositor *compositor,
+ struct weston_output *output);
+void
weston_output_destroy(struct weston_output *output);
void
weston_output_transform_coordinate(struct weston_output *output,