Skip to content

Instantly share code, notes, and snippets.

@streamer45
Last active January 2, 2016 22:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save streamer45/8370328 to your computer and use it in GitHub Desktop.
Save streamer45/8370328 to your computer and use it in GitHub Desktop.
diff --git a/lib/krad_compositor/krad_compositor.h b/lib/krad_compositor/krad_compositor.h
index 94f6822..fabec11 100644
--- a/lib/krad_compositor/krad_compositor.h
+++ b/lib/krad_compositor/krad_compositor.h
@@ -69,12 +69,21 @@ struct kr_compositor {
FT_Library ftlib;
};
+typedef enum {
+ KR_COMP_GET = 1,
+ KR_COMP_PUT,
+ KR_COMP_POST,
+ KR_COMP_PATCH,
+ KR_COMP_DELETE
+} kr_comp_app_method;
+
struct kr_compositor_event {
kr_compositor_path *path;
void *user;
void *user_path;
- //kr_app_method method;
- /* info struct */
+ kr_comp_app_method method;
+ kr_compositor_path_patch patch;
+ kr_compositor_info info;
};
int kr_compositor_destroy(kr_compositor *compositor);
diff --git a/lib/krad_compositor/krad_compositor_path.c b/lib/krad_compositor/krad_compositor_path.c
index 4beeccb..75be3cf 100644
--- a/lib/krad_compositor/krad_compositor_path.c
+++ b/lib/krad_compositor/krad_compositor_path.c
@@ -220,6 +220,8 @@ kr_compositor_path *kr_compositor_mkio(kr_compositor *compositor,
/* do event callback */
event.user = compositor->user;
event.user_path = path->control_user;
+ event.path = path;
+ event.method = KR_COMP_PUT;
compositor->event_cb(&event);
return path;
}
diff --git a/lib/krad_radio/krad_radio.c b/lib/krad_radio/krad_radio.c
index c6dcecb..60157e6 100644
--- a/lib/krad_radio/krad_radio.c
+++ b/lib/krad_radio/krad_radio.c
@@ -29,13 +29,26 @@ static void compositor_event(kr_compositor_event *event) {
kr_route_setup route_setup;
radio = (kr_radio *)event->user;
printk("got a compositor event");
- /* the following should only happen on a create event */
- route_setup.ptr = radio->compositor;
- route_setup.name = event->user_path;
- route_setup.ctx = event->path;
- route_setup.payload_type = PL_KR_COMPOSITOR_PATH_INFO;
- kr_compositor_path_info_get(event->path, &route_setup.payload.compositor_path_info);
- kr_app_server_route_create(radio->app, &route_setup);
+
+ switch (event->method) {
+ case KR_PUT: {
+ route_setup.ptr = radio->compositor;
+ route_setup.name = event->user_path;
+ route_setup.ctx = event->path;
+ route_setup.payload_type = PL_KR_COMPOSITOR_PATH_INFO;
+ kr_compositor_path_info_get(event->path, &route_setup.payload.compositor_path_info);
+ kr_app_server_route_create(radio->app, &route_setup);
+ break;
+ }
+ case KR_DELETE: {
+ break;
+ }
+ case KR_PATCH: {
+ break;
+ }
+ default: break;
+ }
+
}
static void xpdr_event(kr_transponder_event *event) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment