/* * A test file for ManyMouse that dumps input data to stdout. * * Please see the file LICENSE.txt in the source's root directory. * * This file written by Ryan C. Gordon. */ #include #include #include #include "manymouse.h" int main(int argc, char **argv) { ManyMouseEvent event; const int available_mice = ManyMouse_Init(); int i; if (available_mice < 0) { printf("Error initializing ManyMouse!\n"); ManyMouse_Quit(); return 2; } printf("ManyMouse driver: %s\n", ManyMouse_DriverName()); if (available_mice == 0) { printf("No mice detected!\n"); ManyMouse_Quit(); return 1; } for (i = 0; i < available_mice; i++) printf("#%d: %s\n", i, ManyMouse_DeviceName(i)); printf("\n"); printf("Use your mice, CTRL-C to exit.\n"); while (1) { while (ManyMouse_PollEvent(&event)) { if (event.type == MANYMOUSE_EVENT_RELMOTION) { printf("Mouse #%u relative motion %s %d\n", event.device, event.item == 0 ? "X" : "Y", event.value); } else if (event.type == MANYMOUSE_EVENT_ABSMOTION) { printf("Mouse #%u absolute motion %s %d\n", event.device, event.item == 0 ? "X" : "Y", event.value); } else if (event.type == MANYMOUSE_EVENT_BUTTON) { printf("Mouse #%u button %u %s\n", event.device, event.item, event.value ? "down" : "up"); } else if (event.type == MANYMOUSE_EVENT_SCROLL) { const char *wheel; const char *direction; if (event.item == 0) { wheel = "vertical"; direction = ((event.value > 0) ? "up" : "down"); } else { wheel = "horizontal"; direction = ((event.value > 0) ? "right" : "left"); } printf("Mouse #%u wheel %s %s\n", event.device, wheel, direction); } else if (event.type == MANYMOUSE_EVENT_DISCONNECT) printf("Mouse #%u disconnect\n", event.device); else { printf("Mouse #%u unhandled event type %d\n", event.device, event.type); } } } ManyMouse_Quit(); return 0; } /* end of test_manymouse_stdio.c ... */