From: S?bastien G. <kx...@us...> - 2004-04-16 06:33:26
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19872 Modified Files: window.cpp window.h Log Message: Added bios file support. Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** window.h 16 Apr 2004 01:12:01 -0000 1.5 --- window.h 16 Apr 2004 06:33:18 -0000 1.6 *************** *** 92,95 **** --- 92,97 ---- virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale); virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer); + virtual void vOnUseBiosToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnSelectBios(); virtual void vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed); virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType); *************** *** 139,142 **** --- 141,145 ---- ScreenArea * m_poScreenArea; Gtk::CheckMenuItem * m_poFilePauseItem; + Gtk::CheckMenuItem * m_poUseBiosItem; SigC::Connection m_oEmuSig; Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** window.cpp 16 Apr 2004 01:12:01 -0000 1.5 --- window.cpp 16 Apr 2004 06:33:18 -0000 1.6 *************** *** 116,125 **** // File menu // - m_poFilePauseItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilePause")); - m_poFilePauseItem->set_active(false); - m_poFilePauseItem->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( - SigC::slot(*this, &Window::vOnFilePauseToggled), - m_poFilePauseItem)); - poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileOpen")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileOpen)); --- 116,119 ---- *************** *** 131,134 **** --- 125,134 ---- poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileExit)); + m_poFilePauseItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilePause")); + m_poFilePauseItem->set_active(false); + m_poFilePauseItem->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnFilePauseToggled), + m_poFilePauseItem)); + // Frameskip menu // *************** *** 269,272 **** --- 269,287 ---- } + // Emulator menu + // + m_poUseBiosItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("EmulatorUseBios")); + m_poUseBiosItem->set_active(m_poCoreConfig->oGetKey<bool>("use_bios_file")); + if (m_poCoreConfig->sGetKey("bios_file") == "") + { + m_poUseBiosItem->set_sensitive(false); + } + m_poUseBiosItem->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnUseBiosToggled), + m_poUseBiosItem)); + + poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("EmulatorSelectBios")); + poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnSelectBios)); + // Show speed menu // *************** *** 530,545 **** // m_poCoreConfig = m_oConfig.poAddSection("Core"); ! m_poCoreConfig->vSetKey ("frameskip", "auto" ); ! m_poCoreConfig->vSetKey ("throttle", 0 ); ! m_poCoreConfig->vSetKey ("layer_bg0", true ); ! m_poCoreConfig->vSetKey ("layer_bg1", true ); ! m_poCoreConfig->vSetKey ("layer_bg2", true ); ! m_poCoreConfig->vSetKey ("layer_bg3", true ); ! m_poCoreConfig->vSetKey ("layer_obj", true ); ! m_poCoreConfig->vSetKey ("layer_win0", true ); ! m_poCoreConfig->vSetKey ("layer_win1", true ); ! m_poCoreConfig->vSetKey ("layer_objwin", true ); ! m_poCoreConfig->vSetKey<int>("save_type", SaveTypeAuto ); ! m_poCoreConfig->vSetKey<int>("flash_size", 64 ); // Display section --- 545,562 ---- // m_poCoreConfig = m_oConfig.poAddSection("Core"); ! m_poCoreConfig->vSetKey ("frameskip", "auto" ); ! m_poCoreConfig->vSetKey ("throttle", 0 ); ! m_poCoreConfig->vSetKey ("layer_bg0", true ); ! m_poCoreConfig->vSetKey ("layer_bg1", true ); ! m_poCoreConfig->vSetKey ("layer_bg2", true ); ! m_poCoreConfig->vSetKey ("layer_bg3", true ); ! m_poCoreConfig->vSetKey ("layer_obj", true ); ! m_poCoreConfig->vSetKey ("layer_win0", true ); ! m_poCoreConfig->vSetKey ("layer_win1", true ); ! m_poCoreConfig->vSetKey ("layer_objwin", true ); ! m_poCoreConfig->vSetKey ("use_bios_file", false ); ! m_poCoreConfig->vSetKey ("bios_file", "" ); ! m_poCoreConfig->vSetKey<int>("save_type", SaveTypeAuto ); ! m_poCoreConfig->vSetKey<int>("flash_size", 64 ); // Display section *************** *** 559,562 **** --- 576,580 ---- int iValue; int iAdjusted; + std::string sValue; // Core section *************** *** 582,585 **** --- 600,613 ---- } + sValue = m_poCoreConfig->sGetKey("bios_file"); + if (sValue != "" && ! Glib::file_test(sValue, Glib::FILE_TEST_IS_REGULAR)) + { + m_poCoreConfig->vSetKey("bios_file", ""); + } + if (m_poCoreConfig->sGetKey("bios_file") == "") + { + m_poCoreConfig->vSetKey("use_bios_file", false); + } + iValue = m_poCoreConfig->oGetKey<int>("save_type"); if (iValue != 0) *************** *** 728,732 **** else if (m_eShowSpeed == ShowSpeedDetailed) { ! snprintf(csTitle, 50, "VBA - %3d%% (%d, %d fps)", _iSpeed, systemFrameSkip, systemFPS); set_title(csTitle); --- 756,760 ---- else if (m_eShowSpeed == ShowSpeedDetailed) { ! snprintf(csTitle, 50, "VBA - %d%% (%d, %d fps)", _iSpeed, systemFrameSkip, systemFPS); set_title(csTitle); *************** *** 875,884 **** m_stEmulator = GBASystem; ! // TODO ! //CPUInit(biosFileName, useBios); ! useBios = false; ! CPUInit(NULL, useBios); CPUReset(); //if(sdlAutoIPS) { // int size = 0x2000000; --- 903,918 ---- m_stEmulator = GBASystem; ! useBios = m_poCoreConfig->oGetKey<bool>("use_bios_file"); ! CPUInit(m_poCoreConfig->sGetKey("bios_file").c_str(), useBios); CPUReset(); + // If the bios file was rejected by CPUInit + if (m_poCoreConfig->oGetKey<bool>("use_bios_file") && ! useBios) + { + m_poUseBiosItem->set_active(false); + m_poUseBiosItem->set_sensitive(false); + m_poCoreConfig->vSetKey("bios_file", ""); + } + //if(sdlAutoIPS) { // int size = 0x2000000; *************** *** 1169,1172 **** --- 1203,1234 ---- } + void Window::vOnUseBiosToggled(Gtk::CheckMenuItem * _poCMI) + { + m_poCoreConfig->vSetKey("use_bios_file", _poCMI->get_active()); + } + + void Window::vOnSelectBios() + { + Gtk::FileSelection * poDialog = new Gtk::FileSelection(_("Select BIOS file")); + poDialog->set_transient_for(*this); + + if (m_poCoreConfig->sGetKey("bios_file") != "") + { + poDialog->set_filename(m_poCoreConfig->sGetKey("bios_file")); + } + + while (poDialog->run() == Gtk::RESPONSE_OK) + { + if (Glib::file_test(poDialog->get_filename(), Glib::FILE_TEST_IS_REGULAR)) + { + m_poCoreConfig->vSetKey("bios_file", poDialog->get_filename()); + m_poUseBiosItem->set_sensitive(); + break; + } + } + + delete poDialog; + } + void Window::vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed) { |