Example #1
0
File: input.c Project: k5g/emulika
void input_init()
{
    assert(SDL_WasInit(SDL_INIT_JOYSTICK)==SDL_INIT_JOYSTICK);

    statuskeys = calloc(SDL_NUM_SCANCODES, sizeof(kstat));

    int i, njoysticks;

    if((njoysticks=SDL_NumJoysticks())==0) return;
    SDL_JoystickEventState(SDL_ENABLE);

    statuspads = calloc(njoysticks, sizeof(jstat));
    for(i=0; i<njoysticks; i++) {
        SDL_Joystick *j = SDL_JoystickOpen(i);
        if((SDL_JoystickNumAxes(j)<8) && (SDL_JoystickNumButtons(j)<20)) {
            statuspads[i].joy = j;
            statuspads[i].axis = calloc(SDL_JoystickNumAxes(j), sizeof(sword));
            statuspads[i].buttons = calloc(SDL_JoystickNumButtons(j), sizeof(byte));
        } else {
            SDL_JoystickClose(j);
        }
    }

    pushexit(input_free);
}
Example #2
0
void initmodules(const string basedir)
{
	log4me_init(LOG_EMU_NONE);
#ifdef WIN32
	string redirect = pathcombc(strdups(basedir), "output.txt");
	log4me_redirectoutput(CSTR(redirect));
	strfree(redirect);
#endif

    LIBXML_TEST_VERSION;

    clock_init();

    // initialize SDL video
    if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK)<0) {
        log4me_error(LOG_EMU_SDL, "Unable to init SDL: %s\n", SDL_GetError());
        exit(EXIT_FAILURE);
    }
    // make sure SDL cleans up before exit
    pushexit(SDL_Quit);

    video_init();
    input_init();

    seticon(getcurrentwindow());
}
Example #3
0
void clock_init()
{
    _clocks = lcreate();
    pushexit(clock_free);
}