コード例 #1
0
ファイル: main.c プロジェクト: mdlh/kmscon
int main(int argc, char **argv)
{
	int ret;
	struct kmscon_app app;

	ret = conf_parse_argv(argc, argv);
	if (ret)
		goto err_out;

	if (conf_global.exit)
		return EXIT_SUCCESS;

	if (!conf_global.debug && !conf_global.verbose && conf_global.silent)
		log_set_config(&LOG_CONFIG_WARNING(0, 0, 0, 0));
	else
		log_set_config(&LOG_CONFIG_INFO(conf_global.debug,
						conf_global.verbose));

	log_print_init("kmscon");

	memset(&app, 0, sizeof(app));
	ret = setup_app(&app);
	if (ret)
		goto err_out;

	if (conf_global.switchvt) {
		ret = kmscon_vt_enter(app.vt);
		if (ret)
			log_warn("cannot enter VT");
	}

	ev_eloop_run(app.eloop, -1);

	if (conf_global.switchvt) {
		/* The VT subsystem needs to acknowledge the VT-leave so if it
		 * returns -EINPROGRESS we need to wait for the VT-leave SIGUSR2
		 * signal to arrive. Therefore, we use a separate eloop object
		 * which is used by the VT system only. Therefore, waiting on
		 * this eloop allows us to safely wait 50ms for the SIGUSR2 to
		 * arrive.
		 * We use a timeout of 100ms to avoid haning on exit.
		 * We could also wait on app.eloop but this would allow other
		 * subsystems to continue receiving events and this is not what
		 * we want.
		 */
		app.exit = true;
		ret = kmscon_vt_leave(app.vt);
		if (ret == -EINPROGRESS)
			ev_eloop_run(app.vt_eloop, 50);
	}

	destroy_app(&app);
	log_info("exiting");

	return EXIT_SUCCESS;

err_out:
	log_err("cannot initialize kmscon, errno %d: %s", ret, strerror(-ret));
	return -ret;
}
コード例 #2
0
ファイル: uvtd_main.c プロジェクト: nachokb/kmscon
int main(int argc, char **argv)
{
	int ret;
	struct uvtd_app app;

	log_set_config(&LOG_CONFIG_INFO(1, 1));
	log_print_init("uvtd");

	memset(&app, 0, sizeof(app));

	ret = setup_app(&app);
	if (ret)
		goto err_out;

	ev_eloop_run(app.eloop, -1);

	ret = 0;
	destroy_app(&app);
err_out:
	if (ret)
		log_err("cannot initialize uvtd, errno %d: %s",
			ret, strerror(-ret));
	log_info("exiting");
	return -ret;
}
コード例 #3
0
ファイル: main.c プロジェクト: czaber/ogwm
int main(int argc, char** argv) {
    dpy = XOpenDisplay(NULL);
	if(!dpy)
		die(ERR_CANNOT_OPEN_DISPLAY, "Cannot open display!\n");
    setup_app();
    check_features();
    setup_x();
	setup_gl();
	start();
	clean();
    return 0;
}
コード例 #4
0
ファイル: pi.cpp プロジェクト: w84death/planet-isna
int main(int argc, char** argv) {
  glutInit(&argc, argv);
  setup_app();
  setup_menu();
  setup_scene();

  pi_setup();

  glutTimerFunc(0, render_loop, 0);
  glutTimerFunc(0, logic_loop, 0);
  glutTimerFunc(0, ai_loop, 0);
  glutMainLoop();
   return 0;
}
コード例 #5
0
ファイル: main.c プロジェクト: markbush/pebble-neko
int main(void) {
  setup_app();
  app_event_loop();
  teardown_app();
}