Replace list_t with wl_list in wlr_output

Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
This commit is contained in:
Heghedus Razvan 2017-10-15 13:32:37 +03:00
parent c03e774636
commit 1d716241af
5 changed files with 19 additions and 19 deletions

View File

@ -782,11 +782,7 @@ void wlr_drm_scan_connectors(struct wlr_drm_backend *drm) {
mode->wlr_mode.width, mode->wlr_mode.height,
mode->wlr_mode.refresh);
if (list_add(wlr_conn->output.modes, mode) == -1) {
wlr_log_errno(L_ERROR, "Allocation failed");
free(mode);
continue;
}
wl_list_insert(&wlr_conn->output.modes, &mode->wlr_mode.link);
}
wlr_conn->state = WLR_DRM_CONN_NEEDS_MODESET;

View File

@ -427,8 +427,10 @@ static void output_add_notify(struct wl_listener *listener, void *data) {
wlr_log(L_DEBUG, "Output '%s' added", output->name);
wlr_log(L_DEBUG, "%s %s %"PRId32"mm x %"PRId32"mm", output->make, output->model,
output->phys_width, output->phys_height);
if (output->modes->length > 0) {
wlr_output_set_mode(output, output->modes->items[0]);
if (wl_list_length(&output->modes) > 0) {
struct wlr_output_mode *mode = NULL;
wl_container_of((&output->modes)->prev, mode, link);
wlr_output_set_mode(output, mode);
}
struct output_state *ostate = calloc(1, sizeof(struct output_state));
clock_gettime(CLOCK_MONOTONIC, &ostate->last_frame);

View File

@ -2,13 +2,13 @@
#define WLR_TYPES_WLR_OUTPUT_H
#include <wayland-server.h>
#include <wlr/util/list.h>
#include <stdbool.h>
struct wlr_output_mode {
uint32_t flags; // enum wl_output_mode
int32_t width, height;
int32_t refresh; // mHz
struct wl_list link;
};
struct wlr_output_impl;
@ -32,7 +32,7 @@ struct wlr_output {
float transform_matrix[16];
/* Note: some backends may have zero modes */
list_t *modes;
struct wl_list modes;
struct wlr_output_mode *current_mode;
struct {

View File

@ -166,9 +166,11 @@ void output_add_notify(struct wl_listener *listener, void *data) {
wlr_log(L_DEBUG, "%s %s %"PRId32"mm x %"PRId32"mm",
wlr_output->make, wlr_output->model,
wlr_output->phys_width, wlr_output->phys_height);
if (wlr_output->modes->length > 0) {
wlr_output_set_mode(wlr_output, wlr_output->modes->items[0]);
}
if (wl_list_length(&wlr_output->modes) > 0) {
struct wlr_output_mode *mode = NULL;
mode = wl_container_of((&wlr_output->modes)->prev, mode, link);
wlr_output_set_mode(wlr_output, mode);
}
struct roots_output *output = calloc(1, sizeof(struct roots_output));
clock_gettime(CLOCK_MONOTONIC, &output->last_frame);

View File

@ -26,8 +26,8 @@ static void wl_output_send_to_resource(struct wl_resource *resource) {
output->make, output->model, output->transform);
}
if (version >= WL_OUTPUT_MODE_SINCE_VERSION) {
for (size_t i = 0; i < output->modes->length; ++i) {
struct wlr_output_mode *mode = output->modes->items[i];
struct wlr_output_mode *mode;
wl_list_for_each(mode, &output->modes, link) {
// TODO: mode->flags should just be preferred
uint32_t flags = mode->flags;
if (output->current_mode == mode) {
@ -37,7 +37,7 @@ static void wl_output_send_to_resource(struct wl_resource *resource) {
mode->width, mode->height, mode->refresh);
}
if (output->modes->length == 0) {
if (wl_list_length(&output->modes) == 0) {
// Output has no mode, send the current width/height
wl_output_send_mode(resource, WL_OUTPUT_MODE_CURRENT,
output->width, output->height, 0);
@ -296,7 +296,7 @@ bool wlr_output_move_cursor(struct wlr_output *output, int x, int y) {
void wlr_output_init(struct wlr_output *output,
const struct wlr_output_impl *impl) {
output->impl = impl;
output->modes = list_create();
wl_list_init(&output->modes);
output->transform = WL_OUTPUT_TRANSFORM_NORMAL;
output->scale = 1;
wl_signal_init(&output->events.frame);
@ -320,11 +320,11 @@ void wlr_output_destroy(struct wlr_output *output) {
wlr_texture_destroy(output->cursor.texture);
wlr_renderer_destroy(output->cursor.renderer);
for (size_t i = 0; output->modes && i < output->modes->length; ++i) {
struct wlr_output_mode *mode = output->modes->items[i];
struct wlr_output_mode *mode, *tmp_mode;
wl_list_for_each_safe(mode, tmp_mode, &output->modes, link) {
free(mode);
}
list_free(output->modes);
wl_list_remove(&output->modes);
if (output->impl && output->impl->destroy) {
output->impl->destroy(output);
} else {