Exemple #1
0
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;
}
Exemple #2
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;
}
Exemple #3
0
int monome_unregister_handler(monome_t *monome,
                              monome_event_type_t event_type) {
	return monome_register_handler(monome, event_type, NULL, NULL);
}
Exemple #4
0
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;
}