diff --git a/src/userland/mouse/main.c b/src/userland/mouse/main.c index 19fa935..09713f4 100644 --- a/src/userland/mouse/main.c +++ b/src/userland/mouse/main.c @@ -29,7 +29,11 @@ fireEvent(updateEvent, 0); } -bool initialized = false; + +bool initialized = false, updated = true; + +void onUpdate() { updated = true; } + void initialize() { initialized = true; createFunction("moveAbsolute", (void *)moveAbsolute); @@ -45,8 +49,12 @@ } uint32_t serviceId = getServiceId(); printf("service: %i, event: %i\n", serviceId, updateEvent); + subscribeEvent(serviceId, updateEvent, (void *)onUpdate); while (1) { - await(serviceId, updateEvent); - printf("mouse info: x: %i, y: %i, buttons: %i %i %i \r", x, y, buttons[0], buttons[1], buttons[2]); + if (updated) { + printf("mouse info: x: %i, y: %i, buttons: %i %i %i \r", x, y, buttons[0], buttons[1], buttons[2]); + updated = false; + } + sleep(200); } }