From c5dcb90d2a0d4c31b54b8aa1a91e7b243f9b983b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg?= Date: Tue, 14 Sep 2010 15:53:32 -0400 Subject: [PATCH] Use scanner for screenshooter protocol --- compositor/Makefile | 9 +++++++++ compositor/screenshooter.c | 25 ++++++------------------- compositor/screenshooter.xml | 7 +++++++ 3 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 compositor/screenshooter.xml diff --git a/compositor/Makefile b/compositor/Makefile index a17d414..f31c9ee 100644 --- a/compositor/Makefile +++ b/compositor/Makefile @@ -10,8 +10,17 @@ compositor : \ compositor-drm.o \ compositor-x11.o \ screenshooter.o \ + screenshooter-protocol.o \ drm.o +screenshooter.c : screenshooter-server-protocol.h + +screenshooter-protocol.c : screenshooter.xml + ../wayland/scanner code < $< > $@ + +screenshooter-server-protocol.h : screenshooter.xml + ../wayland/scanner server-header < $< > $@ + clean : rm -f compositor *.o .*.deps diff --git a/compositor/screenshooter.c b/compositor/screenshooter.c index aa7788e..c1716ec 100644 --- a/compositor/screenshooter.c +++ b/compositor/screenshooter.c @@ -21,18 +21,15 @@ #include #include "compositor.h" +#include "screenshooter-server-protocol.h" -struct screenshooter { +struct wl_screenshooter { struct wl_object base; struct wlsc_compositor *ec; }; -struct screenshooter_interface { - void (*shoot)(struct wl_client *client, struct screenshooter *shooter); -}; - static void -screenshooter_shoot(struct wl_client *client, struct screenshooter *shooter) +screenshooter_shoot(struct wl_client *client, struct wl_screenshooter *shooter) { struct wlsc_compositor *ec = shooter->ec; struct wlsc_output *output; @@ -70,30 +67,20 @@ screenshooter_shoot(struct wl_client *client, struct screenshooter *shooter) } } -static const struct wl_message screenshooter_methods[] = { - { "shoot", "", NULL } -}; - -static const struct wl_interface screenshooter_interface = { - "screenshooter", 1, - ARRAY_LENGTH(screenshooter_methods), - screenshooter_methods, -}; - -struct screenshooter_interface screenshooter_implementation = { +struct wl_screenshooter_interface screenshooter_implementation = { screenshooter_shoot }; void screenshooter_create(struct wlsc_compositor *ec) { - struct screenshooter *shooter; + struct wl_screenshooter *shooter; shooter = malloc(sizeof *shooter); if (shooter == NULL) return; - shooter->base.interface = &screenshooter_interface; + shooter->base.interface = &wl_screenshooter_interface; shooter->base.implementation = (void(**)(void)) &screenshooter_implementation; shooter->ec = ec; diff --git a/compositor/screenshooter.xml b/compositor/screenshooter.xml new file mode 100644 index 0000000..f8d993d --- /dev/null +++ b/compositor/screenshooter.xml @@ -0,0 +1,7 @@ + + + + + + + -- 2.7.4