Exemple #1
0
int Application::main(int &argc, char **argv) {
    app = new App(argc, argv);
#if !defined(PLATFORM_WIN)
    app->setWindowIcon(QIcon(":/bsnes.png"));
#else
    //Windows port uses 256x256 icon from resource file
    CoInitialize(0);
    utf8_args(argc, argv);
#endif

    initPaths(argv[0]);
    locateFile(configFilename = "bsnes-qt.cfg", true);
    locateFile(styleSheetFilename = "style.qss", false);

    string customStylesheet;
    if(customStylesheet.readfile(styleSheetFilename) == true) {
        app->setStyleSheet((const char*)customStylesheet);
    } else {
        app->setStyleSheet(defaultStylesheet);
    }

    config().load(configFilename);
    mapper().bind();
    init();

    //initialize libsnes
    snes_set_video_refresh(bsnes_video_refresh);
    snes_set_audio_sample(bsnes_audio_sample);
    snes_set_input_poll(bsnes_input_poll);
    snes_set_input_state(bsnes_input_state);
    snes_init();

    //this used to disable the option if libsupergame was not installed;
    //after porting bsnes-qt to a standalone application, that's not possible through libsnes
    mainWindow->system_loadSpecial_superGameBoy->setVisible(true);

    if(argc == 2) {
        //if valid file was specified on the command-line, attempt to load it now
        cartridge.loadNormal(argv[1]);
    }

    timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(run()));
    timer->start(0);
    app->exec();

    //QbWindow::close() saves window geometry for next run
    for(unsigned i = 0; i < windowList.size(); i++) {
        windowList[i]->close();
    }

    cartridge.unload();
    config().save(configFilename);
    return 0;
}
Exemple #2
0
void InitBsnes()
{
	//setup all hooks to forward messages to the frontend
	snes_set_video_refresh(snes_video_refresh);
	snes_set_audio_sample(snes_audio_sample);
	snes_set_input_poll(snes_input_poll);
	snes_set_input_state(snes_input_state);
	snes_set_input_notify(snes_input_notify);
	snes_set_path_request(snes_path_request);
	
	snes_set_allocSharedMemory(snes_allocSharedMemory);
	snes_set_freeSharedMemory(snes_freeSharedMemory);
}