int main(int argc, char *argv[]) { monome_t *monome; uint x, y; /* open the monome device */ if( !(monome = monome_open(MONOME_DEVICE, "8000")) ) return -1; monome_clear(monome, MONOME_CLEAR_OFF); /* initialize the grid (all off) */ for( x = 0; x < 16; x++ ) for( y = 0; y < 16; y++ ) grid[x][y] = 0; /* register our button press callback */ monome_register_handler(monome, MONOME_BUTTON_DOWN, handle_press, NULL); /* wait for presses! */ monome_event_loop(monome); monome_close(monome); return 0; }
// This is the main entry point for mumble. // glhf n____n int main() { mumble_t * mumble; mumble = mumble_init(mumble); monome_register_handler(mumble->monome, MONOME_BUTTON_DOWN, button_handler, (void *)mumble); monome_register_handler(mumble->monome, MONOME_BUTTON_UP, button_handler, (void *)mumble); mumble_intro(mumble); monome_event_loop(mumble->monome); monome_close(mumble->monome); close(mumble->midi_fd); return 0; }
int monome_unregister_handler(monome_t *monome, monome_event_type_t event_type) { return monome_register_handler(monome, event_type, NULL, NULL); }
int main(int argc, char *argv[]) { char c, *device, *sport, *aport, *ahost; monome_rotate_t rotate = MONOME_ROTATE_0; int i; struct option arguments[] = { {"help", no_argument, 0, 'h'}, {"device", required_argument, 0, 'd'}, {"server-port", required_argument, 0, 's'}, {"application-port", required_argument, 0, 'a'}, {"application-host", required_argument, 0, 'o'}, {"rotation", required_argument, 0, 'r'} }; device = DEFAULT_MONOME_DEVICE; sport = DEFAULT_OSC_SERVER_PORT; aport = DEFAULT_OSC_APP_PORT; ahost = DEFAULT_OSC_APP_HOST; while( (c = getopt_long(argc, argv, "hd:s:a:o:r:", arguments, &i)) > 0 ) { switch( c ) { case 'h': usage(argv[0]); return 1; case 'd': device = optarg; break; case 's': if( is_numstr(optarg) ) sport = optarg; else printf("warning: \"%s\" is not a valid server port.\n", optarg); break; case 'a': if( is_numstr(optarg) ) aport = optarg; else printf("warning: \"%s\" is not a valid application port.\n", optarg); break; case 'o': ahost = optarg; break; case 'r': switch(*optarg) { case 'l': case '0': rotate = MONOME_ROTATE_0; break; case 't': case '9': rotate = MONOME_ROTATE_90; break; case 'r': case '1': rotate = MONOME_ROTATE_180; break; case 'b': case '2': rotate = MONOME_ROTATE_270; break; } break; } } if( optind == argc ) state.lo_prefix = m_strdup(DEFAULT_OSC_PREFIX); else state.lo_prefix = m_strdup(argv[optind]); if( !(state.monome = monome_open(device)) ) { printf("failed to open %s\n", device); return EXIT_FAILURE; } if( !(state.server = lo_server_new(sport, lo_error)) ) return EXIT_FAILURE; state.outgoing = lo_address_new(ahost, aport); monome_register_handler(state.monome, MONOME_BUTTON_DOWN, monome_handle_press, state.lo_prefix); monome_register_handler(state.monome, MONOME_BUTTON_UP, monome_handle_press, state.lo_prefix); register_osc_methods(state.lo_prefix, state.monome); monome_set_rotation(state.monome, rotate); monome_led_all(state.monome, 0); printf("monomeserial version %s, yay!\n\n", VERSION); printf("initialized device %s at %s, which is %dx%d\n", monome_get_serial(state.monome), monome_get_devpath(state.monome), monome_get_rows(state.monome), monome_get_cols(state.monome)); printf("running with prefix /%s\n\n", state.lo_prefix); /* main_loop() returns 1 if the monome was disconnected */ if( main_loop() ) printf("%s disconnected, monomeserial exiting.\nsee you later!\n\n", monome_get_devpath(state.monome)); monome_close(state.monome); unregister_osc_methods(state.lo_prefix); m_free(state.lo_prefix); lo_address_free(state.outgoing); lo_server_free(state.server); return EXIT_SUCCESS; }