wl_signal_add(&output->frame_signal, listener);
}
-struct pepper_output_interface drm_output_interface =
+struct pepper_output_backend drm_output_backend =
{
drm_output_destroy,
drm_output_add_destroy_listener,
/*
* PEPPER_API pepper_output_t *
* pepper_compositor_add_output(pepper_compositor_t *compositor,
- * const pepper_output_interface_t *interface, void *data)
+ * const pepper_output_backend_t *backend, void *data)
*/
output->base = pepper_compositor_add_output(output->drm->compositor,
- &drm_output_interface, output);
+ &drm_output_backend, output);
if (!output->base)
{
PEPPER_ERROR("Failed to add output to compositor in %s\n", __FUNCTION__);
}
output->base = pepper_compositor_add_output(output->drm->compositor,
- &drm_output_interface, output);
+ &drm_output_backend, output);
if (!output->base)
{
PEPPER_ERROR("Failed to add output to compositor in %s\n", __FUNCTION__);
wl_signal_add(&output->frame_signal, listener);
}
-struct pepper_output_interface fbdev_output_interface =
+struct pepper_output_backend fbdev_output_backend =
{
fbdev_output_destroy,
fbdev_output_add_destroy_listener,
}
output->base = pepper_compositor_add_output(output->fbdev->compositor,
- &fbdev_output_interface, output);
+ &fbdev_output_backend, output);
if (!output->base)
{
PEPPER_ERROR("Failed to add output to compositor in %s\n", __FUNCTION__);
return seat->name;
}
-static const pepper_seat_interface_t libinput_seat_interface =
+static const pepper_seat_backend_t libinput_seat_backend =
{
libinput_seat_destroy,
libinput_seat_add_capabilities_listener,
seat->input = input;
seat->base = pepper_compositor_add_seat(input->compositor,
- &libinput_seat_interface, seat);
+ &libinput_seat_backend, seat);
if (!seat->base)
{
PEPPER_ERROR("Failed to create pepper_seat in %s\n", __FUNCTION__);
pepper_seat_t *seat = pepper_container_of(listener, pepper_seat_t, capabilities_listener);
uint32_t caps;
- caps = seat->interface->get_capabilities(data);
+ caps = seat->backend->get_capabilities(data);
seat_set_capabilities(seat, caps);
}
pepper_seat_t *seat = pepper_container_of(listener, pepper_seat_t, name_listener);
const char *name;
- name = seat->interface->get_name(data);
+ name = seat->backend->get_name(data);
seat_set_name(seat, name);
}
PEPPER_API pepper_object_t *
pepper_compositor_add_seat(pepper_object_t *c,
- const pepper_seat_interface_t *interface,
+ const pepper_seat_backend_t *backend,
void *data)
{
pepper_seat_t *seat;
}
seat->compositor = compositor;
- seat->interface = (pepper_seat_interface_t *)interface;
+ seat->backend = (pepper_seat_backend_t *)backend;
seat->data = data;
wl_list_init(&seat->resources);
wl_list_insert(&compositor->seat_list, &seat->link);
seat->capabilities_listener.notify = handle_seat_set_capabilities;
- seat->interface->add_capabilities_listener(seat->data, &seat->capabilities_listener);
+ seat->backend->add_capabilities_listener(seat->data, &seat->capabilities_listener);
seat->name_listener.notify = handle_seat_set_name;
- seat->interface->add_name_listener(seat->data, &seat->name_listener);
+ seat->backend->add_name_listener(seat->data, &seat->name_listener);
seat->global = wl_global_create(compositor->display, &wl_seat_interface, 4, seat,
bind_seat);
if (output->modes)
pepper_free(output->modes);
- output->mode_count = output->interface->get_mode_count(output->data);
+ output->mode_count = output->backend->get_mode_count(output->data);
PEPPER_ASSERT(output->mode_count > 0);
output->modes = pepper_calloc(output->mode_count, sizeof(pepper_output_mode_t));
for (i = 0; i < output->mode_count; i++)
{
- output->interface->get_mode(output->data, i, &output->modes[i]);
+ output->backend->get_mode(output->data, i, &output->modes[i]);
if (output->modes[i].flags & WL_OUTPUT_MODE_CURRENT)
output->current_mode = &output->modes[i];
{
pepper_output_t *output = pepper_container_of(listener, pepper_output_t, data_destroy_listener);
output->data = NULL;
- output->interface = NULL;
+ output->backend = NULL;
pepper_output_destroy(&output->base);
}
pepper_compositor_update_views(output->compositor);
- output->interface->repaint(output->data, &output->compositor->view_list, &output->damage_region);
+ output->backend->repaint(output->data, &output->compositor->view_list, &output->damage_region);
output->frame.pending = PEPPER_TRUE;
output->frame.scheduled = PEPPER_FALSE;
PEPPER_API pepper_object_t *
pepper_compositor_add_output(pepper_object_t *cmp,
- const pepper_output_interface_t *interface, void *data)
+ const pepper_output_backend_t *backend, void *data)
{
pepper_output_t *output;
pepper_compositor_t *compositor = (pepper_compositor_t *)cmp;
}
/* Create backend-side object. */
- output->interface = (pepper_output_interface_t *)interface;
+ output->backend = (pepper_output_backend_t *)backend;
output->data = data;
/* Initialize output modes. */
/* Initialize geometry. TODO: Calculate position and size of the output. */
output->geometry.transform = WL_OUTPUT_TRANSFORM_NORMAL;
- output->geometry.subpixel = interface->get_subpixel_order(data);
- output->geometry.maker = interface->get_maker_name(data);
- output->geometry.model = interface->get_model_name(data);
+ output->geometry.subpixel = backend->get_subpixel_order(data);
+ output->geometry.maker = backend->get_maker_name(data);
+ output->geometry.model = backend->get_model_name(data);
output->geometry.x = 0;
output->geometry.y = 0;
output->geometry.w = output->current_mode->w;
/* Install listeners. */
output->data_destroy_listener.notify = handle_output_data_destroy;
- interface->add_destroy_listener(data, &output->data_destroy_listener);
+ backend->add_destroy_listener(data, &output->data_destroy_listener);
output->mode_change_listener.notify = handle_mode_change;
- interface->add_mode_change_listener(data, &output->mode_change_listener);
+ backend->add_mode_change_listener(data, &output->mode_change_listener);
output->frame.frame_listener.notify = handle_output_frame;
- interface->add_frame_listener(data, &output->frame.frame_listener);
+ backend->add_frame_listener(data, &output->frame.frame_listener);
pepper_output_add_damage_whole(&output->base);
return &output->base;
wl_list_remove(&output->link);
- if (output->interface && output->data)
- output->interface->destroy(output->data);
+ if (output->backend && output->data)
+ output->backend->destroy(output->data);
wl_global_destroy(output->global);
wl_list_remove(&output->data_destroy_listener.link);
if (output->current_mode == mode)
return PEPPER_TRUE;
- if (output->interface->set_mode(output->data, mode))
+ if (output->backend->set_mode(output->data, mode))
{
pepper_output_add_damage_whole(out);
return PEPPER_TRUE;
pepper_output_mode_t *current_mode;
/* Backend-specific variables. */
- pepper_output_interface_t *interface;
+ pepper_output_backend_t *backend;
void *data;
/* Listeners for backend-side events. */
uint32_t modifier;
/* Backend-specific variables. */
- pepper_seat_interface_t *interface;
+ pepper_seat_backend_t *backend;
void *data;
};
typedef struct pepper_output_geometry pepper_output_geometry_t;
typedef struct pepper_output_mode pepper_output_mode_t;
-typedef struct pepper_output_interface pepper_output_interface_t;
+typedef struct pepper_output_backend pepper_output_backend_t;
-typedef struct pepper_seat_interface pepper_seat_interface_t;
+typedef struct pepper_seat_backend pepper_seat_backend_t;
typedef struct pepper_input_event pepper_input_event_t;
typedef struct pepper_event_hook pepper_event_hook_t;
int32_t refresh;
};
-struct pepper_output_interface
+struct pepper_output_backend
{
void (*destroy)(void *output);
PEPPER_API pepper_object_t *
pepper_compositor_add_output(pepper_object_t *compositor,
- const pepper_output_interface_t *interface,
+ const pepper_output_backend_t *backend,
void *data);
PEPPER_API pepper_object_t *
pepper_compositor_add_seat(pepper_object_t *compositor,
- const pepper_seat_interface_t *interface,
+ const pepper_seat_backend_t *backend,
void *data);
PEPPER_API pepper_object_t *
pepper_output_add_damage_whole(pepper_object_t *output);
/* Input. */
-struct pepper_seat_interface
+struct pepper_seat_backend
{
void (*destroy)(void *data);
void (*add_capabilities_listener)(void *data, struct wl_listener *listener);
wl_list_for_each(output, &surface->compositor->output_list, link)
{
- output->interface->attach_surface(output->data, &surface->base, &w, &h);
+ output->backend->attach_surface(output->data, &surface->base, &w, &h);
surface->buffer.buffer->w = w;
surface->buffer.buffer->h = h;
return seat->name;
}
-static const pepper_seat_interface_t wayland_seat_interface =
+static const pepper_seat_backend_t wayland_seat_backend =
{
wayland_seat_destroy,
wayland_seat_add_capability_listener,
wl_signal_init(&seat->capabilities_signal);
wl_signal_init(&seat->name_signal);
- seat->base = pepper_compositor_add_seat(conn->pepper, &wayland_seat_interface, seat);
+ seat->base = pepper_compositor_add_seat(conn->pepper, &wayland_seat_backend, seat);
seat->id = name;
wl_list_init(&seat->link);
wl_signal_add(&output->frame_signal, listener);
}
-static const pepper_output_interface_t wayland_output_interface =
+static const pepper_output_backend_t wayland_output_backend =
{
wayland_output_destroy,
wayland_output_add_destroy_listener,
wl_shell_surface_set_toplevel(output->shell_surface);
/* Add compositor base class output object for this output. */
- output->base = pepper_compositor_add_output(conn->pepper, &wayland_output_interface, output);
+ output->base = pepper_compositor_add_output(conn->pepper, &wayland_output_backend, output);
if (!output->base)
{
wayland_output_destroy(output);
return seat->name;
}
-static const pepper_seat_interface_t x11_seat_interface =
+static const pepper_seat_backend_t x11_seat_backend =
{
x11_seat_destroy,
x11_seat_add_capability_listener,
seat->conn_destroy_listener.notify = handle_connection_destroy;
wl_signal_add(&conn->destroy_signal, &seat->conn_destroy_listener);
- seat->base = pepper_compositor_add_seat(conn->compositor, &x11_seat_interface, seat);
+ seat->base = pepper_compositor_add_seat(conn->compositor, &x11_seat_backend, seat);
seat->id = X11_BACKEND_INPUT_ID;
/* Hard-coded: */
wl_signal_add(&output->frame_signal, listener);
}
-/* X11 output interface to export for PePPer core */
-static const pepper_output_interface_t x11_output_interface =
+/* X11 output backend to export for PePPer core */
+static const pepper_output_backend_t x11_output_backend =
{
x11_output_destroy,
x11_output_add_destroy_listener,
/* Register output object */
base = pepper_compositor_add_output(connection->compositor,
- &x11_output_interface,
+ &x11_output_backend,
output);
if (!base)
{