diff options
author | Kristian Høgsberg <krh@redhat.com> | 2008-09-30 09:46:10 -0400 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2008-09-30 09:56:42 -0400 |
commit | 97f1ebe8d5c2e166fabf757182c289fed266a45a (patch) | |
tree | 3eb472ec9d560becb94e08650629d376d763d2b6 /wayland.h | |
download | wayland-97f1ebe8d5c2e166fabf757182c289fed266a45a.tar.gz wayland-97f1ebe8d5c2e166fabf757182c289fed266a45a.tar.xz wayland-97f1ebe8d5c2e166fabf757182c289fed266a45a.zip |
Initial commit.
This has the basic event loop, and a first cut of the libffi dispatcher.
Diffstat (limited to 'wayland.h')
-rw-r--r-- | wayland.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/wayland.h b/wayland.h new file mode 100644 index 0000000..409e3a3 --- /dev/null +++ b/wayland.h @@ -0,0 +1,67 @@ +#ifndef WAYLAND_H +#define WAYLAND_H + +#include <stdint.h> + +enum { + WL_EVENT_READABLE = 0x01, + WL_EVENT_WRITEABLE = 0x02 +}; + +struct wl_event_loop; +struct wl_event_source; +typedef void (*wl_event_loop_func_t)(int fd, uint32_t mask, void *data); + +struct wl_event_loop *wl_event_loop_create(void); +void wl_event_loop_destroy(struct wl_event_loop *loop); +struct wl_event_source *wl_event_loop_add_fd(struct wl_event_loop *loop, + int fd, uint32_t mask, + wl_event_loop_func_t func, + void *data); +int wl_event_loop_remove_source(struct wl_event_loop *loop, + struct wl_event_source *source); +int wl_event_loop_wait(struct wl_event_loop *loop); + +struct wl_hash { + struct wl_object **objects; + uint32_t count, alloc, id; +}; + +int wl_hash_insert(struct wl_hash *hash, struct wl_object *object); +struct wl_object *wl_hash_lookup(struct wl_hash *hash, uint32_t id); +void wl_hash_delete(struct wl_hash *hash, struct wl_object *object); + +struct wl_client; + +enum { + WL_ARGUMENT_UINT32, + WL_ARGUMENT_STRING, + WL_ARGUMENT_OBJECT, + WL_ARGUMENT_NEW_ID +}; + +struct wl_argument { + uint32_t type; + void *data; +}; + +struct wl_method { + const char *name; + void *func; + int argument_count; + const struct wl_argument *arguments; +}; + +struct wl_interface { + const char *name; + int version; + int method_count; + const struct wl_method *methods; +}; + +struct wl_object { + const struct wl_interface *interface; + uint32_t id; +}; + +#endif |