/* keyboard */ static int _keyboard(KeyboardPrefs * prefs) { Keyboard * keyboard; if((keyboard = keyboard_new(prefs)) == NULL) return -1; gtk_main(); keyboard_delete(keyboard); return 0; }
t_app *app_new(int argc,char **argv) { t_app *app = (t_app *)mem_malloc(sizeof(t_app)); app->argc=argc; app->argv=argv; set_name(app->name,"minuit"); app->main_func = app_default_func; app->x_func = NULL; app->off_screen=0; app->frame=0; app->timer=0; app->timer_add = 1; app->timer_add_low = .1; app->timer_count=0; app->loop=APP_LOOP; app->buffer=APP_BUFFER; app->with_glut=APP_WITH_GLUT; app->debug_keyboard=0; app->load_file = 0; app->loaded_file = 0; app->client = 0; app->slave = 0; app->osc_server = 0; app->osc_client = 0; app->osc_port = 0; bzero( app->path_home, _PATH_); bzero( app->path_current, _PATH_); bzero( app->filename, _NAME_LONG_); bzero( app->path_file, _PATH_); app->mouse=mouse_new(); app->window=window_new(app->with_glut); app->keyboard=keyboard_new(); app->clock=clock_new( "clock"); app->video_frames = lst_new("video"); app->video_frames_swap = lst_new("video swap"); app->video_offset = 0; app->video_build = 1; app->video_limit = APP_VIDEO_LIMIT; clock_init(app->clock); app->quit = 0; return app; }
/* keyboard_init */ static KeyboardWidget * _keyboard_init(char const * name) { KeyboardWidget * keyboard; KeyboardPrefs prefs; if((keyboard = object_new(sizeof(*keyboard))) == NULL) return NULL; prefs.monitor = -1; prefs.font = NULL; prefs.mode = KEYBOARD_MODE_WIDGET; prefs.wait = 0; if((keyboard->keyboard = keyboard_new(&prefs)) == NULL) { _keyboard_destroy(keyboard); return NULL; } return keyboard; }
static struct keyboard * get_keyboards(struct xkb_keymap *keymap) { int ret, i, nents; struct dirent **ents; struct keyboard *kbds = NULL, *kbd = NULL; nents = scandir("/dev/input", &ents, filter_device_name, alphasort); if (nents < 0) { fprintf(stderr, "Couldn't scan /dev/input: %s\n", strerror(errno)); return NULL; } for (i = 0; i < nents; i++) { ret = keyboard_new(ents[i], keymap, &kbd); if (ret) { if (ret == -EACCES) { fprintf(stderr, "Couldn't open /dev/input/%s: %s. " "You probably need root to run this.\n", ents[i]->d_name, strerror(-ret)); break; } if (ret != -ENOTSUP) { fprintf(stderr, "Couldn't open /dev/input/%s: %s. Skipping.\n", ents[i]->d_name, strerror(-ret)); } continue; } kbd->next = kbds; kbds = kbd; } if (!kbds) { fprintf(stderr, "Couldn't find any keyboards I can use! Quitting.\n"); goto err; } err: for (i = 0; i < nents; i++) free(ents[i]); free(ents); return kbds; }