Split weston_seat_init up into pointer/keyboard/touch

So we don't unnecessarily advertise interfaces the seat doesn't support.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
diff --git a/src/compositor.h b/src/compositor.h
index 45ebedd..0aa8a76 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -165,8 +165,12 @@
 struct weston_seat {
 	struct wl_seat seat;
 	struct wl_pointer pointer;
+	int has_pointer;
 	struct wl_keyboard keyboard;
+	int has_keyboard;
 	struct wl_touch touch;
+	int has_touch;
+
 	struct weston_compositor *compositor;
 	struct weston_surface *sprite;
 	struct weston_surface *drag_surface;
@@ -636,6 +640,12 @@
 
 void
 weston_seat_init(struct weston_seat *seat, struct weston_compositor *ec);
+void
+weston_seat_init_pointer(struct weston_seat *seat);
+void
+weston_seat_init_keyboard(struct weston_seat *seat);
+void
+weston_seat_init_touch(struct weston_seat *seat);
 
 void
 weston_seat_release(struct weston_seat *seat);