You can subscribe to this list here.
2004 |
Jan
(17) |
Feb
(38) |
Mar
(24) |
Apr
(18) |
May
(75) |
Jun
(2) |
Jul
|
Aug
|
Sep
(21) |
Oct
(3) |
Nov
(19) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(15) |
Jul
(2) |
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2006 |
Jan
(8) |
Feb
|
Mar
|
Apr
(6) |
May
(73) |
Jun
(57) |
Jul
(12) |
Aug
(68) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
1
|
2
(2) |
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
(1) |
13
|
14
|
15
(2) |
16
(3) |
17
|
18
(2) |
19
|
20
|
21
|
22
(1) |
23
|
24
|
25
(3) |
26
(2) |
27
(1) |
28
|
29
(1) |
30
|
|
From: S?bastien G. <kx...@us...> - 2004-04-29 01:44:47
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7130 Modified Files: Makefile.am Makefile.in vba.glade window.cpp window.h Added Files: windowcallbacks.cpp Log Message: Added load/save game slots support. Index: Makefile.am =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 2 Apr 2004 01:22:17 -0000 1.2 --- Makefile.am 29 Apr 2004 01:44:35 -0000 1.3 *************** *** 17,20 **** --- 17,21 ---- tools.cpp \ tools.h \ + windowcallbacks.cpp \ window.cpp \ window.h Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** window.h 27 Apr 2004 23:16:32 -0000 1.10 --- window.h 29 Apr 2004 01:44:36 -0000 1.11 *************** *** 21,28 **** --- 21,31 ---- #define __VBA_WINDOW_H__ + #include <sys/types.h> + #include <libglademm.h> #include <gtkmm.h> #include <string> + #include <list> #include "../System.h" *************** *** 121,124 **** --- 124,132 ---- virtual void vOnFileOpen(); + virtual void vOnLoadGameMostRecent(); + virtual void vOnLoadGameAutoToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnLoadGame(int _iSlot); + virtual void vOnSaveGameOldest(); + virtual void vOnSaveGame(int _iSlot); virtual void vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI); virtual void vOnFileReset(); *************** *** 206,209 **** --- 214,230 ---- Gtk::CheckMenuItem * m_poSoundOffItem; + struct SGameSlot + { + bool m_bEmpty; + std::string m_sFile; + time_t m_uiTime; + }; + + Gtk::MenuItem * m_apoLoadGameItem[10]; + Gtk::MenuItem * m_apoSaveGameItem[10]; + SGameSlot m_astGameSlot[10]; + + std::list<Gtk::Widget *> m_listSensitiveWhenPlaying; + SigC::Connection m_oEmuSig; *************** *** 238,247 **** void vLoadBattery(); void vSaveBattery(); - void vLoadState(int _iNum); - void vSaveState(int _iNum); void vStartEmu(); void vStopEmu(); void vSetThrottle(int _iPercent); void vSelectBestThrottleItem(); }; --- 259,267 ---- void vLoadBattery(); void vSaveBattery(); void vStartEmu(); void vStopEmu(); void vSetThrottle(int _iPercent); void vSelectBestThrottleItem(); + void vUpdateGameSlots(); }; Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** window.cpp 27 Apr 2004 23:16:32 -0000 1.10 --- window.cpp 29 Apr 2004 01:44:36 -0000 1.11 *************** *** 19,25 **** #include "window.h" - #include <sys/types.h> #include <sys/stat.h> #include <SDL.h> --- 19,27 ---- #include "window.h" [...991 lines suppressed...] ! char csDateTime[30]; ! strftime(csDateTime, sizeof(csDateTime), csDateFormat, ! localtime(&stStat.st_mtime)); ! sDateTime = csDateTime; ! m_astGameSlot[i].m_bEmpty = false; ! m_astGameSlot[i].m_uiTime = stStat.st_mtime; } ! Gtk::Label * poLabel; ! poLabel = dynamic_cast<Gtk::Label *>(m_apoLoadGameItem[i]->get_child()); ! poLabel->set_text(csPrefix + sDateTime); ! m_apoLoadGameItem[i]->set_sensitive(! m_astGameSlot[i].m_bEmpty); ! poLabel = dynamic_cast<Gtk::Label *>(m_apoSaveGameItem[i]->get_child()); ! poLabel->set_text(csPrefix + sDateTime); ! m_apoSaveGameItem[i]->set_sensitive(); } } } Index: Makefile.in =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 2 Apr 2004 01:22:17 -0000 1.2 --- Makefile.in 29 Apr 2004 01:44:36 -0000 1.3 *************** *** 169,172 **** --- 169,173 ---- tools.cpp \ tools.h \ + windowcallbacks.cpp \ window.cpp \ window.h *************** *** 287,291 **** gvba-input.$(OBJEXT) gvba-main.$(OBJEXT) \ gvba-screenarea.$(OBJEXT) gvba-system.$(OBJEXT) \ ! gvba-tools.$(OBJEXT) gvba-window.$(OBJEXT) gvba_OBJECTS = $(am_gvba_OBJECTS) gvba_DEPENDENCIES = libgba.a --- 288,293 ---- gvba-input.$(OBJEXT) gvba-main.$(OBJEXT) \ gvba-screenarea.$(OBJEXT) gvba-system.$(OBJEXT) \ ! gvba-tools.$(OBJEXT) gvba-windowcallbacks.$(OBJEXT) \ ! gvba-window.$(OBJEXT) gvba_OBJECTS = $(am_gvba_OBJECTS) gvba_DEPENDENCIES = libgba.a *************** *** 302,305 **** --- 304,308 ---- @AMDEP_TRUE@ ./$(DEPDIR)/gvba-tools.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-window.Po \ + @AMDEP_TRUE@ ./$(DEPDIR)/gvba-windowcallbacks.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/libgba_a-2xSaI.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/libgba_a-Cheats.Po \ *************** *** 412,415 **** --- 415,419 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-tools.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-window.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-windowcallbacks.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgba_a-2xSaI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgba_a-Cheats.Po@am__quote@ *************** *** 1416,1419 **** --- 1420,1445 ---- @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi` + gvba-windowcallbacks.o: windowcallbacks.cpp + @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-windowcallbacks.o -MD -MP -MF "$(DEPDIR)/gvba-windowcallbacks.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o gvba-windowcallbacks.o `test -f 'windowcallbacks.cpp' || echo '$(srcdir)/'`windowcallbacks.cpp; \ + @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-windowcallbacks.Tpo" "$(DEPDIR)/gvba-windowcallbacks.Po"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-windowcallbacks.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='windowcallbacks.cpp' object='gvba-windowcallbacks.o' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-windowcallbacks.Po' tmpdepfile='$(DEPDIR)/gvba-windowcallbacks.TPo' @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-windowcallbacks.o `test -f 'windowcallbacks.cpp' || echo '$(srcdir)/'`windowcallbacks.cpp + + gvba-windowcallbacks.obj: windowcallbacks.cpp + @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-windowcallbacks.obj -MD -MP -MF "$(DEPDIR)/gvba-windowcallbacks.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o gvba-windowcallbacks.obj `if test -f 'windowcallbacks.cpp'; then $(CYGPATH_W) 'windowcallbacks.cpp'; else $(CYGPATH_W) '$(srcdir)/windowcallbacks.cpp'; fi`; \ + @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-windowcallbacks.Tpo" "$(DEPDIR)/gvba-windowcallbacks.Po"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-windowcallbacks.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='windowcallbacks.cpp' object='gvba-windowcallbacks.obj' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-windowcallbacks.Po' tmpdepfile='$(DEPDIR)/gvba-windowcallbacks.TPo' @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-windowcallbacks.obj `if test -f 'windowcallbacks.cpp'; then $(CYGPATH_W) 'windowcallbacks.cpp'; else $(CYGPATH_W) '$(srcdir)/windowcallbacks.cpp'; fi` + gvba-window.o: window.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-window.o -MD -MP -MF "$(DEPDIR)/gvba-window.Tpo" \ Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** vba.glade 27 Apr 2004 23:16:31 -0000 1.7 --- vba.glade 29 Apr 2004 01:44:36 -0000 1.8 *************** *** 51,55 **** <child internal-child="image"> ! <widget class="GtkImage" id="image90"> <property name="visible">True</property> <property name="stock">gtk-open</property> --- 51,55 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image106"> <property name="visible">True</property> <property name="stock">gtk-open</property> *************** *** 93,96 **** --- 93,214 ---- <property name="label" translatable="yes">Loa_d game</property> <property name="use_underline">True</property> + + <child> + <widget class="GtkMenu" id="LoadGameMenu_menu"> + + <child> + <widget class="GtkMenuItem" id="LoadGameMostRecent"> + <property name="visible">True</property> + <property name="label" translatable="yes">Most recent</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkCheckMenuItem" id="LoadGameAuto"> + <property name="visible">True</property> + <property name="label" translatable="yes">Auto load most recent</property> + <property name="use_underline">True</property> + <property name="active">False</property> + </widget> + </child> + + <child> + <widget class="GtkSeparatorMenuItem" id="separator28"> + <property name="visible">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot1"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot1</property> + <property name="use_underline">True</property> + <accelerator key="F1" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot2"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot2</property> + <property name="use_underline">True</property> + <accelerator key="F2" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot3"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot3</property> + <property name="use_underline">True</property> + <accelerator key="F3" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot4</property> + <property name="use_underline">True</property> + <accelerator key="F4" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot5"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot5</property> + <property name="use_underline">True</property> + <accelerator key="F5" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot6"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot6</property> + <property name="use_underline">True</property> + <accelerator key="F6" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot7</property> + <property name="use_underline">True</property> + <accelerator key="F7" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot8</property> + <property name="use_underline">True</property> + <accelerator key="F8" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot9</property> + <property name="use_underline">True</property> + <accelerator key="F9" modifiers="0" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="LoadGameSlot10"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot10</property> + <property name="use_underline">True</property> + <accelerator key="F10" modifiers="0" signal="activate"/> + </widget> + </child> + </widget> + </child> </widget> </child> *************** *** 101,104 **** --- 219,331 ---- <property name="label" translatable="yes">S_ave game</property> <property name="use_underline">True</property> + + <child> + <widget class="GtkMenu" id="SaveGameMenu_menu"> + + <child> + <widget class="GtkMenuItem" id="SaveGameOldest"> + <property name="visible">True</property> + <property name="label" translatable="yes">Oldest slot</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkSeparatorMenuItem" id="separator27"> + <property name="visible">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot1"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot1</property> + <property name="use_underline">True</property> + <accelerator key="F1" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot2"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot2</property> + <property name="use_underline">True</property> + <accelerator key="F2" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot3"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot3</property> + <property name="use_underline">True</property> + <accelerator key="F3" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot4</property> + <property name="use_underline">True</property> + <accelerator key="F4" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot5"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot5</property> + <property name="use_underline">True</property> + <accelerator key="F5" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot6"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot6</property> + <property name="use_underline">True</property> + <accelerator key="F6" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot7</property> + <property name="use_underline">True</property> + <accelerator key="F7" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot8</property> + <property name="use_underline">True</property> + <accelerator key="F8" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot9</property> + <property name="use_underline">True</property> + <accelerator key="F9" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="SaveGameSlot10"> + <property name="visible">True</property> + <property name="label" translatable="yes">Slot10</property> + <property name="use_underline">True</property> + <accelerator key="F10" modifiers="GDK_SHIFT_MASK" signal="activate"/> + </widget> + </child> + </widget> + </child> </widget> </child> *************** *** 200,204 **** <child internal-child="image"> ! <widget class="GtkImage" id="image91"> <property name="visible">True</property> <property name="stock">gtk-close</property> --- 427,431 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image107"> <property name="visible">True</property> <property name="stock">gtk-close</property> *************** *** 221,225 **** <child internal-child="image"> ! <widget class="GtkImage" id="image92"> <property name="visible">True</property> <property name="stock">gtk-quit</property> --- 448,452 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image108"> <property name="visible">True</property> <property name="stock">gtk-quit</property> --- NEW FILE: windowcallbacks.cpp --- // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator. // Copyright (C) 1999-2003 Forgotten // Copyright (C) 2004 Forgotten and the VBA development team // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2, or(at your option) // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "window.h" #include <sys/stat.h> #include <stdio.h> #include <time.h> #include <SDL.h> #include "../GBA.h" #include "../gb/GB.h" #include "../gb/gbGlobals.h" #include "../gb/gbPrinter.h" #include "../Sound.h" #include "../Util.h" #include "tools.h" #include "intl.h" extern int systemRenderedFrames; extern int systemFPS; extern bool debugger; extern int RGB_LOW_BITS_MASK; #ifdef MMX extern "C" bool cpu_mmx; #endif // MMX namespace VBA { using Gnome::Glade::Xml; void Window::vOnFileOpen() { if (m_poFileOpenDialog == NULL) { m_poFileOpenDialog = new Gtk::FileSelection(_("Open")); m_poFileOpenDialog->set_transient_for(*this); std::string sDir = m_poDirConfig->sGetKey("gba_roms"); if (sDir != "") { m_poFileOpenDialog->set_filename(sDir + "/"); } } while (m_poFileOpenDialog->run() == Gtk::RESPONSE_OK) { if (bLoadROM(m_poFileOpenDialog->get_filename())) { break; } } m_poFileOpenDialog->hide(); } void Window::vOnLoadGameMostRecent() { int iMostRecent = -1; time_t uiTimeMax; for (int i = 0; i < 10; i++) { if (! m_astGameSlot[i].m_bEmpty && (iMostRecent < 0 || m_astGameSlot[i].m_uiTime > uiTimeMax)) { iMostRecent = i; uiTimeMax = m_astGameSlot[i].m_uiTime; } } if (iMostRecent >= 0) { vOnLoadGame(iMostRecent + 1); } } void Window::vOnLoadGameAutoToggled(Gtk::CheckMenuItem * _poCMI) { m_poCoreConfig->vSetKey("load_game_auto", _poCMI->get_active()); } void Window::vOnLoadGame(int _iSlot) { int i = _iSlot - 1; if (! m_astGameSlot[i].m_bEmpty) { m_stEmulator.emuReadState(m_astGameSlot[i].m_sFile.c_str()); m_poFilePauseItem->set_active(false); } } void Window::vOnSaveGameOldest() { int iOldest = -1; time_t uiTimeMin; for (int i = 0; i < 10; i++) { if (! m_astGameSlot[i].m_bEmpty && (iOldest < 0 || m_astGameSlot[i].m_uiTime < uiTimeMin)) { iOldest = i; uiTimeMin = m_astGameSlot[i].m_uiTime; } } if (iOldest >= 0) { vOnSaveGame(iOldest + 1); } else { vOnSaveGame(1); } } void Window::vOnSaveGame(int _iSlot) { int i = _iSlot - 1; m_stEmulator.emuWriteState(m_astGameSlot[i].m_sFile.c_str()); vUpdateGameSlots(); } void Window::vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI) { m_bPaused = _poCMI->get_active(); if (emulating) { if (m_bPaused) { vStopEmu(); soundPause(); } else { vStartEmu(); soundResume(); } } } void Window::vOnFileReset() { if (emulating) { m_stEmulator.emuReset(); m_poFilePauseItem->set_active(false); } } void Window::vOnFileClose() { if (emulating) { soundPause(); vStopEmu(); vSetDefaultTitle(); vDrawDefaultScreen(); vSaveBattery(); m_stEmulator.emuCleanUp(); m_eCartridge = CartridgeNone; emulating = 0; vUpdateGameSlots(); for (std::list<Gtk::Widget *>::iterator it = m_listSensitiveWhenPlaying.begin(); it != m_listSensitiveWhenPlaying.end(); it++) { (*it)->set_sensitive(false); } m_poFilePauseItem->set_active(false); } } void Window::vOnFileExit() { hide(); } void Window::vOnFrameskipToggled(Gtk::CheckMenuItem * _poCMI, int _iValue) { if (! _poCMI->get_active()) { return; } if (_iValue >= 0 && _iValue <= 9) { m_poCoreConfig->vSetKey("frameskip", _iValue); gbFrameSkip = _iValue; systemFrameSkip = _iValue; m_bAutoFrameskip = false; } else { m_poCoreConfig->vSetKey("frameskip", "auto"); gbFrameSkip = 0; systemFrameSkip = 0; m_bAutoFrameskip = true; } } void Window::vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent) { if (! _poCMI->get_active()) { return; } vSetThrottle(_iPercent); // Initialize the frameskip adjustment each time throttle is changed if (m_bAutoFrameskip) { systemFrameSkip = 0; } } void Window::vOnThrottleOther(Gtk::CheckMenuItem * _poCMI) { if (! _poCMI->get_active()) { return; } Glib::RefPtr<Xml> poXml; poXml = Xml::create(PKGDATADIR "/vba.glade", "ThrottleDialog"); Gtk::Dialog * poDialog = dynamic_cast<Gtk::Dialog *>(poXml->get_widget("ThrottleDialog")); Gtk::SpinButton * poSpin = dynamic_cast<Gtk::SpinButton *>(poXml->get_widget("ThrottleSpin")); poDialog->set_transient_for(*this); if (m_iThrottle != 0) { poSpin->set_value(m_iThrottle); } else { poSpin->set_value(100); } if (poDialog->run() == Gtk::RESPONSE_OK) { vSetThrottle(poSpin->get_value_as_int()); } delete poDialog; vSelectBestThrottleItem(); } void Window::vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale) { if (! _poCMI->get_active()) { return; } m_poDisplayConfig->vSetKey("scale", _iScale); vUpdateScreen(); } void Window::vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer) { int iMask = (0x0100 << _iLayer); if (_poCMI->get_active()) { layerSettings |= iMask; } else { layerSettings &= ~iMask; } layerEnable = DISPCNT & layerSettings; const char * acsLayers[] = { "layer_bg0", "layer_bg1", "layer_bg2", "layer_bg3", "layer_obj", "layer_win0", "layer_win1", "layer_objwin" }; m_poCoreConfig->vSetKey(acsLayers[_iLayer], _poCMI->get_active()); } void Window::vOnDirectories() { Glib::RefPtr<Xml> poXml; poXml = Xml::create(PKGDATADIR "/vba.glade", "DirectoriesDialog"); struct { const char * m_csKey; const char * m_csEntry; const char * m_csResetButton; const char * m_csSelectButton; } astRow[] = { { "gba_roms", "GBARomsDirEntry", "GBARomsDirResetButton", "GBARomsDirSelectButton" }, { "gb_roms", "GBRomsDirEntry", "GBRomsDirResetButton", "GBRomsDirSelectButton" }, { "batteries", "BatteriesDirEntry", "BatteriesDirResetButton", "BatteriesDirSelectButton" }, { "saves", "SavesDirEntry", "SavesDirResetButton", "SavesDirSelectButton" }, { "captures", "CapturesDirEntry", "CapturesDirResetButton", "CapturesDirSelectButton" } }; for (guint i = 0; i < sizeof(astRow) / sizeof(astRow[0]); i++) { Gtk::Entry * poEntry = dynamic_cast<Gtk::Entry *>(poXml->get_widget(astRow[i].m_csEntry)); Gtk::Button * poReset = dynamic_cast<Gtk::Button *>(poXml->get_widget(astRow[i].m_csResetButton)); Gtk::Button * poSelect = dynamic_cast<Gtk::Button *>(poXml->get_widget(astRow[i].m_csSelectButton)); poEntry->set_text(m_poDirConfig->sGetKey(astRow[i].m_csKey)); poReset->signal_clicked().connect(SigC::bind<Gtk::Entry *>( SigC::slot(*this, &Window::vOnDirectoryReset), poEntry)); poSelect->signal_clicked().connect(SigC::bind<Gtk::Entry *>( SigC::slot(*this, &Window::vOnDirectorySelect), poEntry)); } Gtk::Dialog * poDialog = dynamic_cast<Gtk::Dialog *>(poXml->get_widget("DirectoriesDialog")); poDialog->set_transient_for(*this); if (poDialog->run() == Gtk::RESPONSE_OK) { for (guint i = 0; i < sizeof(astRow) / sizeof(astRow[0]); i++) { Gtk::Entry * poEntry = dynamic_cast<Gtk::Entry *>(poXml->get_widget(astRow[i].m_csEntry)); Glib::ustring sDir = poEntry->get_text(); if (! Glib::file_test(sDir, Glib::FILE_TEST_IS_DIR)) { sDir = ""; } m_poDirConfig->vSetKey(astRow[i].m_csKey, sDir); } // Needed if saves dir changed vUpdateGameSlots(); } delete poDialog; } void Window::vOnDirectoryReset(Gtk::Entry * _poEntry) { _poEntry->set_text(""); } void Window::vOnDirectorySelect(Gtk::Entry * _poEntry) { Gtk::FileSelection * poDialog = new Gtk::FileSelection(_("Select directory")); poDialog->set_transient_for(*this); if (_poEntry->get_text() != "") { poDialog->set_filename(_poEntry->get_text() + "/"); } if (poDialog->run() == Gtk::RESPONSE_OK) { std::string sFile = poDialog->get_filename(); if (! Glib::file_test(sFile, Glib::FILE_TEST_IS_DIR)) { sFile = Glib::path_get_dirname(sFile); } _poEntry->set_text(sFile); } delete poDialog; } void Window::vOnPauseWhenInactiveToggled(Gtk::CheckMenuItem * _poCMI) { m_poDisplayConfig->vSetKey("pause_when_inactive", _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::vOnUseBiosToggled(Gtk::CheckMenuItem * _poCMI) { m_poCoreConfig->vSetKey("use_bios_file", _poCMI->get_active()); } void Window::vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed) { if (! _poCMI->get_active()) { return; } m_eShowSpeed = (EShowSpeed)_iShowSpeed; if (m_eShowSpeed == ShowNone) { vSetDefaultTitle(); } m_poDisplayConfig->vSetKey("show_speed", _iShowSpeed); } void Window::vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType) { if (! _poCMI->get_active()) { return; } cpuSaveType = _iSaveType; m_poCoreConfig->vSetKey("save_type", _iSaveType); } void Window::vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize) { if (! _poCMI->get_active()) { return; } if (_iFlashSize == 64) { flashSetSize(0x10000); } else { flashSetSize(0x20000); } m_poCoreConfig->vSetKey("flash_size", _iFlashSize); } void Window::vOnSoundStatusToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundStatus) { if (! _poCMI->get_active()) { return; } std::string sSoundStatus; switch (_iSoundStatus) { case SoundOff: soundOffFlag = true; if (systemSoundOn) { soundShutdown(); } sSoundStatus = "off"; break; case SoundMute: soundDisable(0x30f); sSoundStatus = "mute"; break; case SoundOn: if (soundOffFlag) { soundOffFlag = false; if (! soundInit()) { m_poSoundOffItem->set_active(); return; } } soundEnable(0x30f); sSoundStatus = "on"; break; } m_poSoundConfig->vSetKey("status", sSoundStatus); } void Window::vOnSoundEchoToggled(Gtk::CheckMenuItem * _poCMI) { soundEcho = _poCMI->get_active(); m_poSoundConfig->vSetKey("echo", soundEcho); } void Window::vOnSoundLowPassToggled(Gtk::CheckMenuItem * _poCMI) { soundLowPass = _poCMI->get_active(); m_poSoundConfig->vSetKey("low_pass", soundLowPass); } void Window::vOnSoundReverseToggled(Gtk::CheckMenuItem * _poCMI) { soundReverse = _poCMI->get_active(); m_poSoundConfig->vSetKey("reverse_stereo", soundReverse); } void Window::vOnSoundChannelToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundChannel) { int iShift = _iSoundChannel; if (_iSoundChannel > 3) { iShift += 4; } int iFlag = 1 << iShift; int iActive = soundGetEnable() & 0x30f; if (_poCMI->get_active()) { iActive |= iFlag; } else { iActive &= ~iFlag; } soundEnable(iActive); soundDisable(~iActive & 0x30f); const char * acsChannels[] = { "channel_1", "channel_2", "channel_3", "channel_4", "channel_A", "channel_B" }; m_poSoundConfig->vSetKey(acsChannels[_iSoundChannel], _poCMI->get_active()); } void Window::vOnSoundQualityToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundQuality) { if (! _poCMI->get_active()) { return; } m_eSoundQuality = (ESoundQuality)_iSoundQuality; if (m_eCartridge == CartridgeGBA) { soundSetQuality(_iSoundQuality); } else if (m_eCartridge == CartridgeGB) { gbSoundSetQuality(_iSoundQuality); } m_poSoundConfig->vSetKey("quality", _iSoundQuality); } void Window::vOnSoundVolumeToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundVolume) { if (! _poCMI->get_active()) { return; } soundVolume = _iSoundVolume; m_poSoundConfig->vSetKey("volume", _iSoundVolume); } void Window::vOnGBBorderToggled(Gtk::CheckMenuItem * _poCMI) { gbBorderOn = _poCMI->get_active(); if (emulating && m_eCartridge == CartridgeGB && _poCMI->get_active()) { gbSgbRenderBorder(); } vUpdateScreen(); m_poCoreConfig->vSetKey("gb_border", _poCMI->get_active()); } void Window::vOnGBPrinterToggled(Gtk::CheckMenuItem * _poCMI) { if (_poCMI->get_active()) { gbSerialFunction = gbPrinterSend; } else { gbSerialFunction = NULL; } m_poCoreConfig->vSetKey("gb_printer", _poCMI->get_active()); } void Window::vOnEmulatorTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iEmulatorType) { gbEmulatorType = _iEmulatorType; m_poCoreConfig->vSetKey("emulator_type", _iEmulatorType); } void Window::vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x) { if (! _poCMI->get_active()) { return; } m_poScreenArea->vSetFilter2x((EFilter2x)_iFilter2x); if (emulating) { vDrawScreen(); } m_poDisplayConfig->vSetKey("filter2x", _iFilter2x); } void Window::vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB) { if (! _poCMI->get_active()) { return; } m_poScreenArea->vSetFilterIB((EFilterIB)_iFilterIB); if (emulating) { vDrawScreen(); } m_poDisplayConfig->vSetKey("filterIB", _iFilterIB); } #ifdef MMX void Window::vOnDisableMMXToggled(Gtk::CheckMenuItem * _poCMI) { cpu_mmx = ! _poCMI->get_active(); m_poDisplayConfig->vSetKey("filter_disable_mmx", _poCMI->get_active()); } #endif // MMX void Window::vOnHelpAbout() { Glib::RefPtr<Xml> poXml; poXml = Xml::create(PKGDATADIR "/vba.glade", "AboutDialog"); Gtk::Dialog * poDialog = dynamic_cast<Gtk::Dialog *>(poXml->get_widget("AboutDialog")); Gtk::Label * poLabel = dynamic_cast<Gtk::Label *>(poXml->get_widget("VersionLabel")); poDialog->set_transient_for(*this); poLabel->set_markup("<b><big>" PACKAGE " " VERSION "</big></b>"); poDialog->run(); delete poDialog; } bool Window::bOnEmuIdle() { if (m_uiThrottleDelay != 0) { u32 uiTime = SDL_GetTicks(); if (uiTime - m_uiThrottleLastTime >= m_uiThrottleDelay) { m_uiThrottleDelay = 0; m_uiThrottleLastTime = uiTime; } else { return true; } } m_stEmulator.emuMain(m_stEmulator.emuCount); return true; } bool Window::on_focus_in_event(GdkEventFocus * _pstEvent) { if (emulating && ! m_bPaused && m_poDisplayConfig->oGetKey<bool>("pause_when_inactive")) { vStartEmu(); soundResume(); } return false; } bool Window::on_focus_out_event(GdkEventFocus * _pstEvent) { if (emulating && ! m_bPaused && m_poDisplayConfig->oGetKey<bool>("pause_when_inactive")) { vStopEmu(); soundPause(); } return false; } bool Window::on_key_press_event(GdkEventKey * _pstEvent) { EKey eKey; if ((_pstEvent->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KeyNone) { return Gtk::Window::on_key_press_event(_pstEvent); } switch (eKey) { case KeyA: m_uiJoypadState |= KeyFlagA; break; case KeyB: m_uiJoypadState |= KeyFlagB; break; case KeySelect: m_uiJoypadState |= KeyFlagSelect; break; case KeyStart: m_uiJoypadState |= KeyFlagStart; break; case KeyRight: m_uiJoypadState |= KeyFlagRight; m_uiJoypadState &= ~KeyFlagLeft; break; case KeyLeft: m_uiJoypadState |= KeyFlagLeft; m_uiJoypadState &= ~KeyFlagRight; break; case KeyUp: m_uiJoypadState |= KeyFlagUp; m_uiJoypadState &= ~KeyFlagDown; break; case KeyDown: m_uiJoypadState |= KeyFlagDown; m_uiJoypadState &= ~KeyFlagUp; break; case KeyR: m_uiJoypadState |= KeyFlagR; break; case KeyL: m_uiJoypadState |= KeyFlagL; break; case KeySpeed: m_uiJoypadState |= KeyFlagSpeed; break; case KeyCapture: m_uiJoypadState |= KeyFlagCapture; break; case KeyNone: break; } return true; } bool Window::on_key_release_event(GdkEventKey * _pstEvent) { EKey eKey; if ((_pstEvent->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KeyNone) { return Gtk::Window::on_key_release_event(_pstEvent); } switch (eKey) { case KeyA: m_uiJoypadState &= ~KeyFlagA; break; case KeyB: m_uiJoypadState &= ~KeyFlagB; break; case KeySelect: m_uiJoypadState &= ~KeyFlagSelect; break; case KeyStart: m_uiJoypadState &= ~KeyFlagStart; break; case KeyRight: m_uiJoypadState &= ~KeyFlagRight; break; case KeyLeft: m_uiJoypadState &= ~KeyFlagLeft; break; case KeyUp: m_uiJoypadState &= ~KeyFlagUp; break; case KeyDown: m_uiJoypadState &= ~KeyFlagDown; break; case KeyR: m_uiJoypadState &= ~KeyFlagR; break; case KeyL: m_uiJoypadState &= ~KeyFlagL; break; case KeySpeed: m_uiJoypadState &= ~KeyFlagSpeed; break; case KeyCapture: m_uiJoypadState &= ~KeyFlagCapture; break; case KeyNone: break; } return true; } } // namespace VBA |
From: S?bastien G. <kx...@us...> - 2004-04-27 23:16:42
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1856 Modified Files: vba.glade window.cpp window.h Log Message: Added directories support with a few other things. Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** vba.glade 26 Apr 2004 23:42:27 -0000 1.6 --- vba.glade 27 Apr 2004 23:16:31 -0000 1.7 *************** *** 31,35 **** <child> ! <widget class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> --- 31,35 ---- <child> ! <widget class="GtkMenuBar" id="MenuBar"> <property name="visible">True</property> *************** *** 51,55 **** <child internal-child="image"> ! <widget class="GtkImage" id="image80"> <property name="visible">True</property> <property name="stock">gtk-open</property> --- 51,55 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image90"> <property name="visible">True</property> <property name="stock">gtk-open</property> *************** *** 200,204 **** <child internal-child="image"> ! <widget class="GtkImage" id="image81"> <property name="visible">True</property> <property name="stock">gtk-close</property> --- 200,204 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image91"> <property name="visible">True</property> <property name="stock">gtk-close</property> *************** *** 221,225 **** <child internal-child="image"> ! <widget class="GtkImage" id="image82"> <property name="visible">True</property> <property name="stock">gtk-quit</property> --- 221,225 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image92"> <property name="visible">True</property> <property name="stock">gtk-quit</property> *************** *** 638,641 **** --- 638,658 ---- <child> + <widget class="GtkMenuItem" id="EmulatorDirectories"> + <property name="visible">True</property> + <property name="label" translatable="yes">Directories...</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkCheckMenuItem" id="EmulatorPauseWhenInactive"> + <property name="visible">True</property> + <property name="label" translatable="yes">Pause when inactive window</property> + <property name="use_underline">True</property> + <property name="active">False</property> + </widget> + </child> + + <child> <widget class="GtkMenuItem" id="ShowSpeedMenu"> <property name="visible">True</property> *************** *** 777,793 **** <child> ! <widget class="GtkCheckMenuItem" id="EmulatorUseBios"> <property name="visible">True</property> ! <property name="label" translatable="yes">_Use BIOS file</property> <property name="use_underline">True</property> - <property name="active">False</property> </widget> </child> <child> ! <widget class="GtkMenuItem" id="EmulatorSelectBios"> <property name="visible">True</property> ! <property name="label" translatable="yes">_Select BIOS file...</property> <property name="use_underline">True</property> </widget> </child> --- 794,810 ---- <child> ! <widget class="GtkMenuItem" id="EmulatorSelectBios"> <property name="visible">True</property> ! <property name="label" translatable="yes">_Select BIOS file...</property> <property name="use_underline">True</property> </widget> </child> <child> ! <widget class="GtkCheckMenuItem" id="EmulatorUseBios"> <property name="visible">True</property> ! <property name="label" translatable="yes">_Use BIOS file</property> <property name="use_underline">True</property> + <property name="active">False</property> </widget> </child> *************** *** 1909,1911 **** --- 1926,2522 ---- </widget> + <widget class="GtkDialog" id="DirectoriesDialog"> + <property name="visible">True</property> + <property name="title" translatable="yes">Directories</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">True</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox3"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area3"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="cancelbutton2"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-6</property> + </widget> + </child> + + <child> + <widget class="GtkButton" id="okbutton2"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-ok</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-5</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">5</property> + <property name="n_columns">4</property> + <property name="homogeneous">False</property> + <property name="row_spacing">0</property> + <property name="column_spacing">0</property> + + <child> + <widget class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="label" translatable="yes">GBA roms : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="GBARomsDirEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="GBARomsDirResetButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image83"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="GBARomsDirSelectButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image84"> + <property name="visible">True</property> + <property name="stock">gtk-open</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="label" translatable="yes">GB roms : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="GBRomsDirSelectButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image94"> + <property name="visible">True</property> + <property name="stock">gtk-open</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Batteries : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="BatteriesDirEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="BatteriesDirSelectButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image98"> + <property name="visible">True</property> + <property name="stock">gtk-open</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="BatteriesDirResetButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image95"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Saves : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="SavesDirEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="SavesDirResetButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image96"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="SavesDirSelectButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image99"> + <property name="visible">True</property> + <property name="stock">gtk-open</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label10"> + <property name="visible">True</property> + <property name="label" translatable="yes">Captures : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="CapturesDirEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="CapturesDirResetButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image97"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="CapturesDirSelectButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image100"> + <property name="visible">True</property> + <property name="stock">gtk-open</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="GBRomsDirEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="GBRomsDirResetButton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + + <child> + <widget class="GtkImage" id="image101"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> + </widget> + </glade-interface> Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** window.h 26 Apr 2004 23:42:28 -0000 1.9 --- window.h 27 Apr 2004 23:16:32 -0000 1.10 *************** *** 130,135 **** 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); --- 130,139 ---- virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale); virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer); ! virtual void vOnDirectories(); ! virtual void vOnDirectoryReset(Gtk::Entry * _poEntry); ! virtual void vOnDirectorySelect(Gtk::Entry * _poEntry); ! virtual void vOnPauseWhenInactiveToggled(Gtk::CheckMenuItem * _poCMI); virtual void vOnSelectBios(); + virtual void vOnUseBiosToggled(Gtk::CheckMenuItem * _poCMI); virtual void vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed); virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType); *************** *** 153,156 **** --- 157,162 ---- virtual bool bOnEmuIdle(); + virtual bool on_focus_in_event(GdkEventFocus * _pstEvent); + virtual bool on_focus_out_event(GdkEventFocus * _pstEvent); virtual bool on_key_press_event(GdkEventKey * _pstEvent); virtual bool on_key_release_event(GdkEventKey * _pstEvent); *************** *** 189,192 **** --- 195,199 ---- std::string m_sConfigFile; Config::File m_oConfig; + Config::Section * m_poDirConfig; Config::Section * m_poCoreConfig; Config::Section * m_poDisplayConfig; *************** *** 209,212 **** --- 216,220 ---- Keymap m_oKeymap; u32 m_uiJoypadState; + bool m_bPaused; bool m_bWasEmulating; bool m_bAutoFrameskip; Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** window.cpp 26 Apr 2004 23:42:27 -0000 1.9 --- window.cpp 27 Apr 2004 23:16:32 -0000 1.10 *************** *** 135,138 **** --- 135,140 ---- m_poFilePauseItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilePause")); m_poFilePauseItem->set_active(false); + m_poFilePauseItem->set_sensitive(false); + vOnFilePauseToggled(m_poFilePauseItem); m_poFilePauseItem->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( SigC::slot(*this, &Window::vOnFilePauseToggled), *************** *** 279,282 **** --- 281,294 ---- // Emulator menu // + poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("EmulatorDirectories")); + poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnDirectories)); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("EmulatorPauseWhenInactive")); + poCMI->set_active(m_poDisplayConfig->oGetKey<bool>("pause_when_inactive")); + vOnPauseWhenInactiveToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnPauseWhenInactiveToggled), + poCMI)); + m_poUseBiosItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("EmulatorUseBios")); m_poUseBiosItem->set_active(m_poCoreConfig->oGetKey<bool>("use_bios_file")); *************** *** 738,741 **** --- 750,762 ---- m_oConfig.vClear(); + // Directories section + // + m_poDirConfig = m_oConfig.poAddSection("Directories"); + m_poDirConfig->vSetKey("gb_roms", "" ); + m_poDirConfig->vSetKey("gba_roms", "" ); + m_poDirConfig->vSetKey("batteries", "" ); + m_poDirConfig->vSetKey("saves", "" ); + m_poDirConfig->vSetKey("captures", "" ); + // Core section // *************** *** 762,771 **** // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey("scale", 1 ); ! m_poDisplayConfig->vSetKey("show_speed", ShowPercentage ); ! m_poDisplayConfig->vSetKey("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey("filter_disable_mmx", false ); #endif // MMX --- 783,793 ---- // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey("scale", 1 ); ! m_poDisplayConfig->vSetKey("show_speed", ShowPercentage ); ! m_poDisplayConfig->vSetKey("pause_when_inactive", true ); ! m_poDisplayConfig->vSetKey("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey("filter_disable_mmx", false ); #endif // MMX *************** *** 793,796 **** --- 815,846 ---- std::string sValue; + // Directories section + // + sValue = m_poDirConfig->sGetKey("gb_roms"); + if (sValue != "" && ! Glib::file_test(sValue, Glib::FILE_TEST_IS_DIR)) + { + m_poDirConfig->vSetKey("gb_roms", ""); + } + sValue = m_poDirConfig->sGetKey("gba_roms"); + if (sValue != "" && ! Glib::file_test(sValue, Glib::FILE_TEST_IS_DIR)) + { + m_poDirConfig->vSetKey("gba_roms", ""); + } + sValue = m_poDirConfig->sGetKey("batteries"); + if (sValue != "" && ! Glib::file_test(sValue, Glib::FILE_TEST_IS_DIR)) + { + m_poDirConfig->vSetKey("batteries", ""); + } + sValue = m_poDirConfig->sGetKey("saves"); + if (sValue != "" && ! Glib::file_test(sValue, Glib::FILE_TEST_IS_DIR)) + { + m_poDirConfig->vSetKey("saves", ""); + } + sValue = m_poDirConfig->sGetKey("captures"); + if (sValue != "" && ! Glib::file_test(sValue, Glib::FILE_TEST_IS_DIR)) + { + m_poDirConfig->vSetKey("captures", ""); + } + // Core section // *************** *** 1199,1210 **** } ! if (m_poFilePauseItem->get_active()) ! { ! m_poFilePauseItem->set_active(false); ! } ! else ! { ! vStartEmu(); ! } return true; --- 1249,1255 ---- } ! m_poFilePauseItem->set_sensitive(); ! ! vStartEmu(); return true; *************** *** 1213,1219 **** void Window::vLoadBattery() { ! // TODO : from battery dir - std::string sBattery = sCutSuffix(m_sRomFile) + ".sav"; if (m_stEmulator.emuReadBattery(sBattery.c_str())) { --- 1258,1272 ---- void Window::vLoadBattery() { ! std::string sBattery; ! std::string sDir = m_poDirConfig->sGetKey("batteries"); ! if (sDir == "") ! { ! sBattery = sCutSuffix(m_sRomFile) + ".sav"; ! } ! else ! { ! sBattery = sDir + "/" + sCutSuffix(Glib::path_get_basename(m_sRomFile)) + ".sav"; ! } if (m_stEmulator.emuReadBattery(sBattery.c_str())) { *************** *** 1224,1230 **** void Window::vSaveBattery() { ! // TODO : from battery dir - std::string sBattery = sCutSuffix(m_sRomFile) + ".sav"; if (m_stEmulator.emuWriteBattery(sBattery.c_str())) { --- 1277,1291 ---- void Window::vSaveBattery() { ! std::string sBattery; ! std::string sDir = m_poDirConfig->sGetKey("batteries"); ! if (sDir == "") ! { ! sBattery = sCutSuffix(m_sRomFile) + ".sav"; ! } ! else ! { ! sBattery = sDir + "/" + sCutSuffix(Glib::path_get_basename(m_sRomFile)) + ".sav"; ! } if (m_stEmulator.emuWriteBattery(sBattery.c_str())) { *************** *** 1299,1302 **** --- 1360,1369 ---- m_poFileOpenDialog = new Gtk::FileSelection(_("Open")); m_poFileOpenDialog->set_transient_for(*this); + + std::string sDir = m_poDirConfig->sGetKey("gba_roms"); + if (sDir != "") + { + m_poFileOpenDialog->set_filename(sDir + "/"); + } } *************** *** 1313,1325 **** void Window::vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI) { if (emulating) { ! if (_poCMI->get_active()) { vStopEmu(); } else { vStartEmu(); } } --- 1380,1395 ---- void Window::vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI) { + m_bPaused = _poCMI->get_active(); if (emulating) { ! if (m_bPaused) { vStopEmu(); + soundPause(); } else { vStartEmu(); + soundResume(); } } *************** *** 1338,1341 **** --- 1408,1412 ---- if (emulating) { + soundPause(); vStopEmu(); vSetDefaultTitle(); *************** *** 1345,1348 **** --- 1416,1421 ---- m_eCartridge = CartridgeNone; emulating = 0; + + m_poFilePauseItem->set_sensitive(false); } } *************** *** 1463,1469 **** } ! void Window::vOnUseBiosToggled(Gtk::CheckMenuItem * _poCMI) { ! m_poCoreConfig->vSetKey("use_bios_file", _poCMI->get_active()); } --- 1536,1627 ---- } ! void Window::vOnDirectories() { ! Glib::RefPtr<Xml> poXml; ! poXml = Xml::create(PKGDATADIR "/vba.glade", "DirectoriesDialog"); ! ! struct ! { ! const char * m_csKey; ! const char * m_csEntry; ! const char * m_csResetButton; ! const char * m_csSelectButton; ! } ! astRow[] = ! { ! { "gba_roms", "GBARomsDirEntry", "GBARomsDirResetButton", "GBARomsDirSelectButton" }, ! { "gb_roms", "GBRomsDirEntry", "GBRomsDirResetButton", "GBRomsDirSelectButton" }, ! { "batteries", "BatteriesDirEntry", "BatteriesDirResetButton", "BatteriesDirSelectButton" }, ! { "saves", "SavesDirEntry", "SavesDirResetButton", "SavesDirSelectButton" }, ! { "captures", "CapturesDirEntry", "CapturesDirResetButton", "CapturesDirSelectButton" } ! }; ! ! for (guint i = 0; i < sizeof(astRow) / sizeof(astRow[0]); i++) ! { ! Gtk::Entry * poEntry = dynamic_cast<Gtk::Entry *>(poXml->get_widget(astRow[i].m_csEntry)); ! Gtk::Button * poReset = dynamic_cast<Gtk::Button *>(poXml->get_widget(astRow[i].m_csResetButton)); ! Gtk::Button * poSelect = dynamic_cast<Gtk::Button *>(poXml->get_widget(astRow[i].m_csSelectButton)); ! ! poEntry->set_text(m_poDirConfig->sGetKey(astRow[i].m_csKey)); ! ! poReset->signal_clicked().connect(SigC::bind<Gtk::Entry *>( ! SigC::slot(*this, &Window::vOnDirectoryReset), ! poEntry)); ! poSelect->signal_clicked().connect(SigC::bind<Gtk::Entry *>( ! SigC::slot(*this, &Window::vOnDirectorySelect), ! poEntry)); ! } ! ! Gtk::Dialog * poDialog = dynamic_cast<Gtk::Dialog *>(poXml->get_widget("DirectoriesDialog")); ! poDialog->set_transient_for(*this); ! ! if (poDialog->run() == Gtk::RESPONSE_OK) ! { ! for (guint i = 0; i < sizeof(astRow) / sizeof(astRow[0]); i++) ! { ! Gtk::Entry * poEntry = dynamic_cast<Gtk::Entry *>(poXml->get_widget(astRow[i].m_csEntry)); ! Glib::ustring sDir = poEntry->get_text(); ! if (! Glib::file_test(sDir, Glib::FILE_TEST_IS_DIR)) ! { ! sDir = ""; ! } ! m_poDirConfig->vSetKey(astRow[i].m_csKey, sDir); ! } ! } ! ! delete poDialog; ! } ! ! void Window::vOnDirectoryReset(Gtk::Entry * _poEntry) ! { ! _poEntry->set_text(""); ! } ! ! void Window::vOnDirectorySelect(Gtk::Entry * _poEntry) ! { ! Gtk::FileSelection * poDialog = new Gtk::FileSelection(_("Select directory")); ! poDialog->set_transient_for(*this); ! ! if (_poEntry->get_text() != "") ! { ! poDialog->set_filename(_poEntry->get_text() + "/"); ! } ! ! if (poDialog->run() == Gtk::RESPONSE_OK) ! { ! std::string sFile = poDialog->get_filename(); ! if (! Glib::file_test(sFile, Glib::FILE_TEST_IS_DIR)) ! { ! sFile = Glib::path_get_dirname(sFile); ! } ! _poEntry->set_text(sFile); ! } ! ! delete poDialog; ! } ! ! void Window::vOnPauseWhenInactiveToggled(Gtk::CheckMenuItem * _poCMI) ! { ! m_poDisplayConfig->vSetKey("pause_when_inactive", _poCMI->get_active()); } *************** *** 1491,1494 **** --- 1649,1657 ---- } + void Window::vOnUseBiosToggled(Gtk::CheckMenuItem * _poCMI) + { + m_poCoreConfig->vSetKey("use_bios_file", _poCMI->get_active()); + } + void Window::vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed) { *************** *** 1756,1759 **** --- 1919,1946 ---- } + bool Window::on_focus_in_event(GdkEventFocus * _pstEvent) + { + if (emulating + && ! m_bPaused + && m_poDisplayConfig->oGetKey<bool>("pause_when_inactive")) + { + vStartEmu(); + soundResume(); + } + return false; + } + + bool Window::on_focus_out_event(GdkEventFocus * _pstEvent) + { + if (emulating + && ! m_bPaused + && m_poDisplayConfig->oGetKey<bool>("pause_when_inactive")) + { + vStopEmu(); + soundPause(); + } + return false; + } + bool Window::on_key_press_event(GdkEventKey * _pstEvent) { |
From: S?bastien G. <kx...@us...> - 2004-04-26 23:42:38
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16698 Modified Files: input.h vba.glade window.cpp window.h Log Message: Added Gameboy menu support. Index: input.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/input.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** input.h 29 Mar 2004 22:08:40 -0000 1.1 --- input.h 26 Apr 2004 23:42:27 -0000 1.2 *************** *** 28,46 **** enum EKey { ! KEY_NONE, // GBA keys ! KEY_A, ! KEY_B, ! KEY_SELECT, ! KEY_START, ! KEY_RIGHT, ! KEY_LEFT, ! KEY_UP, ! KEY_DOWN, ! KEY_R, ! KEY_L, // VBA extension ! KEY_SPEED, ! KEY_CAPTURE }; --- 28,46 ---- enum EKey { ! KeyNone, // GBA keys ! KeyA, ! KeyB, ! KeySelect, ! KeyStart, ! KeyRight, ! KeyLeft, ! KeyUp, ! KeyDown, ! KeyR, ! KeyL, // VBA extension ! KeySpeed, ! KeyCapture }; *************** *** 48,64 **** { // GBA keys ! KEYFLAG_A = 1 << 0, ! KEYFLAG_B = 1 << 1, ! KEYFLAG_SELECT = 1 << 2, ! KEYFLAG_START = 1 << 3, ! KEYFLAG_RIGHT = 1 << 4, ! KEYFLAG_LEFT = 1 << 5, ! KEYFLAG_UP = 1 << 6, ! KEYFLAG_DOWN = 1 << 7, ! KEYFLAG_R = 1 << 8, ! KEYFLAG_L = 1 << 9, // VBA extension ! KEYFLAG_SPEED = 1 << 10, ! KEYFLAG_CAPTURE = 1 << 11, }; --- 48,64 ---- { // GBA keys ! KeyFlagA = 1 << 0, ! KeyFlagB = 1 << 1, ! KeyFlagSelect = 1 << 2, ! KeyFlagStart = 1 << 3, ! KeyFlagRight = 1 << 4, ! KeyFlagLeft = 1 << 5, ! KeyFlagUp = 1 << 6, ! KeyFlagDown = 1 << 7, ! KeyFlagR = 1 << 8, ! KeyFlagL = 1 << 9, // VBA extension ! KeyFlagSpeed = 1 << 10, ! KeyFlagCapture = 1 << 11, }; Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** vba.glade 22 Apr 2004 20:42:40 -0000 1.5 --- vba.glade 26 Apr 2004 23:42:27 -0000 1.6 *************** *** 1088,1092 **** <child> ! <widget class="GtkRadioMenuItem" id="GameBoyGba"> <property name="visible">True</property> <property name="label" translatable="yes">_GBA</property> --- 1088,1092 ---- <child> ! <widget class="GtkRadioMenuItem" id="GameboyGba"> <property name="visible">True</property> <property name="label" translatable="yes">_GBA</property> Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** window.h 26 Apr 2004 00:13:50 -0000 1.8 --- window.h 26 Apr 2004 23:42:28 -0000 1.9 *************** *** 110,113 **** --- 110,123 ---- }; + enum EEmulatorType + { + EmulatorAuto, + EmulatorCGB, + EmulatorSGB, + EmulatorGB, + EmulatorGBA, + EmulatorSGB2 + }; + virtual void vOnFileOpen(); virtual void vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI); *************** *** 132,135 **** --- 142,148 ---- virtual void vOnSoundQualityToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundQuality); virtual void vOnSoundVolumeToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundVolume); + virtual void vOnGBBorderToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnGBPrinterToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnEmulatorTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iEmulatorType); virtual void vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x); virtual void vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB); *************** *** 162,165 **** --- 175,180 ---- const int m_iSoundVolumeMin; const int m_iSoundVolumeMax; + const int m_iEmulatorTypeMin; + const int m_iEmulatorTypeMax; const int m_iFilter2xMin; const int m_iFilter2xMax; Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** window.cpp 26 Apr 2004 00:13:50 -0000 1.8 --- window.cpp 26 Apr 2004 23:42:27 -0000 1.9 *************** *** 27,30 **** --- 27,31 ---- #include "../gb/GB.h" #include "../gb/gbGlobals.h" + #include "../gb/gbPrinter.h" #include "../Sound.h" #include "../Util.h" *************** *** 71,74 **** --- 72,77 ---- m_iSoundVolumeMin (Sound100), m_iSoundVolumeMax (Sound50), + m_iEmulatorTypeMin(EmulatorAuto), + m_iEmulatorTypeMax(EmulatorSGB2), m_iFilter2xMin (FirstFilter), m_iFilter2xMax (LastFilter), *************** *** 508,511 **** --- 511,558 ---- } + // Gameboy menu + // + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("GameboyBorder")); + poCMI->set_active(m_poCoreConfig->oGetKey<bool>("gb_border")); + vOnGBBorderToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnGBBorderToggled), + poCMI)); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("GameboyPrinter")); + poCMI->set_active(m_poCoreConfig->oGetKey<bool>("gb_printer")); + vOnGBPrinterToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnGBPrinterToggled), + poCMI)); + + struct + { + const char * m_csName; + const EEmulatorType m_eEmulatorType; + } + astEmulatorType[] = + { + { "GameboyAutomatic", EmulatorAuto }, + { "GameboyGba", EmulatorGBA }, + { "GameboyCgb", EmulatorCGB }, + { "GameboySgb", EmulatorSGB }, + { "GameboySgb2", EmulatorSGB2 }, + { "GameboyGb", EmulatorGB } + }; + EEmulatorType eDefaultEmulatorType = (EEmulatorType)m_poCoreConfig->oGetKey<int>("emulator_type"); + for (guint i = 0; i < sizeof(astEmulatorType) / sizeof(astEmulatorType[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astEmulatorType[i].m_csName)); + if (astEmulatorType[i].m_eEmulatorType == eDefaultEmulatorType) + { + poCMI->set_active(); + vOnEmulatorTypeToggled(poCMI, eDefaultEmulatorType); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnEmulatorTypeToggled), + poCMI, astEmulatorType[i].m_eEmulatorType)); + } + // Filter menu // *************** *** 659,663 **** gbFrameSkip = 0; ! // TODO : GB init and 16-bit color map (?) } --- 706,717 ---- gbFrameSkip = 0; ! ! for (int i = 0; i < 24; ) ! { ! systemGbPalette[i++] = (0x1f) | (0x1f << 5) | (0x1f << 10); ! systemGbPalette[i++] = (0x15) | (0x15 << 5) | (0x15 << 10); ! systemGbPalette[i++] = (0x0c) | (0x0c << 5) | (0x0c << 10); ! systemGbPalette[i++] = 0; ! } } *************** *** 687,714 **** // 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", SaveAuto ); ! m_poCoreConfig->vSetKey<int>("flash_size", 64 ); // Display section // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey ("scale", 1 ); ! m_poDisplayConfig->vSetKey<int>("show_speed", ShowPercentage ); ! m_poDisplayConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX --- 741,771 ---- // 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("save_type", SaveAuto ); ! m_poCoreConfig->vSetKey("flash_size", 64 ); ! m_poCoreConfig->vSetKey("gb_border", true ); ! m_poCoreConfig->vSetKey("gb_printer", false ); ! m_poCoreConfig->vSetKey("emulator_type", EmulatorAuto ); // Display section // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey("scale", 1 ); ! m_poDisplayConfig->vSetKey("show_speed", ShowPercentage ); ! m_poDisplayConfig->vSetKey("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey("filter_disable_mmx", false ); #endif // MMX *************** *** 784,787 **** --- 841,851 ---- } + iValue = m_poCoreConfig->oGetKey<int>("emulator_type"); + iAdjusted = CLAMP(iValue, m_iEmulatorTypeMin, m_iEmulatorTypeMax); + if (iValue != iAdjusted) + { + m_poCoreConfig->vSetKey("emulator_type", iAdjusted); + } + // Display section // *************** *** 873,896 **** // TODO : load from prefs ! m_oKeymap.vRegister(GDK_z, KEY_A); ! m_oKeymap.vRegister(GDK_Z, KEY_A); ! m_oKeymap.vRegister(GDK_x, KEY_B); ! m_oKeymap.vRegister(GDK_X, KEY_B); ! m_oKeymap.vRegister(GDK_BackSpace, KEY_SELECT); ! m_oKeymap.vRegister(GDK_Return, KEY_START); ! m_oKeymap.vRegister(GDK_Right, KEY_RIGHT); ! m_oKeymap.vRegister(GDK_Left, KEY_LEFT); ! m_oKeymap.vRegister(GDK_Up, KEY_UP); ! m_oKeymap.vRegister(GDK_Down, KEY_DOWN); ! m_oKeymap.vRegister(GDK_s, KEY_R); ! m_oKeymap.vRegister(GDK_S, KEY_R); ! m_oKeymap.vRegister(GDK_a, KEY_L); ! m_oKeymap.vRegister(GDK_A, KEY_L); ! m_oKeymap.vRegister(GDK_space, KEY_SPEED); ! m_oKeymap.vRegister(GDK_F12, KEY_CAPTURE); } void Window::vUpdateScreen() { g_return_if_fail(m_iScreenWidth >= 1 && m_iScreenHeight >= 1); --- 937,985 ---- // TODO : load from prefs ! m_oKeymap.vRegister(GDK_z, KeyA); ! m_oKeymap.vRegister(GDK_Z, KeyA); ! m_oKeymap.vRegister(GDK_x, KeyB); ! m_oKeymap.vRegister(GDK_X, KeyB); ! m_oKeymap.vRegister(GDK_BackSpace, KeySelect); ! m_oKeymap.vRegister(GDK_Return, KeyStart); ! m_oKeymap.vRegister(GDK_Right, KeyRight); ! m_oKeymap.vRegister(GDK_Left, KeyLeft); ! m_oKeymap.vRegister(GDK_Up, KeyUp); ! m_oKeymap.vRegister(GDK_Down, KeyDown); ! m_oKeymap.vRegister(GDK_s, KeyR); ! m_oKeymap.vRegister(GDK_S, KeyR); ! m_oKeymap.vRegister(GDK_a, KeyL); ! m_oKeymap.vRegister(GDK_A, KeyL); ! m_oKeymap.vRegister(GDK_space, KeySpeed); ! m_oKeymap.vRegister(GDK_F12, KeyCapture); } void Window::vUpdateScreen() { + if (m_eCartridge == CartridgeGB) + { + if (gbBorderOn) + { + m_iScreenWidth = m_iSGBScreenWidth; + m_iScreenHeight = m_iSGBScreenHeight; + gbBorderLineSkip = m_iSGBScreenWidth; + gbBorderColumnSkip = (m_iSGBScreenWidth - m_iGBScreenWidth) / 2; + gbBorderRowSkip = (m_iSGBScreenHeight - m_iGBScreenHeight) / 2; + } + else + { + m_iScreenWidth = m_iGBScreenWidth; + m_iScreenHeight = m_iGBScreenHeight; + gbBorderLineSkip = m_iGBScreenWidth; + gbBorderColumnSkip = 0; + gbBorderRowSkip = 0; + } + } + else if (m_eCartridge == CartridgeGBA) + { + m_iScreenWidth = m_iGBAScreenWidth; + m_iScreenHeight = m_iGBAScreenHeight; + } + g_return_if_fail(m_iScreenWidth >= 1 && m_iScreenHeight >= 1); *************** *** 1053,1073 **** // } //} - - if (gbBorderOn) - { - m_iScreenWidth = m_iSGBScreenWidth; - m_iScreenHeight = m_iSGBScreenHeight; - gbBorderLineSkip = m_iSGBScreenWidth; - gbBorderColumnSkip = (m_iSGBScreenWidth - m_iGBScreenWidth) / 2; - gbBorderRowSkip = (m_iSGBScreenHeight - m_iGBScreenHeight) / 2; - } - else - { - m_iScreenWidth = m_iGBScreenWidth; - m_iScreenHeight = m_iGBScreenHeight; - gbBorderLineSkip = m_iGBScreenWidth; - gbBorderColumnSkip = 0; - gbBorderRowSkip = 0; - } } } --- 1142,1145 ---- *************** *** 1102,1108 **** // } //} - - m_iScreenWidth = m_iGBAScreenWidth; - m_iScreenHeight = m_iGBAScreenHeight; } } --- 1174,1177 ---- *************** *** 1301,1304 **** --- 1370,1374 ---- { m_poCoreConfig->vSetKey("frameskip", "auto"); + gbFrameSkip = 0; systemFrameSkip = 0; m_bAutoFrameskip = true; *************** *** 1584,1587 **** --- 1654,1687 ---- } + void Window::vOnGBBorderToggled(Gtk::CheckMenuItem * _poCMI) + { + gbBorderOn = _poCMI->get_active(); + if (emulating && m_eCartridge == CartridgeGB && _poCMI->get_active()) + { + gbSgbRenderBorder(); + } + vUpdateScreen(); + m_poCoreConfig->vSetKey("gb_border", _poCMI->get_active()); + } + + void Window::vOnGBPrinterToggled(Gtk::CheckMenuItem * _poCMI) + { + if (_poCMI->get_active()) + { + gbSerialFunction = gbPrinterSend; + } + else + { + gbSerialFunction = NULL; + } + m_poCoreConfig->vSetKey("gb_printer", _poCMI->get_active()); + } + + void Window::vOnEmulatorTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iEmulatorType) + { + gbEmulatorType = _iEmulatorType; + m_poCoreConfig->vSetKey("emulator_type", _iEmulatorType); + } + void Window::vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x) { *************** *** 1661,1665 **** if ((_pstEvent->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) ! || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KEY_NONE) { return Gtk::Window::on_key_press_event(_pstEvent); --- 1761,1765 ---- if ((_pstEvent->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) ! || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KeyNone) { return Gtk::Window::on_key_press_event(_pstEvent); *************** *** 1668,1712 **** switch (eKey) { ! case KEY_A: ! m_uiJoypadState |= KEYFLAG_A; break; ! case KEY_B: ! m_uiJoypadState |= KEYFLAG_B; break; ! case KEY_SELECT: ! m_uiJoypadState |= KEYFLAG_SELECT; break; ! case KEY_START: ! m_uiJoypadState |= KEYFLAG_START; break; ! case KEY_RIGHT: ! m_uiJoypadState |= KEYFLAG_RIGHT; ! m_uiJoypadState &= ~KEYFLAG_LEFT; break; ! case KEY_LEFT: ! m_uiJoypadState |= KEYFLAG_LEFT; ! m_uiJoypadState &= ~KEYFLAG_RIGHT; break; ! case KEY_UP: ! m_uiJoypadState |= KEYFLAG_UP; ! m_uiJoypadState &= ~KEYFLAG_DOWN; break; ! case KEY_DOWN: ! m_uiJoypadState |= KEYFLAG_DOWN; ! m_uiJoypadState &= ~KEYFLAG_UP; break; ! case KEY_R: ! m_uiJoypadState |= KEYFLAG_R; break; ! case KEY_L: ! m_uiJoypadState |= KEYFLAG_L; break; ! case KEY_SPEED: ! m_uiJoypadState |= KEYFLAG_SPEED; break; ! case KEY_CAPTURE: ! m_uiJoypadState |= KEYFLAG_CAPTURE; break; ! case KEY_NONE: break; } --- 1768,1812 ---- switch (eKey) { ! case KeyA: ! m_uiJoypadState |= KeyFlagA; break; ! case KeyB: ! m_uiJoypadState |= KeyFlagB; break; ! case KeySelect: ! m_uiJoypadState |= KeyFlagSelect; break; ! case KeyStart: ! m_uiJoypadState |= KeyFlagStart; break; ! case KeyRight: ! m_uiJoypadState |= KeyFlagRight; ! m_uiJoypadState &= ~KeyFlagLeft; break; ! case KeyLeft: ! m_uiJoypadState |= KeyFlagLeft; ! m_uiJoypadState &= ~KeyFlagRight; break; ! case KeyUp: ! m_uiJoypadState |= KeyFlagUp; ! m_uiJoypadState &= ~KeyFlagDown; break; ! case KeyDown: ! m_uiJoypadState |= KeyFlagDown; ! m_uiJoypadState &= ~KeyFlagUp; break; ! case KeyR: ! m_uiJoypadState |= KeyFlagR; break; ! case KeyL: ! m_uiJoypadState |= KeyFlagL; break; ! case KeySpeed: ! m_uiJoypadState |= KeyFlagSpeed; break; ! case KeyCapture: ! m_uiJoypadState |= KeyFlagCapture; break; ! case KeyNone: break; } *************** *** 1719,1723 **** if ((_pstEvent->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) ! || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KEY_NONE) { return Gtk::Window::on_key_release_event(_pstEvent); --- 1819,1823 ---- if ((_pstEvent->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) ! || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KeyNone) { return Gtk::Window::on_key_release_event(_pstEvent); *************** *** 1726,1766 **** switch (eKey) { ! case KEY_A: ! m_uiJoypadState &= ~KEYFLAG_A; break; ! case KEY_B: ! m_uiJoypadState &= ~KEYFLAG_B; break; ! case KEY_SELECT: ! m_uiJoypadState &= ~KEYFLAG_SELECT; break; ! case KEY_START: ! m_uiJoypadState &= ~KEYFLAG_START; break; ! case KEY_RIGHT: ! m_uiJoypadState &= ~KEYFLAG_RIGHT; break; ! case KEY_LEFT: ! m_uiJoypadState &= ~KEYFLAG_LEFT; break; ! case KEY_UP: ! m_uiJoypadState &= ~KEYFLAG_UP; break; ! case KEY_DOWN: ! m_uiJoypadState &= ~KEYFLAG_DOWN; break; ! case KEY_R: ! m_uiJoypadState &= ~KEYFLAG_R; break; ! case KEY_L: ! m_uiJoypadState &= ~KEYFLAG_L; break; ! case KEY_SPEED: ! m_uiJoypadState &= ~KEYFLAG_SPEED; break; ! case KEY_CAPTURE: ! m_uiJoypadState &= ~KEYFLAG_CAPTURE; break; ! case KEY_NONE: break; } --- 1826,1866 ---- switch (eKey) { ! case KeyA: ! m_uiJoypadState &= ~KeyFlagA; break; ! case KeyB: ! m_uiJoypadState &= ~KeyFlagB; break; ! case KeySelect: ! m_uiJoypadState &= ~KeyFlagSelect; break; ! case KeyStart: ! m_uiJoypadState &= ~KeyFlagStart; break; ! case KeyRight: ! m_uiJoypadState &= ~KeyFlagRight; break; ! case KeyLeft: ! m_uiJoypadState &= ~KeyFlagLeft; break; ! case KeyUp: ! m_uiJoypadState &= ~KeyFlagUp; break; ! case KeyDown: ! m_uiJoypadState &= ~KeyFlagDown; break; ! case KeyR: ! m_uiJoypadState &= ~KeyFlagR; break; ! case KeyL: ! m_uiJoypadState &= ~KeyFlagL; break; ! case KeySpeed: ! m_uiJoypadState &= ~KeyFlagSpeed; break; ! case KeyCapture: ! m_uiJoypadState &= ~KeyFlagCapture; break; ! case KeyNone: break; } |
From: S?bastien G. <kx...@us...> - 2004-04-26 00:13:58
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32139 Modified Files: window.cpp window.h Log Message: Fixed another sound related bug. Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** window.h 22 Apr 2004 20:42:40 -0000 1.7 --- window.h 26 Apr 2004 00:13:50 -0000 1.8 *************** *** 200,203 **** --- 200,204 ---- u32 m_uiThrottleDelay; EShowSpeed m_eShowSpeed; + ESoundQuality m_eSoundQuality; void vInitSystem(); Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** window.cpp 22 Apr 2004 20:42:40 -0000 1.7 --- window.cpp 26 Apr 2004 00:13:50 -0000 1.8 *************** *** 1121,1124 **** --- 1121,1133 ---- m_uiThrottleDelay = 0; + if (m_eCartridge == CartridgeGBA) + { + soundSetQuality(m_eSoundQuality); + } + else + { + gbSoundSetQuality(m_eSoundQuality); + } + if (m_poFilePauseItem->get_active()) { *************** *** 1552,1555 **** --- 1561,1565 ---- } + m_eSoundQuality = (ESoundQuality)_iSoundQuality; if (m_eCartridge == CartridgeGBA) { *************** *** 1560,1567 **** gbSoundSetQuality(_iSoundQuality); } - else - { - soundQuality = _iSoundQuality; - } m_poSoundConfig->vSetKey("quality", _iSoundQuality); } --- 1570,1573 ---- |
From: S?bastien G. <kx...@us...> - 2004-04-25 21:57:12
|
Update of /cvsroot/vba/VisualBoyAdvance/src/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2762 Modified Files: MainWndFile.cpp skinButton.cpp Log Message: Patch from Forgotten: fixed skin bugs. Index: MainWndFile.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/MainWndFile.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MainWndFile.cpp 11 Mar 2004 11:18:02 -0000 1.5 --- MainWndFile.cpp 25 Apr 2004 21:57:04 -0000 1.6 *************** *** 145,148 **** --- 145,149 ---- winSaveCheatListDefault(); writeBatteryFile(); + soundPause(); theApp.emulator.emuCleanUp(); remoteCleanUp(); Index: skinButton.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/skinButton.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** skinButton.cpp 17 Feb 2004 11:27:36 -0000 1.5 --- skinButton.cpp 25 Apr 2004 21:57:04 -0000 1.6 *************** *** 127,130 **** --- 127,131 ---- inside &= PtInRegion(region, pt.x, pt.y); if(inside) { + HWND hWnd = m_hWnd; if(idCommand != 0) GetParent()->SendMessage(WM_COMMAND, idCommand, 0); *************** *** 140,144 **** } ! return Default(); } return GetParent()->SendMessage(WM_LBUTTONUP, wParam, lParam); --- 141,145 ---- } ! return ::DefWindowProc(hWnd, WM_LBUTTONUP, wParam, lParam); } return GetParent()->SendMessage(WM_LBUTTONUP, wParam, lParam); |
From: S?bastien G. <kx...@us...> - 2004-04-25 19:08:36
|
Update of /cvsroot/vba/VisualBoyAdvance In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27960 Modified Files: configure configure.in Log Message: Fixed the frontend selection. Index: configure =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/configure,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** configure 29 Mar 2004 22:08:37 -0000 1.21 --- configure 25 Apr 2004 19:05:59 -0000 1.22 *************** *** 8186,8191 **** fi ! if test "x$enable_sdl" = xyes || test "x$enable_gtk" = xyes; then ! SDL_VERSION=1.2.2 # Check whether --with-sdl-prefix or --without-sdl-prefix was given. --- 8186,8190 ---- fi ! SDL_VERSION=1.2.2 # Check whether --with-sdl-prefix or --without-sdl-prefix was given. *************** *** 8473,8477 **** SDL_LIBS="" ! { { echo "$as_me:$LINENO: error: *** Couldn't find SDL library (version >= $SDL_VERSION)." >&5 echo "$as_me: error: *** Couldn't find SDL library (version >= $SDL_VERSION)." >&2;} { (exit 1); exit 1; }; } --- 8472,8476 ---- SDL_LIBS="" ! { { echo "$as_me:$LINENO: error: *** Couldn't find SDL library (version >= $SDL_VERSION)." >&5 echo "$as_me: error: *** Couldn't find SDL library (version >= $SDL_VERSION)." >&2;} { (exit 1); exit 1; }; } *************** *** 8482,8485 **** --- 8481,8486 ---- rm -f conf.sdltest + + if test "x$enable_sdl" = xyes; then VBA_EXTRA="$VBA_EXTRA sdl" fi Index: configure.in =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/configure.in,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** configure.in 29 Mar 2004 22:08:37 -0000 1.20 --- configure.in 25 Apr 2004 19:06:16 -0000 1.21 *************** *** 119,128 **** fi ! if test "x$enable_sdl" = xyes || test "x$enable_gtk" = xyes; then ! SDL_VERSION=1.2.2 ! AM_PATH_SDL($SDL_VERSION,[ ! ],[ ! AC_MSG_ERROR([*** Couldn't find SDL library (version >= $SDL_VERSION).]) ! ]) VBA_EXTRA="$VBA_EXTRA sdl" fi --- 119,129 ---- fi ! SDL_VERSION=1.2.2 ! AM_PATH_SDL($SDL_VERSION,[ ! ],[ ! AC_MSG_ERROR([*** Couldn't find SDL library (version >= $SDL_VERSION).]) ! ]) ! ! if test "x$enable_sdl" = xyes; then VBA_EXTRA="$VBA_EXTRA sdl" fi |
From: S?bastien G. <kx...@us...> - 2004-04-25 19:05:47
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27620 Modified Files: system.cpp Log Message: Fixed a bug with sound. Index: system.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/system.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** system.cpp 22 Apr 2004 20:42:39 -0000 1.4 --- system.cpp 25 Apr 2004 19:02:44 -0000 1.5 *************** *** 58,65 **** // Sound stuff // ! static SDL_cond * pstSoundCond = NULL; ! static SDL_mutex * pstSoundMutex = NULL; ! static u8 auiSoundBuffer[4096]; ! static int iSoundLen = 0; inline VBA::Window * GUI() --- 58,67 ---- // Sound stuff // ! const int iSoundSamples = 2048; ! const int iSoundTotalLen = iSoundSamples * 4; ! static u8 auiSoundBuffer[iSoundTotalLen]; ! static int iSoundLen; ! static SDL_cond * pstSoundCond; ! static SDL_mutex * pstSoundMutex; inline VBA::Window * GUI() *************** *** 78,83 **** Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK); - oDialog.show(); // TEST - oDialog.grab_focus(); // TEST oDialog.run(); free(csMsg); --- 80,83 ---- *************** *** 137,141 **** { SDL_mutexP(pstSoundMutex); ! if (iSoundLen < 2048 * 2) { bWait = false; --- 137,141 ---- { SDL_mutexP(pstSoundMutex); ! if (iSoundLen < iSoundTotalLen) { bWait = false; *************** *** 146,155 **** int iLen = soundBufferLen; int iCopied = 0; ! if (iSoundLen + iLen >= 2048 * 2) { ! iCopied = 2048 * 2 - iSoundLen; memcpy(&auiSoundBuffer[iSoundLen], soundFinalWave, iCopied); ! iSoundLen = 2048 * 2; SDL_CondSignal(pstSoundCond); --- 146,155 ---- int iLen = soundBufferLen; int iCopied = 0; ! if (iSoundLen + iLen >= iSoundTotalLen) { ! iCopied = iSoundTotalLen - iSoundLen; memcpy(&auiSoundBuffer[iSoundLen], soundFinalWave, iCopied); ! iSoundLen = iSoundTotalLen; SDL_CondSignal(pstSoundCond); *************** *** 160,164 **** { SDL_mutexP(pstSoundMutex); ! if (iSoundLen < 2048 * 2) { bWait = false; --- 160,164 ---- { SDL_mutexP(pstSoundMutex); ! if (iSoundLen < iSoundTotalLen) { bWait = false; *************** *** 195,199 **** if (! speedup && GUI()->iGetThrottle() == 0) { ! while (iSoundLen < 2048 * 2 && emulating) { SDL_CondWait(pstSoundCond, pstSoundMutex); --- 195,199 ---- if (! speedup && GUI()->iGetThrottle() == 0) { ! while (iSoundLen < iSoundTotalLen && emulating) { SDL_CondWait(pstSoundCond, pstSoundMutex); *************** *** 230,234 **** stAudio.format = AUDIO_S16SYS; stAudio.channels = 2; ! stAudio.samples = 1024; stAudio.callback = vSoundCallback; stAudio.userdata = NULL; --- 230,234 ---- stAudio.format = AUDIO_S16SYS; stAudio.channels = 2; ! stAudio.samples = iSoundSamples; stAudio.callback = vSoundCallback; stAudio.userdata = NULL; |
From: S?bastien G. <kx...@us...> - 2004-04-22 20:42:49
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23207 Modified Files: system.cpp vba.glade window.cpp window.h Log Message: Added sound support. Index: system.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/system.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** system.cpp 16 Apr 2004 01:12:01 -0000 1.3 --- system.cpp 22 Apr 2004 20:42:39 -0000 1.4 *************** *** 19,24 **** --- 19,26 ---- #include <stdio.h> #include <stdarg.h> + #include <string.h> #include <SDL.h> + #include <SDL_thread.h> #include "../GBA.h" *************** *** 26,53 **** #include "../gb/gbGlobals.h" #include "../Util.h" #include "window.h" ! int systemRedShift; ! int systemGreenShift; ! int systemBlueShift; ! int systemColorDepth; ! int systemDebug; ! int systemVerbose; ! int systemSaveUpdateCounter; ! int systemFrameSkip; ! u32 systemColorMap32[0x10000]; ! u16 systemColorMap16[0x10000]; ! u16 systemGbPalette[24]; bool systemSoundOn; int systemRenderedFrames; int systemFPS; ! int emulating; ! bool debugger; ! int RGB_LOW_BITS_MASK; ! inline VBA::Window * gui() { return VBA::Window::poGetInstance(); --- 28,67 ---- #include "../gb/gbGlobals.h" #include "../Util.h" + #include "../Sound.h" #include "window.h" ! // Required vars, used by the emulator core ! // ! int systemRedShift; ! int systemGreenShift; ! int systemBlueShift; ! int systemColorDepth; ! int systemDebug; ! int systemVerbose; ! int systemSaveUpdateCounter; ! int systemFrameSkip; ! u32 systemColorMap32[0x10000]; ! u16 systemColorMap16[0x10000]; ! u16 systemGbPalette[24]; bool systemSoundOn; + int emulating; + bool debugger; + int RGB_LOW_BITS_MASK; + + // Extra vars, only used for the GUI + // int systemRenderedFrames; int systemFPS; ! // Sound stuff ! // ! static SDL_cond * pstSoundCond = NULL; ! static SDL_mutex * pstSoundMutex = NULL; ! static u8 auiSoundBuffer[4096]; ! static int iSoundLen = 0; ! inline VBA::Window * GUI() { return VBA::Window::poGetInstance(); *************** *** 61,67 **** va_end(args); ! Gtk::MessageDialog oDialog(*gui(), csMsg, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK); oDialog.run(); free(csMsg); --- 75,83 ---- va_end(args); ! Gtk::MessageDialog oDialog(*GUI(), csMsg, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK); + oDialog.show(); // TEST + oDialog.grab_focus(); // TEST oDialog.run(); free(csMsg); *************** *** 70,74 **** void systemDrawScreen() { ! gui()->vDrawScreen(); systemRenderedFrames++; } --- 86,90 ---- void systemDrawScreen() { ! GUI()->vDrawScreen(); systemRenderedFrames++; } *************** *** 81,85 **** u32 systemReadJoypad(int) { ! return gui()->uiReadJoypad(); } --- 97,101 ---- u32 systemReadJoypad(int) { ! return GUI()->uiReadJoypad(); } *************** *** 89,98 **** systemRenderedFrames = 0; ! gui()->vShowSpeed(_iSpeed); } void system10Frames(int _iRate) { ! gui()->vComputeFrameskip(_iRate); } --- 105,114 ---- systemRenderedFrames = 0; ! GUI()->vShowSpeed(_iSpeed); } void system10Frames(int _iRate) { ! GUI()->vComputeFrameskip(_iRate); } *************** *** 103,107 **** void systemSetTitle(const char * _csTitle) { ! gui()->set_title(_csTitle); } --- 119,123 ---- void systemSetTitle(const char * _csTitle) { ! GUI()->set_title(_csTitle); } *************** *** 112,119 **** --- 128,250 ---- void systemWriteDataToSoundBuffer() { + if (SDL_GetAudioStatus() != SDL_AUDIO_PLAYING) + { + SDL_PauseAudio(0); + } + + bool bWait = true; + while (bWait && ! speedup && GUI()->iGetThrottle() == 0) + { + SDL_mutexP(pstSoundMutex); + if (iSoundLen < 2048 * 2) + { + bWait = false; + } + SDL_mutexV(pstSoundMutex); + } + + int iLen = soundBufferLen; + int iCopied = 0; + if (iSoundLen + iLen >= 2048 * 2) + { + iCopied = 2048 * 2 - iSoundLen; + memcpy(&auiSoundBuffer[iSoundLen], soundFinalWave, iCopied); + + iSoundLen = 2048 * 2; + SDL_CondSignal(pstSoundCond); + + bWait = true; + if (! speedup && GUI()->iGetThrottle() == 0) + { + while(bWait) + { + SDL_mutexP(pstSoundMutex); + if (iSoundLen < 2048 * 2) + { + bWait = false; + } + SDL_mutexV(pstSoundMutex); + } + + memcpy(auiSoundBuffer, ((u8 *)soundFinalWave) + iCopied, + soundBufferLen - iCopied); + + iSoundLen = soundBufferLen - iCopied; + } + else + { + memcpy(auiSoundBuffer, ((u8 *)soundFinalWave) + iCopied, + soundBufferLen); + } + } + else + { + memcpy(&auiSoundBuffer[iSoundLen], soundFinalWave, soundBufferLen); + iSoundLen += soundBufferLen; + } + } + + static void vSoundCallback(void * _pvUserData, u8 * _puiStream, int _iLen) + { + if (! emulating) + { + return; + } + + SDL_mutexP(pstSoundMutex); + if (! speedup && GUI()->iGetThrottle() == 0) + { + while (iSoundLen < 2048 * 2 && emulating) + { + SDL_CondWait(pstSoundCond, pstSoundMutex); + } + } + if (emulating) + { + memcpy(_puiStream, auiSoundBuffer, _iLen); + } + iSoundLen = 0; + SDL_mutexV(pstSoundMutex); } bool systemSoundInit() { + SDL_AudioSpec stAudio; + + switch (soundQuality) + { + case 1: + stAudio.freq = 44100; + soundBufferLen = 1470 * 2; + break; + case 2: + stAudio.freq = 22050; + soundBufferLen = 736 * 2; + break; + case 4: + stAudio.freq = 11025; + soundBufferLen = 368 * 2; + break; + } + + stAudio.format = AUDIO_S16SYS; + stAudio.channels = 2; + stAudio.samples = 1024; + stAudio.callback = vSoundCallback; + stAudio.userdata = NULL; + + if (SDL_OpenAudio(&stAudio, NULL) < 0) + { + fprintf(stderr, "Failed to open audio: %s\n", SDL_GetError()); + return false; + } + + pstSoundCond = SDL_CreateCond(); + pstSoundMutex = SDL_CreateMutex(); + + soundBufferTotalLen = soundBufferLen * 10; + iSoundLen = 0; + systemSoundOn = true; + return true; } *************** *** 121,132 **** --- 252,281 ---- void systemSoundShutdown() { + SDL_mutexP(pstSoundMutex); + int iSave = emulating; + emulating = 0; + SDL_CondSignal(pstSoundCond); + SDL_mutexV(pstSoundMutex); + + SDL_DestroyCond(pstSoundCond); + pstSoundCond = NULL; + + SDL_DestroyMutex(pstSoundMutex); + pstSoundMutex = NULL; + + SDL_CloseAudio(); + + emulating = iSave; + systemSoundOn = false; } void systemSoundPause() { + SDL_PauseAudio(1); } void systemSoundResume() { + SDL_PauseAudio(0); } *************** *** 168,172 **** bool systemCanChangeSoundQuality() { ! return false; } --- 317,321 ---- bool systemCanChangeSoundQuality() { ! return true; } Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** window.h 16 Apr 2004 06:33:18 -0000 1.6 --- window.h 22 Apr 2004 20:42:40 -0000 1.7 *************** *** 26,29 **** --- 26,31 ---- #include <string> + #include "../System.h" + #include "configfile.h" #include "screenarea.h" *************** *** 61,83 **** void vComputeFrameskip(int _iRate); void vShowSpeed(int _iSpeed); ! inline u32 uiReadJoypad() { return m_uiJoypadState; } ! inline ECartridge eGetCartridge() { return m_eCartridge; } protected: enum EShowSpeed { ! ShowSpeedNone, ! ShowSpeedPercentage, ! ShowSpeedDetailed }; enum ESaveType { ! SaveTypeAuto, ! SaveTypeEEPROM, ! SaveTypeSRAM, ! SaveTypeFlash, ! SaveTypeEEPROMSensor, ! SaveTypeNone }; --- 63,111 ---- void vComputeFrameskip(int _iRate); void vShowSpeed(int _iSpeed); ! ! inline u32 uiReadJoypad() const { return m_uiJoypadState; } ! inline ECartridge eGetCartridge() const { return m_eCartridge; } ! inline int iGetThrottle() const { return m_iThrottle; } protected: enum EShowSpeed { ! ShowNone, ! ShowPercentage, ! ShowDetailed }; enum ESaveType { ! SaveAuto, ! SaveEEPROM, ! SaveSRAM, ! SaveFlash, ! SaveEEPROMSensor, ! SaveNone ! }; ! ! enum ESoundStatus ! { ! SoundOff, ! SoundMute, ! SoundOn ! }; ! ! enum ESoundQuality ! { ! Sound44K = 1, ! Sound22K = 2, ! Sound11K = 4 ! }; ! ! enum ESoundVolume ! { ! Sound100, ! Sound200, ! Sound300, ! Sound400, ! Sound25, ! Sound50 }; *************** *** 97,100 **** --- 125,135 ---- virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType); virtual void vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize); + virtual void vOnSoundStatusToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundStatus); + virtual void vOnSoundEchoToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnSoundLowPassToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnSoundReverseToggled(Gtk::CheckMenuItem * _poCMI); + virtual void vOnSoundChannelToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundChannel); + virtual void vOnSoundQualityToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundQuality); + virtual void vOnSoundVolumeToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundVolume); virtual void vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x); virtual void vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB); *************** *** 123,126 **** --- 158,165 ---- const int m_iSaveTypeMin; const int m_iSaveTypeMax; + const int m_iSoundQualityMin; + const int m_iSoundQualityMax; + const int m_iSoundVolumeMin; + const int m_iSoundVolumeMax; const int m_iFilter2xMin; const int m_iFilter2xMax; *************** *** 137,140 **** --- 176,180 ---- Config::Section * m_poCoreConfig; Config::Section * m_poDisplayConfig; + Config::Section * m_poSoundConfig; Gtk::FileSelection * m_poFileOpenDialog; *************** *** 142,145 **** --- 182,186 ---- Gtk::CheckMenuItem * m_poFilePauseItem; Gtk::CheckMenuItem * m_poUseBiosItem; + Gtk::CheckMenuItem * m_poSoundOffItem; SigC::Connection m_oEmuSig; Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** window.cpp 16 Apr 2004 06:33:18 -0000 1.6 --- window.cpp 22 Apr 2004 20:42:40 -0000 1.7 *************** *** 27,30 **** --- 27,31 ---- #include "../gb/GB.h" #include "../gb/gbGlobals.h" + #include "../Sound.h" #include "../Util.h" *************** *** 62,69 **** m_iScaleMin (1), m_iScaleMax (6), ! m_iShowSpeedMin (ShowSpeedNone), ! m_iShowSpeedMax (ShowSpeedDetailed), ! m_iSaveTypeMin (SaveTypeAuto), ! m_iSaveTypeMax (SaveTypeNone), m_iFilter2xMin (FirstFilter), m_iFilter2xMax (LastFilter), --- 63,74 ---- m_iScaleMin (1), m_iScaleMax (6), ! m_iShowSpeedMin (ShowNone), ! m_iShowSpeedMax (ShowDetailed), ! m_iSaveTypeMin (SaveAuto), ! m_iSaveTypeMax (SaveNone), ! m_iSoundQualityMin(Sound44K), ! m_iSoundQualityMax(Sound11K), ! m_iSoundVolumeMin (Sound100), ! m_iSoundVolumeMax (Sound50), m_iFilter2xMin (FirstFilter), m_iFilter2xMax (LastFilter), *************** *** 293,299 **** astShowSpeed[] = { ! { "ShowSpeedNone", ShowSpeedNone }, ! { "ShowSpeedPercentage", ShowSpeedPercentage }, ! { "ShowSpeedDetailed", ShowSpeedDetailed } }; EShowSpeed eDefaultShowSpeed = (EShowSpeed)m_poDisplayConfig->oGetKey<int>("show_speed"); --- 298,304 ---- astShowSpeed[] = { ! { "ShowSpeedNone", ShowNone }, ! { "ShowSpeedPercentage", ShowPercentage }, ! { "ShowSpeedDetailed", ShowDetailed } }; EShowSpeed eDefaultShowSpeed = (EShowSpeed)m_poDisplayConfig->oGetKey<int>("show_speed"); *************** *** 320,329 **** astSaveType[] = { ! { "SaveTypeAutomatic", SaveTypeAuto }, ! { "SaveTypeEeprom", SaveTypeEEPROM }, ! { "SaveTypeSram", SaveTypeSRAM }, ! { "SaveTypeFlash", SaveTypeFlash }, ! { "SaveTypeEepromSensor", SaveTypeEEPROMSensor }, ! { "SaveTypeNone", SaveTypeNone } }; ESaveType eDefaultSaveType = (ESaveType)m_poCoreConfig->oGetKey<int>("save_type"); --- 325,334 ---- astSaveType[] = { ! { "SaveTypeAutomatic", SaveAuto }, ! { "SaveTypeEeprom", SaveEEPROM }, ! { "SaveTypeSram", SaveSRAM }, ! { "SaveTypeFlash", SaveFlash }, ! { "SaveTypeEepromSensor", SaveEEPROMSensor }, ! { "SaveTypeNone", SaveNone } }; ESaveType eDefaultSaveType = (ESaveType)m_poCoreConfig->oGetKey<int>("save_type"); *************** *** 367,370 **** --- 372,511 ---- } + // Sound menu + // + std::string sDefaultSoundStatus = m_poSoundConfig->sGetKey("status"); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("SoundOff")); + if (sDefaultSoundStatus == "off") + { + poCMI->set_active(); + vOnSoundStatusToggled(poCMI, SoundOff); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSoundStatusToggled), + poCMI, SoundOff)); + m_poSoundOffItem = poCMI; + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("SoundMute")); + if (sDefaultSoundStatus == "mute") + { + poCMI->set_active(); + vOnSoundStatusToggled(poCMI, SoundMute); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSoundStatusToggled), + poCMI, SoundMute)); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("SoundOn")); + if (sDefaultSoundStatus == "on") + { + poCMI->set_active(); + vOnSoundStatusToggled(poCMI, SoundOn); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSoundStatusToggled), + poCMI, SoundOn)); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("SoundEcho")); + poCMI->set_active(m_poSoundConfig->oGetKey<bool>("echo")); + vOnSoundEchoToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnSoundEchoToggled), + poCMI)); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("SoundLowPass")); + poCMI->set_active(m_poSoundConfig->oGetKey<bool>("low_pass")); + vOnSoundLowPassToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnSoundLowPassToggled), + poCMI)); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("SoundReverseStereo")); + poCMI->set_active(m_poSoundConfig->oGetKey<bool>("reverse_stereo")); + vOnSoundReverseToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnSoundReverseToggled), + poCMI)); + + struct + { + const char * m_csName; + const int m_iSoundChannel; + const bool m_bChecked; + } + astSoundChannel[] = + { + { "SoundChannel1", 0, m_poSoundConfig->oGetKey<bool>("channel_1") }, + { "SoundChannel2", 1, m_poSoundConfig->oGetKey<bool>("channel_2") }, + { "SoundChannel3", 2, m_poSoundConfig->oGetKey<bool>("channel_3") }, + { "SoundChannel4", 3, m_poSoundConfig->oGetKey<bool>("channel_4") }, + { "SoundChannelA", 4, m_poSoundConfig->oGetKey<bool>("channel_A") }, + { "SoundChannelB", 5, m_poSoundConfig->oGetKey<bool>("channel_B") } + }; + for (guint i = 0; i < sizeof(astSoundChannel) / sizeof(astSoundChannel[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astSoundChannel[i].m_csName)); + poCMI->set_active(astSoundChannel[i].m_bChecked); + vOnSoundChannelToggled(poCMI, astSoundChannel[i].m_iSoundChannel); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSoundChannelToggled), + poCMI, astSoundChannel[i].m_iSoundChannel)); + } + + struct + { + const char * m_csName; + const ESoundQuality m_eSoundQuality; + } + astSoundQuality[] = + { + { "Sound11Khz", Sound11K }, + { "Sound22Khz", Sound22K }, + { "Sound44Khz", Sound44K } + }; + ESoundQuality eDefaultSoundQuality = (ESoundQuality)m_poSoundConfig->oGetKey<int>("quality"); + for (guint i = 0; i < sizeof(astSoundQuality) / sizeof(astSoundQuality[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astSoundQuality[i].m_csName)); + if (astSoundQuality[i].m_eSoundQuality == eDefaultSoundQuality) + { + poCMI->set_active(); + vOnSoundQualityToggled(poCMI, eDefaultSoundQuality); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSoundQualityToggled), + poCMI, astSoundQuality[i].m_eSoundQuality)); + } + + // Volume menu + // + struct + { + const char * m_csName; + const ESoundVolume m_eSoundVolume; + } + astSoundVolume[] = + { + { "Volume25", Sound25 }, + { "Volume50", Sound50 }, + { "Volume100", Sound100 }, + { "Volume200", Sound200 }, + { "Volume300", Sound300 }, + { "Volume400", Sound400 } + }; + ESoundVolume eDefaultSoundVolume = (ESoundVolume)m_poSoundConfig->oGetKey<int>("volume"); + for (guint i = 0; i < sizeof(astSoundVolume) / sizeof(astSoundVolume[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astSoundVolume[i].m_csName)); + if (astSoundVolume[i].m_eSoundVolume == eDefaultSoundVolume) + { + poCMI->set_active(); + vOnSoundVolumeToggled(poCMI, eDefaultSoundVolume); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSoundVolumeToggled), + poCMI, astSoundVolume[i].m_eSoundVolume)); + } + // Filter menu // *************** *** 494,497 **** --- 635,639 ---- systemFrameSkip = 0; systemSoundOn = false; + soundOffFlag = true; systemRenderedFrames = 0; *************** *** 545,573 **** // 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 // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey ("scale", 1 ); ! m_poDisplayConfig->vSetKey<int>("show_speed", ShowSpeedPercentage ); ! m_poDisplayConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX } --- 687,731 ---- // 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", SaveAuto ); ! m_poCoreConfig->vSetKey<int>("flash_size", 64 ); // Display section // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey ("scale", 1 ); ! m_poDisplayConfig->vSetKey<int>("show_speed", ShowPercentage ); ! m_poDisplayConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX + + // Sound section + // + m_poSoundConfig = m_oConfig.poAddSection("Sound"); + m_poSoundConfig->vSetKey("status", "on" ); + m_poSoundConfig->vSetKey("echo", false ); + m_poSoundConfig->vSetKey("low_pass", false ); + m_poSoundConfig->vSetKey("reverse_stereo", false ); + m_poSoundConfig->vSetKey("channel_1", true ); + m_poSoundConfig->vSetKey("channel_2", true ); + m_poSoundConfig->vSetKey("channel_3", true ); + m_poSoundConfig->vSetKey("channel_4", true ); + m_poSoundConfig->vSetKey("channel_A", true ); + m_poSoundConfig->vSetKey("channel_B", true ); + m_poSoundConfig->vSetKey("quality", Sound22K ); + m_poSoundConfig->vSetKey("volume", Sound100 ); } *************** *** 655,658 **** --- 813,838 ---- m_poDisplayConfig->vSetKey("filterIB", iAdjusted); } + + // Sound section + // + sValue = m_poSoundConfig->sGetKey("status"); + if (sValue != "off" && sValue != "on" && sValue != "mute") + { + m_poSoundConfig->vSetKey("status", "on"); + } + + iValue = m_poSoundConfig->oGetKey<int>("quality"); + iAdjusted = CLAMP(iValue, m_iSoundQualityMin, m_iSoundQualityMax); + if (iValue != iAdjusted) + { + m_poSoundConfig->vSetKey("quality", iAdjusted); + } + + iValue = m_poSoundConfig->oGetKey<int>("volume"); + iAdjusted = CLAMP(iValue, m_iSoundVolumeMin, m_iSoundVolumeMax); + if (iValue != iAdjusted) + { + m_poSoundConfig->vSetKey("volume", iAdjusted); + } } *************** *** 749,758 **** char csTitle[50]; ! if (m_eShowSpeed == ShowSpeedPercentage) { snprintf(csTitle, 50, "VBA - %d%%", _iSpeed); set_title(csTitle); } ! else if (m_eShowSpeed == ShowSpeedDetailed) { snprintf(csTitle, 50, "VBA - %d%% (%d, %d fps)", --- 929,938 ---- char csTitle[50]; ! if (m_eShowSpeed == ShowPercentage) { snprintf(csTitle, 50, "VBA - %d%%", _iSpeed); set_title(csTitle); } ! else if (m_eShowSpeed == ShowDetailed) { snprintf(csTitle, 50, "VBA - %d%% (%d, %d fps)", *************** *** 1081,1084 **** --- 1261,1265 ---- { vStopEmu(); + vSetDefaultTitle(); vDrawDefaultScreen(); vSaveBattery(); *************** *** 1239,1243 **** m_eShowSpeed = (EShowSpeed)_iShowSpeed; ! if (m_eShowSpeed == ShowSpeedNone) { vSetDefaultTitle(); --- 1420,1424 ---- m_eShowSpeed = (EShowSpeed)_iShowSpeed; ! if (m_eShowSpeed == ShowNone) { vSetDefaultTitle(); *************** *** 1275,1278 **** --- 1456,1581 ---- } + void Window::vOnSoundStatusToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundStatus) + { + if (! _poCMI->get_active()) + { + return; + } + + std::string sSoundStatus; + switch (_iSoundStatus) + { + case SoundOff: + soundOffFlag = true; + if (systemSoundOn) + { + soundShutdown(); + } + sSoundStatus = "off"; + break; + case SoundMute: + soundDisable(0x30f); + sSoundStatus = "mute"; + break; + case SoundOn: + if (soundOffFlag) + { + soundOffFlag = false; + if (! soundInit()) + { + m_poSoundOffItem->set_active(); + return; + } + } + soundEnable(0x30f); + sSoundStatus = "on"; + break; + } + m_poSoundConfig->vSetKey("status", sSoundStatus); + } + + void Window::vOnSoundEchoToggled(Gtk::CheckMenuItem * _poCMI) + { + soundEcho = _poCMI->get_active(); + m_poSoundConfig->vSetKey("echo", soundEcho); + } + + void Window::vOnSoundLowPassToggled(Gtk::CheckMenuItem * _poCMI) + { + soundLowPass = _poCMI->get_active(); + m_poSoundConfig->vSetKey("low_pass", soundLowPass); + } + + void Window::vOnSoundReverseToggled(Gtk::CheckMenuItem * _poCMI) + { + soundReverse = _poCMI->get_active(); + m_poSoundConfig->vSetKey("reverse_stereo", soundReverse); + } + + void Window::vOnSoundChannelToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundChannel) + { + int iShift = _iSoundChannel; + if (_iSoundChannel > 3) + { + iShift += 4; + } + int iFlag = 1 << iShift; + int iActive = soundGetEnable() & 0x30f; + if (_poCMI->get_active()) + { + iActive |= iFlag; + } + else + { + iActive &= ~iFlag; + } + soundEnable(iActive); + soundDisable(~iActive & 0x30f); + + const char * acsChannels[] = + { + "channel_1", + "channel_2", + "channel_3", + "channel_4", + "channel_A", + "channel_B" + }; + m_poSoundConfig->vSetKey(acsChannels[_iSoundChannel], _poCMI->get_active()); + } + + void Window::vOnSoundQualityToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundQuality) + { + if (! _poCMI->get_active()) + { + return; + } + + if (m_eCartridge == CartridgeGBA) + { + soundSetQuality(_iSoundQuality); + } + else if (m_eCartridge == CartridgeGB) + { + gbSoundSetQuality(_iSoundQuality); + } + else + { + soundQuality = _iSoundQuality; + } + m_poSoundConfig->vSetKey("quality", _iSoundQuality); + } + + void Window::vOnSoundVolumeToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundVolume) + { + if (! _poCMI->get_active()) + { + return; + } + + soundVolume = _iSoundVolume; + m_poSoundConfig->vSetKey("volume", _iSoundVolume); + } + void Window::vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x) { Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** vba.glade 16 Apr 2004 01:12:01 -0000 1.4 --- vba.glade 22 Apr 2004 20:42:40 -0000 1.5 *************** *** 11,14 **** --- 11,19 ---- <property name="resizable">True</property> <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> *************** *** 46,50 **** <child internal-child="image"> ! <widget class="GtkImage" id="image74"> <property name="visible">True</property> <property name="stock">gtk-open</property> --- 51,55 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image80"> <property name="visible">True</property> <property name="stock">gtk-open</property> *************** *** 60,64 **** <child> ! <widget class="GtkMenuItem" id="separator1"> <property name="visible">True</property> </widget> --- 65,69 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator1"> <property name="visible">True</property> </widget> *************** *** 100,104 **** <child> ! <widget class="GtkMenuItem" id="separator2"> <property name="visible">True</property> </widget> --- 105,109 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator2"> <property name="visible">True</property> </widget> *************** *** 125,129 **** <child> ! <widget class="GtkMenuItem" id="separator3"> <property name="visible">True</property> </widget> --- 130,134 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator3"> <property name="visible">True</property> </widget> *************** *** 139,143 **** <child> ! <widget class="GtkMenuItem" id="separator4"> <property name="visible">True</property> </widget> --- 144,148 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator4"> <property name="visible">True</property> </widget> *************** *** 161,165 **** <child> ! <widget class="GtkMenuItem" id="separator5"> <property name="visible">True</property> </widget> --- 166,170 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator5"> <property name="visible">True</property> </widget> *************** *** 183,187 **** <child> ! <widget class="GtkMenuItem" id="separator6"> <property name="visible">True</property> </widget> --- 188,192 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator6"> <property name="visible">True</property> </widget> *************** *** 195,199 **** <child internal-child="image"> ! <widget class="GtkImage" id="image75"> <property name="visible">True</property> <property name="stock">gtk-close</property> --- 200,204 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image81"> <property name="visible">True</property> <property name="stock">gtk-close</property> *************** *** 216,220 **** <child internal-child="image"> ! <widget class="GtkImage" id="image76"> <property name="visible">True</property> <property name="stock">gtk-quit</property> --- 221,225 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image82"> <property name="visible">True</property> <property name="stock">gtk-quit</property> *************** *** 334,338 **** <child> ! <widget class="GtkMenuItem" id="separator19"> <property name="visible">True</property> </widget> --- 339,343 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator19"> <property name="visible">True</property> </widget> *************** *** 521,525 **** <child> ! <widget class="GtkMenuItem" id="separator9"> <property name="visible">True</property> </widget> --- 526,530 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator9"> <property name="visible">True</property> </widget> *************** *** 743,747 **** <child> ! <widget class="GtkMenuItem" id="separator10"> <property name="visible">True</property> </widget> --- 748,752 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator10"> <property name="visible">True</property> </widget> *************** *** 831,850 **** <child> ! <widget class="GtkMenuItem" id="separator11"> ! <property name="visible">True</property> ! </widget> ! </child> ! ! <child> ! <widget class="GtkCheckMenuItem" id="SoundOldSync"> ! <property name="visible">True</property> ! <property name="label" translatable="yes">Use old synchronization</property> ! <property name="use_underline">True</property> ! <property name="active">False</property> ! </widget> ! </child> ! ! <child> ! <widget class="GtkMenuItem" id="separator12"> <property name="visible">True</property> </widget> --- 836,840 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator11"> <property name="visible">True</property> </widget> *************** *** 879,883 **** <child> ! <widget class="GtkMenuItem" id="separator13"> <property name="visible">True</property> </widget> --- 869,873 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator13"> <property name="visible">True</property> </widget> *************** *** 939,943 **** <child> ! <widget class="GtkMenuItem" id="separator14"> <property name="visible">True</property> </widget> --- 929,933 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator14"> <property name="visible">True</property> </widget> *************** *** 974,978 **** <child> ! <widget class="GtkMenuItem" id="separator15"> <property name="visible">True</property> </widget> --- 964,968 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator15"> <property name="visible">True</property> </widget> *************** *** 1083,1087 **** <child> ! <widget class="GtkMenuItem" id="separator16"> <property name="visible">True</property> </widget> --- 1073,1077 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator16"> <property name="visible">True</property> </widget> *************** *** 1203,1207 **** <child> ! <widget class="GtkMenuItem" id="separator20"> <property name="visible">True</property> </widget> --- 1193,1197 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator20"> <property name="visible">True</property> </widget> *************** *** 1348,1352 **** <child> ! <widget class="GtkMenuItem" id="separator17"> <property name="visible">True</property> </widget> --- 1338,1342 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator17"> <property name="visible">True</property> </widget> *************** *** 1421,1425 **** <child> ! <widget class="GtkMenuItem" id="separator18"> <property name="visible">True</property> </widget> --- 1411,1415 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator18"> <property name="visible">True</property> </widget> *************** *** 1466,1470 **** <child> ! <widget class="GtkMenuItem" id="separator24"> <property name="visible">True</property> </widget> --- 1456,1460 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator24"> <property name="visible">True</property> </widget> *************** *** 1480,1484 **** <child> ! <widget class="GtkMenuItem" id="separator25"> <property name="visible">True</property> </widget> --- 1470,1474 ---- <child> ! <widget class="GtkSeparatorMenuItem" id="separator25"> <property name="visible">True</property> </widget> *************** *** 1649,1652 **** --- 1639,1646 ---- <property name="xscale">0</property> <property name="yscale">0</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> <child> *************** *** 1667,1674 **** <property name="title" translatable="yes">About VBA</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> ! <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">True</property> <property name="has_separator">True</property> --- 1661,1673 ---- <property name="title" translatable="yes">About VBA</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> ! <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">True</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="has_separator">True</property> *************** *** 1692,1695 **** --- 1691,1695 ---- <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">-7</property> </widget> *************** *** 1776,1783 **** <property name="title" translatable="yes">Throttle</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> ! <property name="window_position">GTK_WIN_POS_NONE</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">True</property> <property name="has_separator">True</property> --- 1776,1788 ---- <property name="title" translatable="yes">Throttle</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> ! <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">True</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="has_separator">True</property> *************** *** 1801,1804 **** --- 1806,1810 ---- <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">-6</property> </widget> *************** *** 1813,1816 **** --- 1819,1823 ---- <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> <property name="response_id">-5</property> </widget> |
From: S?bastien G. <kx...@us...> - 2004-04-18 22:24:24
|
Update of /cvsroot/vba/VisualBoyAdvance/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19978 Modified Files: remote.cpp Log Message: Patch from Ryan Brown: added support for z2 (delete break on write) so that gdb can use break on write. Index: remote.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/remote.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** remote.cpp 4 Jul 2003 12:33:50 -0000 1.4 --- remote.cpp 18 Apr 2004 22:24:15 -0000 1.5 *************** *** 441,445 **** } ! void remoteWriteWatch(char *p) { u32 address; --- 441,445 ---- } ! void remoteWriteWatch(char *p, int type) { u32 address; *************** *** 471,477 **** for(int i = 0; i < count; i++) { if((address >> 24) == 2) ! freezeWorkRAM[address & 0x3ffff] = 1; else ! freezeInternalRAM[address & 0x7fff] = 1; address++; } --- 471,477 ---- for(int i = 0; i < count; i++) { if((address >> 24) == 2) ! freezeWorkRAM[address & 0x3ffff] = type; else ! freezeInternalRAM[address & 0x7fff] = type; address++; } *************** *** 664,671 **** case 'Z': if(*p++ == '2') { ! remoteWriteWatch(p); } else remotePutPacket(""); break; default: { --- 664,677 ---- case 'Z': if(*p++ == '2') { ! remoteWriteWatch(p,1); } else remotePutPacket(""); break; + case 'z': + if(*p++ == '2') { + remoteWriteWatch(p,0); + } else + remotePutPacket(""); + break; default: { |
Update of /cvsroot/vba/VisualBoyAdvance/src/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10793 Modified Files: BitmapControl.cpp ColorButton.cpp ColorControl.cpp GBMapView.cpp MapView.cpp MemoryViewer.cpp PaletteViewControl.cpp ZoomControl.cpp Log Message: Patch from Forgotten: fix custom controls to use CS_GLOBALCLASS style and fix the GB map view flickering. Index: GBMapView.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/GBMapView.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** GBMapView.cpp 9 Mar 2004 01:46:23 -0000 1.4 --- GBMapView.cpp 18 Apr 2004 16:21:59 -0000 1.5 *************** *** 375,381 **** SIZE s; ! s.cx = mapView.GetScrollLimit(SB_HORZ); ! s.cy = mapView.GetScrollLimit(SB_VERT); ! if(s.cx != w || s.cy != h) { mapView.setSize(w, h); s.cx = w; --- 375,383 ---- SIZE s; ! if(mapView.getStretch()) { ! mapView.setSize(w, h); ! s.cx = s.cy = 1; ! mapView.SetScrollSizes(MM_TEXT, s); ! } else { mapView.setSize(w, h); s.cx = w; *************** *** 383,390 **** mapView.SetScrollSizes(MM_TEXT, s); } ! if(mapView.getStretch()) { ! s.cx = s.cy = 1; ! mapView.SetScrollSizes(MM_TEXT, s); ! } mapView.refresh(); } --- 385,389 ---- mapView.SetScrollSizes(MM_TEXT, s); } ! mapView.refresh(); } Index: ZoomControl.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/ZoomControl.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ZoomControl.cpp 17 Feb 2004 11:27:36 -0000 1.3 --- ZoomControl.cpp 18 Apr 2004 16:21:59 -0000 1.4 *************** *** 64,68 **** WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); --- 64,68 ---- WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); Index: MapView.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/MapView.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MapView.cpp 9 Mar 2004 01:46:23 -0000 1.5 --- MapView.cpp 18 Apr 2004 16:21:59 -0000 1.6 *************** *** 515,521 **** enableButtons(mode); SIZE s; ! s.cx = mapView.GetScrollLimit(SB_HORZ); ! s.cy = mapView.GetScrollLimit(SB_VERT); ! if(s.cx != w || s.cy != h) { mapView.setSize(w, h); s.cx = w; --- 515,524 ---- enableButtons(mode); SIZE s; ! ! if(mapView.getStretch()) { ! mapView.setSize(w, h); ! s.cx = s.cy = 1; ! mapView.SetScrollSizes(MM_TEXT, s); ! } else { mapView.setSize(w, h); s.cx = w; *************** *** 523,530 **** mapView.SetScrollSizes(MM_TEXT, s); } ! if(mapView.getStretch()) { ! s.cx = s.cy = 1; ! mapView.SetScrollSizes(MM_TEXT, s); ! } mapView.refresh(); --- 526,530 ---- mapView.SetScrollSizes(MM_TEXT, s); } ! mapView.refresh(); Index: PaletteViewControl.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/PaletteViewControl.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PaletteViewControl.cpp 17 Feb 2004 11:27:36 -0000 1.2 --- PaletteViewControl.cpp 18 Apr 2004 16:21:59 -0000 1.3 *************** *** 397,401 **** WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); --- 397,401 ---- WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); Index: ColorButton.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/ColorButton.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ColorButton.cpp 4 Nov 2003 14:09:52 -0000 1.1 --- ColorButton.cpp 18 Apr 2004 16:21:59 -0000 1.2 *************** *** 108,112 **** WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); --- 108,112 ---- WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); Index: ColorControl.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/ColorControl.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ColorControl.cpp 4 Nov 2003 14:09:52 -0000 1.1 --- ColorControl.cpp 18 Apr 2004 16:21:59 -0000 1.2 *************** *** 90,94 **** WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); --- 90,94 ---- WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); Index: BitmapControl.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/BitmapControl.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BitmapControl.cpp 17 Feb 2004 11:27:36 -0000 1.2 --- BitmapControl.cpp 18 Apr 2004 16:21:59 -0000 1.3 *************** *** 45,48 **** --- 45,51 ---- stretch = false; registerClass(); + CSize sizeTotal; + sizeTotal.cx = sizeTotal.cy = 0; + SetScrollSizes(MM_TEXT, sizeTotal); } *************** *** 254,258 **** WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); --- 257,261 ---- WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); Index: MemoryViewer.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/win32/MemoryViewer.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MemoryViewer.cpp 17 Feb 2004 11:27:36 -0000 1.5 --- MemoryViewer.cpp 18 Apr 2004 16:21:59 -0000 1.6 *************** *** 594,598 **** WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_PARENTDC | CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); --- 594,598 ---- WNDCLASS wc; ZeroMemory(&wc, sizeof(wc)); ! wc.style = CS_PARENTDC | CS_HREDRAW | CS_VREDRAW | CS_GLOBALCLASS; wc.lpfnWndProc = (WNDPROC)::DefWindowProc; wc.hInstance = AfxGetInstanceHandle(); |
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) { |
From: S?bastien G. <kx...@us...> - 2004-04-16 01:12:10
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4424/src/gtk Modified Files: system.cpp vba.glade window.cpp window.h Log Message: Added show speed and save type support. Index: system.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/system.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** system.cpp 12 Apr 2004 22:59:24 -0000 1.2 --- system.cpp 16 Apr 2004 01:12:01 -0000 1.3 *************** *** 42,45 **** --- 42,48 ---- bool systemSoundOn; + int systemRenderedFrames; + int systemFPS; + int emulating; bool debugger; *************** *** 68,71 **** --- 71,75 ---- { gui()->vDrawScreen(); + systemRenderedFrames++; } *************** *** 82,88 **** void systemShowSpeed(int _iSpeed) { ! char csTitle[50]; ! snprintf(csTitle, 50, "VisualBoyAdvance-%d%%", _iSpeed); ! gui()->set_title(csTitle); } --- 86,93 ---- void systemShowSpeed(int _iSpeed) { ! systemFPS = systemRenderedFrames; ! systemRenderedFrames = 0; ! ! gui()->vShowSpeed(_iSpeed); } Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** vba.glade 15 Apr 2004 03:58:45 -0000 1.3 --- vba.glade 16 Apr 2004 01:12:01 -0000 1.4 *************** *** 5,10 **** <widget class="GtkWindow" id="MainWindow"> ! <property name="visible">True</property> ! <property name="title" translatable="yes">VisualBoyAdvance</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> --- 5,9 ---- <widget class="GtkWindow" id="MainWindow"> ! <property name="title" translatable="yes">VBA</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="window_position">GTK_WIN_POS_NONE</property> Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** window.h 15 Apr 2004 03:58:45 -0000 1.4 --- window.h 16 Apr 2004 01:12:01 -0000 1.5 *************** *** 45,59 **** enum ECartridge { ! NO_CARTRIDGE, ! GB_CARTRIDGE, ! GBA_CARTRIDGE }; void vDrawScreen(); void vComputeFrameskip(int _iRate); inline u32 uiReadJoypad() { return m_uiJoypadState; } inline ECartridge eGetCartridge() { return m_eCartridge; } protected: virtual void vOnFileOpen(); virtual void vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI); --- 45,85 ---- enum ECartridge { ! CartridgeNone, ! CartridgeGB, ! CartridgeGBA }; + // GB/GBA screen sizes + const int m_iGBScreenWidth; + const int m_iGBScreenHeight; + const int m_iSGBScreenWidth; + const int m_iSGBScreenHeight; + const int m_iGBAScreenWidth; + const int m_iGBAScreenHeight; + void vDrawScreen(); void vComputeFrameskip(int _iRate); + void vShowSpeed(int _iSpeed); inline u32 uiReadJoypad() { return m_uiJoypadState; } inline ECartridge eGetCartridge() { return m_eCartridge; } protected: + enum EShowSpeed + { + ShowSpeedNone, + ShowSpeedPercentage, + ShowSpeedDetailed + }; + + enum ESaveType + { + SaveTypeAuto, + SaveTypeEEPROM, + SaveTypeSRAM, + SaveTypeFlash, + SaveTypeEEPROMSensor, + SaveTypeNone + }; + virtual void vOnFileOpen(); virtual void vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI); *************** *** 64,69 **** virtual void vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent); virtual void vOnThrottleOther(Gtk::CheckMenuItem * _poCMI); - virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer); virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale); virtual void vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x); virtual void vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB); --- 90,98 ---- virtual void vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent); virtual void vOnThrottleOther(Gtk::CheckMenuItem * _poCMI); virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale); + virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer); + virtual void vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed); + virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType); + virtual void vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize); virtual void vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x); virtual void vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB); *************** *** 81,84 **** --- 110,129 ---- const Glib::RefPtr<Gnome::Glade::Xml> & _poXml); + // Config limits + const int m_iFrameskipMin; + const int m_iFrameskipMax; + const int m_iThrottleMin; + const int m_iThrottleMax; + const int m_iScaleMin; + const int m_iScaleMax; + const int m_iShowSpeedMin; + const int m_iShowSpeedMax; + const int m_iSaveTypeMin; + const int m_iSaveTypeMax; + const int m_iFilter2xMin; + const int m_iFilter2xMax; + const int m_iFilterIBMin; + const int m_iFilterIBMax; + static Window * m_poInstance; *************** *** 110,113 **** --- 155,159 ---- u32 m_uiThrottleLastTime; u32 m_uiThrottleDelay; + EShowSpeed m_eShowSpeed; void vInitSystem(); *************** *** 120,123 **** --- 166,170 ---- void vUpdateScreen(); void vDrawDefaultScreen(); + void vSetDefaultTitle(); bool bLoadROM(const std::string & _rsFilename); void vLoadBattery(); Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** window.cpp 15 Apr 2004 03:58:45 -0000 1.4 --- window.cpp 16 Apr 2004 01:12:01 -0000 1.5 *************** *** 32,35 **** --- 32,37 ---- #include "intl.h" + extern int systemRenderedFrames; + extern int systemFPS; extern bool debugger; extern int RGB_LOW_BITS_MASK; *************** *** 46,78 **** Window * Window::m_poInstance = NULL; - // GB/GBA screen sizes - const int iGBScreenWidth = 160; - const int iGBScreenHeight = 144; - const int iSGBScreenWidth = 256; - const int iSGBScreenHeight = 224; - const int iGBAScreenWidth = 240; - const int iGBAScreenHeight = 160; - - // Config limits - const int iFrameskipMin = 0; - const int iFrameskipMax = 9; - const int iThrottleMin = 5; - const int iThrottleMax = 1000; - const int iScaleMin = 1; - const int iScaleMax = 6; - const int iFilter2xMin = (int)FirstFilter; - const int iFilter2xMax = (int)LastFilter; - const int iFilterIBMin = (int)FirstFilterIB; - const int iFilterIBMax = (int)LastFilterIB; - Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) : ! Gtk::Window(_pstWindow), ! m_poXml(_poXml), ! m_poFileOpenDialog(NULL), ! m_iScreenWidth(iGBAScreenWidth), ! m_iScreenHeight(iGBAScreenHeight), ! m_eCartridge(NO_CARTRIDGE), ! m_uiJoypadState(0) { vInitSystem(); vInitSDL(); --- 48,81 ---- Window * Window::m_poInstance = NULL; Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) : ! Gtk::Window (_pstWindow), ! m_iGBScreenWidth (160), ! m_iGBScreenHeight (144), ! m_iSGBScreenWidth (256), ! m_iSGBScreenHeight(224), ! m_iGBAScreenWidth (240), ! m_iGBAScreenHeight(160), ! m_iFrameskipMin (0), ! m_iFrameskipMax (9), ! m_iThrottleMin (5), ! m_iThrottleMax (1000), ! m_iScaleMin (1), ! m_iScaleMax (6), ! m_iShowSpeedMin (ShowSpeedNone), ! m_iShowSpeedMax (ShowSpeedDetailed), ! m_iSaveTypeMin (SaveTypeAuto), ! m_iSaveTypeMax (SaveTypeNone), ! m_iFilter2xMin (FirstFilter), ! m_iFilter2xMax (LastFilter), ! m_iFilterIBMin (FirstFilterIB), ! m_iFilterIBMax (LastFilterIB) { + m_poXml = _poXml; + m_poFileOpenDialog = NULL; + m_iScreenWidth = m_iGBAScreenWidth; + m_iScreenHeight = m_iGBAScreenHeight; + m_eCartridge = CartridgeNone; + m_uiJoypadState = 0; + vInitSystem(); vInitSDL(); *************** *** 266,269 **** --- 269,355 ---- } + // Show speed menu + // + struct + { + const char * m_csName; + const EShowSpeed m_eShowSpeed; + } + astShowSpeed[] = + { + { "ShowSpeedNone", ShowSpeedNone }, + { "ShowSpeedPercentage", ShowSpeedPercentage }, + { "ShowSpeedDetailed", ShowSpeedDetailed } + }; + EShowSpeed eDefaultShowSpeed = (EShowSpeed)m_poDisplayConfig->oGetKey<int>("show_speed"); + for (guint i = 0; i < sizeof(astShowSpeed) / sizeof(astShowSpeed[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astShowSpeed[i].m_csName)); + if (astShowSpeed[i].m_eShowSpeed == eDefaultShowSpeed) + { + poCMI->set_active(); + vOnShowSpeedToggled(poCMI, eDefaultShowSpeed); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnShowSpeedToggled), + poCMI, astShowSpeed[i].m_eShowSpeed)); + } + + // Save type menu + // + struct + { + const char * m_csName; + const ESaveType m_eSaveType; + } + astSaveType[] = + { + { "SaveTypeAutomatic", SaveTypeAuto }, + { "SaveTypeEeprom", SaveTypeEEPROM }, + { "SaveTypeSram", SaveTypeSRAM }, + { "SaveTypeFlash", SaveTypeFlash }, + { "SaveTypeEepromSensor", SaveTypeEEPROMSensor }, + { "SaveTypeNone", SaveTypeNone } + }; + ESaveType eDefaultSaveType = (ESaveType)m_poCoreConfig->oGetKey<int>("save_type"); + for (guint i = 0; i < sizeof(astSaveType) / sizeof(astSaveType[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astSaveType[i].m_csName)); + if (astSaveType[i].m_eSaveType == eDefaultSaveType) + { + poCMI->set_active(); + vOnSaveTypeToggled(poCMI, eDefaultSaveType); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnSaveTypeToggled), + poCMI, astSaveType[i].m_eSaveType)); + } + + // Flash size menu + // + struct + { + const char * m_csName; + const int m_iFlashSize; + } + astFlashSize[] = + { + { "SaveTypeFlash64K", 64 }, + { "SaveTypeFlash128K", 128 } + }; + int iDefaultFlashSize = m_poCoreConfig->oGetKey<int>("flash_size"); + for (guint i = 0; i < sizeof(astFlashSize) / sizeof(astFlashSize[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astFlashSize[i].m_csName)); + if (astFlashSize[i].m_iFlashSize == iDefaultFlashSize) + { + poCMI->set_active(); + vOnFlashSizeToggled(poCMI, iDefaultFlashSize); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnFlashSizeToggled), + poCMI, astFlashSize[i].m_iFlashSize)); + } + // Filter menu // *************** *** 394,397 **** --- 480,486 ---- systemSoundOn = false; + systemRenderedFrames = 0; + systemFPS = 0; + emulating = 0; debugger = true; *************** *** 441,463 **** // 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 ); // Display section // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey ("scale", 1 ); ! m_poDisplayConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX } --- 530,555 ---- // 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 // m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey ("scale", 1 ); ! m_poDisplayConfig->vSetKey<int>("show_speed", ShowSpeedPercentage ); ! m_poDisplayConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX } *************** *** 468,475 **** int iAdjusted; if (m_poCoreConfig->sGetKey("frameskip") != "auto") { iValue = m_poCoreConfig->oGetKey<int>("frameskip"); ! iAdjusted = CLAMP(iValue, iFrameskipMin, iFrameskipMax); if (iValue != iAdjusted) { --- 560,569 ---- int iAdjusted; + // Core section + // if (m_poCoreConfig->sGetKey("frameskip") != "auto") { iValue = m_poCoreConfig->oGetKey<int>("frameskip"); ! iAdjusted = CLAMP(iValue, m_iFrameskipMin, m_iFrameskipMax); if (iValue != iAdjusted) { *************** *** 481,485 **** if (iValue != 0) { ! iAdjusted = CLAMP(iValue, iThrottleMin, iThrottleMax); if (iValue != iAdjusted) { --- 575,579 ---- if (iValue != 0) { ! iAdjusted = CLAMP(iValue, m_iThrottleMin, m_iThrottleMax); if (iValue != iAdjusted) { *************** *** 488,493 **** } iValue = m_poDisplayConfig->oGetKey<int>("scale"); ! iAdjusted = CLAMP(iValue, iScaleMin, iScaleMax); if (iValue != iAdjusted) { --- 582,605 ---- } + iValue = m_poCoreConfig->oGetKey<int>("save_type"); + if (iValue != 0) + { + iAdjusted = CLAMP(iValue, m_iSaveTypeMin, m_iSaveTypeMax); + if (iValue != iAdjusted) + { + m_poCoreConfig->vSetKey("save_type", iAdjusted); + } + } + + iValue = m_poCoreConfig->oGetKey<int>("flash_size"); + if (iValue != 64 && iValue != 128) + { + m_poCoreConfig->vSetKey("flash_size", 64); + } + + // Display section + // iValue = m_poDisplayConfig->oGetKey<int>("scale"); ! iAdjusted = CLAMP(iValue, m_iScaleMin, m_iScaleMax); if (iValue != iAdjusted) { *************** *** 495,500 **** } iValue = m_poDisplayConfig->oGetKey<int>("filter2x"); ! iAdjusted = CLAMP(iValue, iFilter2xMin, iFilter2xMax); if (iValue != iAdjusted) { --- 607,619 ---- } + iValue = m_poDisplayConfig->oGetKey<int>("show_speed"); + iAdjusted = CLAMP(iValue, m_iShowSpeedMin, m_iShowSpeedMax); + if (iValue != iAdjusted) + { + m_poDisplayConfig->vSetKey("show_speed", iAdjusted); + } + iValue = m_poDisplayConfig->oGetKey<int>("filter2x"); ! iAdjusted = CLAMP(iValue, m_iFilter2xMin, m_iFilter2xMax); if (iValue != iAdjusted) { *************** *** 503,507 **** iValue = m_poDisplayConfig->oGetKey<int>("filterIB"); ! iAdjusted = CLAMP(iValue, iFilterIBMin, iFilterIBMax); if (iValue != iAdjusted) { --- 622,626 ---- iValue = m_poDisplayConfig->oGetKey<int>("filterIB"); ! iAdjusted = CLAMP(iValue, m_iFilterIBMin, m_iFilterIBMax); if (iValue != iAdjusted) { *************** *** 593,596 **** --- 712,737 ---- } + void Window::vSetDefaultTitle() + { + set_title("VBA"); + } + + void Window::vShowSpeed(int _iSpeed) + { + char csTitle[50]; + + if (m_eShowSpeed == ShowSpeedPercentage) + { + snprintf(csTitle, 50, "VBA - %d%%", _iSpeed); + set_title(csTitle); + } + else if (m_eShowSpeed == ShowSpeedDetailed) + { + snprintf(csTitle, 50, "VBA - %3d%% (%d, %d fps)", + _iSpeed, systemFrameSkip, systemFPS); + set_title(csTitle); + } + } + void Window::vComputeFrameskip(int _iRate) { *************** *** 692,696 **** if (bLoaded) { ! m_eCartridge = GB_CARTRIDGE; m_stEmulator = GBSystem; --- 833,837 ---- if (bLoaded) { ! m_eCartridge = CartridgeGB; m_stEmulator = GBSystem; *************** *** 707,721 **** if (gbBorderOn) { ! m_iScreenWidth = iSGBScreenWidth; ! m_iScreenHeight = iSGBScreenHeight; ! gbBorderLineSkip = iSGBScreenWidth; ! gbBorderColumnSkip = (iSGBScreenWidth - iGBScreenWidth) / 2; ! gbBorderRowSkip = (iSGBScreenHeight - iGBScreenHeight) / 2; } else { ! m_iScreenWidth = iGBScreenWidth; ! m_iScreenHeight = iGBScreenHeight; ! gbBorderLineSkip = iGBScreenWidth; gbBorderColumnSkip = 0; gbBorderRowSkip = 0; --- 848,862 ---- if (gbBorderOn) { ! m_iScreenWidth = m_iSGBScreenWidth; ! m_iScreenHeight = m_iSGBScreenHeight; ! gbBorderLineSkip = m_iSGBScreenWidth; ! gbBorderColumnSkip = (m_iSGBScreenWidth - m_iGBScreenWidth) / 2; ! gbBorderRowSkip = (m_iSGBScreenHeight - m_iGBScreenHeight) / 2; } else { ! m_iScreenWidth = m_iGBScreenWidth; ! m_iScreenHeight = m_iGBScreenHeight; ! gbBorderLineSkip = m_iGBScreenWidth; gbBorderColumnSkip = 0; gbBorderRowSkip = 0; *************** *** 731,735 **** //sdlApplyPerImagePreferences(); ! m_eCartridge = GBA_CARTRIDGE; m_stEmulator = GBASystem; --- 872,876 ---- //sdlApplyPerImagePreferences(); ! m_eCartridge = CartridgeGBA; m_stEmulator = GBASystem; *************** *** 748,753 **** //} ! m_iScreenWidth = iGBAScreenWidth; ! m_iScreenHeight = iGBAScreenHeight; } } --- 889,894 ---- //} ! m_iScreenWidth = m_iGBAScreenWidth; ! m_iScreenHeight = m_iGBAScreenHeight; } } *************** *** 864,868 **** if (m_poFileOpenDialog == NULL) { ! m_poFileOpenDialog = new Gtk::FileSelection(_("Open a ROM")); m_poFileOpenDialog->set_transient_for(*this); } --- 1005,1009 ---- if (m_poFileOpenDialog == NULL) { ! m_poFileOpenDialog = new Gtk::FileSelection(_("Open")); m_poFileOpenDialog->set_transient_for(*this); } *************** *** 909,913 **** vSaveBattery(); m_stEmulator.emuCleanUp(); ! m_eCartridge = NO_CARTRIDGE; emulating = 0; } --- 1050,1054 ---- vSaveBattery(); m_stEmulator.emuCleanUp(); ! m_eCartridge = CartridgeNone; emulating = 0; } *************** *** 1028,1031 **** --- 1169,1216 ---- } + void Window::vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed) + { + if (! _poCMI->get_active()) + { + return; + } + + m_eShowSpeed = (EShowSpeed)_iShowSpeed; + if (m_eShowSpeed == ShowSpeedNone) + { + vSetDefaultTitle(); + } + m_poDisplayConfig->vSetKey("show_speed", _iShowSpeed); + } + + void Window::vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType) + { + if (! _poCMI->get_active()) + { + return; + } + + cpuSaveType = _iSaveType; + m_poCoreConfig->vSetKey("save_type", _iSaveType); + } + + void Window::vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize) + { + if (! _poCMI->get_active()) + { + return; + } + + if (_iFlashSize == 64) + { + flashSetSize(0x10000); + } + else + { + flashSetSize(0x20000); + } + m_poCoreConfig->vSetKey("flash_size", _iFlashSize); + } + void Window::vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x) { |
From: S?bastien G. <kx...@us...> - 2004-04-16 01:12:09
|
Update of /cvsroot/vba/VisualBoyAdvance/po In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4424/po Modified Files: fr.gmo fr.po vba-1.7.2.pot Log Message: Added show speed and save type support. Index: fr.po =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/fr.po,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** fr.po 15 Apr 2004 03:58:45 -0000 1.3 --- fr.po 16 Apr 2004 01:12:01 -0000 1.4 *************** *** 10,15 **** "Project-Id-Version: VisualBoyAdvance 1.7.2\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-15 04:56+0200\n" ! "PO-Revision-Date: 2004-04-15 04:57+0200\n" "Last-Translator: Sébastien Guignot <kx...@ts...>\n" "Language-Team: French <@>\n" --- 10,15 ---- "Project-Id-Version: VisualBoyAdvance 1.7.2\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-16 03:04+0200\n" [...1152 lines suppressed...] #, c-format msgid "Unknown file type %s" msgstr "Type de fichier inconnu %s" ! #: src/gtk/window.cpp:898 #, c-format msgid "Failed to load file %s" msgstr "Le chargement du fichier %s a échoué" ! #: src/gtk/window.cpp:928 msgid "Loaded battery" msgstr "Sauvegarde chargée" ! #: src/gtk/window.cpp:939 msgid "Saved battery" msgstr "Sauvegarde effectuée" ! #: src/gtk/window.cpp:1007 ! msgid "Open" ! msgstr "Ouvrir" Index: vba-1.7.2.pot =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/vba-1.7.2.pot,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** vba-1.7.2.pot 15 Apr 2004 03:58:45 -0000 1.3 --- vba-1.7.2.pot 16 Apr 2004 01:12:01 -0000 1.4 *************** *** 9,13 **** "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-15 04:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" --- 9,13 ---- "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-16 03:04+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" [...1150 lines suppressed...] #, c-format msgid "Unknown file type %s" msgstr "" ! #: src/gtk/window.cpp:898 #, c-format msgid "Failed to load file %s" msgstr "" ! #: src/gtk/window.cpp:928 msgid "Loaded battery" msgstr "" ! #: src/gtk/window.cpp:939 msgid "Saved battery" msgstr "" ! #: src/gtk/window.cpp:1007 ! msgid "Open" msgstr "" Index: fr.gmo =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/fr.gmo,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsRb0j4t and /tmp/cvsiZZ9b3 differ |
From: S?bastien G. <kx...@us...> - 2004-04-15 03:58:54
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12997/src/gtk Modified Files: configfile.cpp configfile.h filters.h vba.glade window.cpp window.h Log Message: Added auto frameskip and throttle support. Config file has been modified, and now old and corrupted config files are fixed at loading time. Index: configfile.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/configfile.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** configfile.h 2 Apr 2004 01:22:17 -0000 1.1 --- configfile.h 15 Apr 2004 03:58:45 -0000 1.2 *************** *** 89,92 **** --- 89,93 ---- inline std::string sGetName() const { return m_sName; } + bool bKeyExists(const std::string & _rsKey); void vSetKey(const std::string & _rsKey, const std::string & _rsValue); std::string sGetKey(const std::string & _rsKey) const; *************** *** 130,137 **** virtual ~File(); Section * poAddSection(const std::string & _rsName); Section * poGetSection(const std::string & _rsName); void vRemoveSection(const std::string & _rsName); ! void vLoad(const std::string & _rsFilename); void vSave(const std::string & _rsFilename); void vClear(); --- 131,141 ---- virtual ~File(); + bool bSectionExists(const std::string & _rsName); Section * poAddSection(const std::string & _rsName); Section * poGetSection(const std::string & _rsName); void vRemoveSection(const std::string & _rsName); ! void vLoad(const std::string & _rsFilename, ! bool _bAddSection = true, ! bool _bAddKey = true); void vSave(const std::string & _rsFilename); void vClear(); Index: filters.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/filters.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** filters.h 2 Apr 2004 01:22:17 -0000 1.2 --- filters.h 15 Apr 2004 03:58:45 -0000 1.3 *************** *** 65,69 **** enum EFilter2x { ! FilterNone, Filter2xSaI, FilterSuper2xSaI, --- 65,70 ---- enum EFilter2x { ! FirstFilter, ! FilterNone = FirstFilter, Filter2xSaI, FilterSuper2xSaI, *************** *** 78,89 **** FilterScanlinesTV, FilterHq2x, ! FilterLq2x }; enum EFilterIB { ! FilterIBNone, FilterIBSmart, ! FilterIBMotionBlur }; --- 79,93 ---- FilterScanlinesTV, FilterHq2x, ! FilterLq2x, ! LastFilter = FilterLq2x }; enum EFilterIB { ! FirstFilterIB, ! FilterIBNone = FirstFilterIB, FilterIBSmart, ! FilterIBMotionBlur, ! LastFilterIB = FilterIBMotionBlur }; Index: configfile.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/configfile.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** configfile.cpp 2 Apr 2004 01:22:17 -0000 1.1 --- configfile.cpp 15 Apr 2004 03:58:45 -0000 1.2 *************** *** 45,48 **** --- 45,60 ---- } + bool Section::bKeyExists(const string & _rsKey) + { + for (iterator it = begin(); it != end(); it++) + { + if (it->m_sKey == _rsKey) + { + return true; + } + } + return false; + } + void Section::vSetKey(const string & _rsKey, const string & _rsValue) { *************** *** 95,98 **** --- 107,122 ---- } + bool File::bSectionExists(const string & _rsName) + { + for (iterator it = begin(); it != end(); it++) + { + if (it->sGetName() == _rsName) + { + return true; + } + } + return false; + } + Section * File::poAddSection(const string & _rsName) { *************** *** 137,141 **** } ! void File::vLoad(const string & _rsFilename) { string sBuffer = Glib::file_get_contents(_rsFilename); --- 161,167 ---- } ! void File::vLoad(const string & _rsFilename, ! bool _bAddSection, ! bool _bAddKey) { string sBuffer = Glib::file_get_contents(_rsFilename); *************** *** 151,155 **** { *tmp = '\0'; ! poSection = poAddSection(&lines[i][1]); } } --- 177,195 ---- { *tmp = '\0'; ! if (_bAddSection) ! { ! poSection = poAddSection(&lines[i][1]); ! } ! else ! { ! try ! { ! poSection = poGetSection(&lines[i][1]); ! } ! catch (...) ! { ! poSection = NULL; ! } ! } } } *************** *** 160,164 **** *tmp = '\0'; tmp++; ! poSection->vSetKey(lines[i], tmp); } } --- 200,207 ---- *tmp = '\0'; tmp++; ! if (_bAddKey || poSection->bKeyExists(lines[i])) ! { ! poSection->vSetKey(lines[i], tmp); ! } } } Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** window.h 12 Apr 2004 22:59:24 -0000 1.3 --- window.h 15 Apr 2004 03:58:45 -0000 1.4 *************** *** 83,90 **** static Window * m_poInstance; std::string m_sUserDataDir; std::string m_sConfigFile; Config::File m_oConfig; ! Config::Section * m_poScreenConfig; Gtk::FileSelection * m_poFileOpenDialog; --- 83,93 ---- static Window * m_poInstance; + Glib::RefPtr<Gnome::Glade::Xml> m_poXml; + std::string m_sUserDataDir; std::string m_sConfigFile; Config::File m_oConfig; ! Config::Section * m_poCoreConfig; ! Config::Section * m_poDisplayConfig; Gtk::FileSelection * m_poFileOpenDialog; *************** *** 94,98 **** SigC::Connection m_oEmuSig; ! bool m_bPaused; std::string m_sRomFile; ECartridge m_eCartridge; --- 97,103 ---- SigC::Connection m_oEmuSig; ! int m_iScreenWidth; ! int m_iScreenHeight; ! std::string m_sRomFile; ECartridge m_eCartridge; *************** *** 100,111 **** Keymap m_oKeymap; u32 m_uiJoypadState; bool m_bAutoFrameskip; ! ! int m_iScreenWidth; ! int m_iScreenHeight; void vInitSystem(); void vInitSDL(); void vInitConfig(); void vLoadConfig(const std::string & _sFilename); void vSaveConfig(const std::string & _sFilename); --- 105,118 ---- Keymap m_oKeymap; u32 m_uiJoypadState; + bool m_bWasEmulating; bool m_bAutoFrameskip; ! int m_iThrottle; ! u32 m_uiThrottleLastTime; ! u32 m_uiThrottleDelay; void vInitSystem(); void vInitSDL(); void vInitConfig(); + void vCheckConfig(); void vLoadConfig(const std::string & _sFilename); void vSaveConfig(const std::string & _sFilename); *************** *** 121,124 **** --- 128,132 ---- void vStopEmu(); void vSetThrottle(int _iPercent); + void vSelectBestThrottleItem(); }; Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** window.cpp 12 Apr 2004 22:59:24 -0000 1.3 --- window.cpp 15 Apr 2004 03:58:45 -0000 1.4 *************** *** 46,49 **** --- 46,50 ---- Window * Window::m_poInstance = NULL; + // GB/GBA screen sizes const int iGBScreenWidth = 160; const int iGBScreenHeight = 144; *************** *** 53,63 **** const int iGBAScreenHeight = 160; Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) : Gtk::Window(_pstWindow), m_poFileOpenDialog(NULL), - m_eCartridge(NO_CARTRIDGE), - m_uiJoypadState(0), m_iScreenWidth(iGBAScreenWidth), ! m_iScreenHeight(iGBAScreenHeight) { vInitSystem(); --- 54,77 ---- const int iGBAScreenHeight = 160; + // Config limits + const int iFrameskipMin = 0; + const int iFrameskipMax = 9; + const int iThrottleMin = 5; + const int iThrottleMax = 1000; + const int iScaleMin = 1; + const int iScaleMax = 6; + const int iFilter2xMin = (int)FirstFilter; + const int iFilter2xMax = (int)LastFilter; + const int iFilterIBMin = (int)FirstFilterIB; + const int iFilterIBMax = (int)LastFilterIB; + Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) : Gtk::Window(_pstWindow), + m_poXml(_poXml), m_poFileOpenDialog(NULL), m_iScreenWidth(iGBAScreenWidth), ! m_iScreenHeight(iGBAScreenHeight), ! m_eCartridge(NO_CARTRIDGE), ! m_uiJoypadState(0) { vInitSystem(); *************** *** 85,88 **** --- 99,103 ---- { vLoadConfig(m_sConfigFile); + vCheckConfig(); } else *************** *** 118,122 **** { const char * m_csName; ! int m_iFrameskip; } astFrameskip[] = --- 133,137 ---- { const char * m_csName; ! const int m_iFrameskip; } astFrameskip[] = *************** *** 135,139 **** }; int iDefaultFrameskip; ! if (m_poScreenConfig->sGetKey("frameskip") == "auto") { iDefaultFrameskip = -1; --- 150,154 ---- }; int iDefaultFrameskip; ! if (m_poCoreConfig->sGetKey("frameskip") == "auto") { iDefaultFrameskip = -1; *************** *** 141,145 **** else { ! iDefaultFrameskip = m_poScreenConfig->oGetKey<int>("frameskip"); } for (guint i = 0; i < sizeof(astFrameskip) / sizeof(astFrameskip[0]); i++) --- 156,160 ---- else { ! iDefaultFrameskip = m_poCoreConfig->oGetKey<int>("frameskip"); } for (guint i = 0; i < sizeof(astFrameskip) / sizeof(astFrameskip[0]); i++) *************** *** 161,165 **** { const char * m_csName; ! int m_iThrottle; } astThrottle[] = --- 176,180 ---- { const char * m_csName; ! const int m_iThrottle; } astThrottle[] = *************** *** 178,182 **** poCMI)); ! int iDefaultThrottle = m_poScreenConfig->oGetKey<int>("throttle"); for (guint i = 0; i < sizeof(astThrottle) / sizeof(astThrottle[0]); i++) { --- 193,197 ---- poCMI)); ! int iDefaultThrottle = m_poCoreConfig->oGetKey<int>("throttle"); for (guint i = 0; i < sizeof(astThrottle) / sizeof(astThrottle[0]); i++) { *************** *** 197,201 **** { const char * m_csName; ! int m_iScale; } astVideoScale[] = --- 212,216 ---- { const char * m_csName; ! const int m_iScale; } astVideoScale[] = *************** *** 208,212 **** { "Video6x", 6 } }; ! int iDefaultScale = m_poScreenConfig->oGetKey<int>("scale"); for (guint i = 0; i < sizeof(astVideoScale) / sizeof(astVideoScale[0]); i++) { --- 223,227 ---- { "Video6x", 6 } }; ! int iDefaultScale = m_poDisplayConfig->oGetKey<int>("scale"); for (guint i = 0; i < sizeof(astVideoScale) / sizeof(astVideoScale[0]); i++) { *************** *** 227,243 **** { const char * m_csName; ! int m_iLayer; ! bool m_bChecked; } astLayer[] = { ! { "LayersBg0", 0, m_poScreenConfig->oGetKey<bool>("layer_bg0") }, ! { "LayersBg1", 1, m_poScreenConfig->oGetKey<bool>("layer_bg1") }, ! { "LayersBg2", 2, m_poScreenConfig->oGetKey<bool>("layer_bg2") }, ! { "LayersBg3", 3, m_poScreenConfig->oGetKey<bool>("layer_bg3") }, ! { "LayersObj", 4, m_poScreenConfig->oGetKey<bool>("layer_obj") }, ! { "LayersWin0", 5, m_poScreenConfig->oGetKey<bool>("layer_win0") }, ! { "LayersWin1", 6, m_poScreenConfig->oGetKey<bool>("layer_win1") }, ! { "LayersObjWin", 7, m_poScreenConfig->oGetKey<bool>("layer_objwin") } }; for (guint i = 0; i < sizeof(astLayer) / sizeof(astLayer[0]); i++) --- 242,258 ---- { const char * m_csName; ! const int m_iLayer; ! const bool m_bChecked; } astLayer[] = { ! { "LayersBg0", 0, m_poCoreConfig->oGetKey<bool>("layer_bg0") }, ! { "LayersBg1", 1, m_poCoreConfig->oGetKey<bool>("layer_bg1") }, ! { "LayersBg2", 2, m_poCoreConfig->oGetKey<bool>("layer_bg2") }, ! { "LayersBg3", 3, m_poCoreConfig->oGetKey<bool>("layer_bg3") }, ! { "LayersObj", 4, m_poCoreConfig->oGetKey<bool>("layer_obj") }, ! { "LayersWin0", 5, m_poCoreConfig->oGetKey<bool>("layer_win0") }, ! { "LayersWin1", 6, m_poCoreConfig->oGetKey<bool>("layer_win1") }, ! { "LayersObjWin", 7, m_poCoreConfig->oGetKey<bool>("layer_objwin") } }; for (guint i = 0; i < sizeof(astLayer) / sizeof(astLayer[0]); i++) *************** *** 255,260 **** struct { ! const char * m_csName; ! EFilter2x m_eFilter2x; } astFilter2x[] = --- 270,275 ---- struct { ! const char * m_csName; ! const EFilter2x m_eFilter2x; } astFilter2x[] = *************** *** 275,279 **** { "FilterLq2x", FilterLq2x } }; ! EFilter2x eDefaultFilter2x = (EFilter2x)m_poScreenConfig->oGetKey<int>("filter2x"); for (guint i = 0; i < sizeof(astFilter2x) / sizeof(astFilter2x[0]); i++) { --- 290,294 ---- { "FilterLq2x", FilterLq2x } }; ! EFilter2x eDefaultFilter2x = (EFilter2x)m_poDisplayConfig->oGetKey<int>("filter2x"); for (guint i = 0; i < sizeof(astFilter2x) / sizeof(astFilter2x[0]); i++) { *************** *** 291,295 **** poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilterDisableMmx")); #ifdef MMX ! poCMI->set_active(m_poScreenConfig->oGetKey<bool>("filter_disable_mmx")); vOnDisableMMXToggled(poCMI); poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( --- 306,310 ---- poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilterDisableMmx")); #ifdef MMX ! poCMI->set_active(m_poDisplayConfig->oGetKey<bool>("filter_disable_mmx")); vOnDisableMMXToggled(poCMI); poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( *************** *** 305,310 **** struct { ! const char * m_csName; ! EFilterIB m_eFilterIB; } astFilterIB[] = --- 320,325 ---- struct { ! const char * m_csName; ! const EFilterIB m_eFilterIB; } astFilterIB[] = *************** *** 314,318 **** { "IFBMotionBlur", FilterIBMotionBlur } }; ! EFilterIB eDefaultFilterIB = (EFilterIB)m_poScreenConfig->oGetKey<int>("filterIB"); for (guint i = 0; i < sizeof(astFilterIB) / sizeof(astFilterIB[0]); i++) { --- 329,333 ---- { "IFBMotionBlur", FilterIBMotionBlur } }; ! EFilterIB eDefaultFilterIB = (EFilterIB)m_poDisplayConfig->oGetKey<int>("filterIB"); for (guint i = 0; i < sizeof(astFilterIB) / sizeof(astFilterIB[0]); i++) { *************** *** 408,414 **** return; ! int iFlags = (SDL_INIT_AUDIO ! | SDL_INIT_TIMER // useful for SDL_GetTicks ? ! | SDL_INIT_NOPARACHUTE); if (SDL_Init(iFlags) < 0) --- 423,427 ---- return; ! int iFlags = (SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE); if (SDL_Init(iFlags) < 0) *************** *** 425,452 **** m_oConfig.vClear(); ! m_poScreenConfig = m_oConfig.poAddSection("Screen"); ! m_poScreenConfig->vSetKey ("frameskip", "auto" ); ! m_poScreenConfig->vSetKey ("throttle", 0 ); ! m_poScreenConfig->vSetKey ("scale", 1 ); ! m_poScreenConfig->vSetKey ("layer_bg0", true ); ! m_poScreenConfig->vSetKey ("layer_bg1", true ); ! m_poScreenConfig->vSetKey ("layer_bg2", true ); ! m_poScreenConfig->vSetKey ("layer_bg3", true ); ! m_poScreenConfig->vSetKey ("layer_obj", true ); ! m_poScreenConfig->vSetKey ("layer_win0", true ); ! m_poScreenConfig->vSetKey ("layer_win1", true ); ! m_poScreenConfig->vSetKey ("layer_objwin", true ); ! m_poScreenConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poScreenConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poScreenConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX } void Window::vLoadConfig(const std::string & _sFilename) { try { ! m_oConfig.vLoad(_sFilename); } catch (const Glib::Error & e) --- 438,518 ---- m_oConfig.vClear(); ! // Core section ! // ! 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 ); ! ! // Display section ! // ! m_poDisplayConfig = m_oConfig.poAddSection("Display"); ! m_poDisplayConfig->vSetKey ("scale", 1 ); ! m_poDisplayConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poDisplayConfig->vSetKey<int>("filterIB", FilterIBNone ); #ifdef MMX ! m_poDisplayConfig->vSetKey ("filter_disable_mmx", false ); #endif // MMX } + void Window::vCheckConfig() + { + int iValue; + int iAdjusted; + + if (m_poCoreConfig->sGetKey("frameskip") != "auto") + { + iValue = m_poCoreConfig->oGetKey<int>("frameskip"); + iAdjusted = CLAMP(iValue, iFrameskipMin, iFrameskipMax); + if (iValue != iAdjusted) + { + m_poCoreConfig->vSetKey("frameskip", iAdjusted); + } + } + + iValue = m_poCoreConfig->oGetKey<int>("throttle"); + if (iValue != 0) + { + iAdjusted = CLAMP(iValue, iThrottleMin, iThrottleMax); + if (iValue != iAdjusted) + { + m_poCoreConfig->vSetKey("throttle", iAdjusted); + } + } + + iValue = m_poDisplayConfig->oGetKey<int>("scale"); + iAdjusted = CLAMP(iValue, iScaleMin, iScaleMax); + if (iValue != iAdjusted) + { + m_poDisplayConfig->vSetKey("scale", iAdjusted); + } + + iValue = m_poDisplayConfig->oGetKey<int>("filter2x"); + iAdjusted = CLAMP(iValue, iFilter2xMin, iFilter2xMax); + if (iValue != iAdjusted) + { + m_poDisplayConfig->vSetKey("filter2x", iAdjusted); + } + + iValue = m_poDisplayConfig->oGetKey<int>("filterIB"); + iAdjusted = CLAMP(iValue, iFilterIBMin, iFilterIBMax); + if (iValue != iAdjusted) + { + m_poDisplayConfig->vSetKey("filterIB", iAdjusted); + } + } + void Window::vLoadConfig(const std::string & _sFilename) { try { ! m_oConfig.vLoad(_sFilename, false, false); } catch (const Glib::Error & e) *************** *** 458,463 **** oDialog.run(); } - - // TODO : check that values are valid } --- 524,527 ---- *************** *** 505,509 **** m_poScreenArea->vSetSize(m_iScreenWidth, m_iScreenHeight); ! m_poScreenArea->vSetScale(m_poScreenConfig->oGetKey<int>("scale")); resize(1, 1); --- 569,573 ---- m_poScreenArea->vSetSize(m_iScreenWidth, m_iScreenHeight); ! m_poScreenArea->vSetScale(m_poDisplayConfig->oGetKey<int>("scale")); resize(1, 1); *************** *** 531,594 **** void Window::vComputeFrameskip(int _iRate) { ! #if 0 ! u32 time = SDL_GetTicks(); ! if(!wasPaused && autoFrameSkip && !throttle) { ! u32 diff = time - autoFrameSkipLastTime; ! int speed = 100; ! if(diff) ! speed = (1000000/rate)/diff; ! ! if(speed >= 98) { ! frameskipadjust++; ! if(frameskipadjust >= 3) { ! frameskipadjust=0; ! if(systemFrameSkip > 0) ! systemFrameSkip--; } ! } else { ! if(speed < 80) ! frameskipadjust -= (90 - speed)/5; ! else if(systemFrameSkip < 9) ! frameskipadjust--; ! if(frameskipadjust <= -2) { ! frameskipadjust += 2; ! if(systemFrameSkip < 9) ! systemFrameSkip++; } ! } ! } ! if(!wasPaused && throttle) { ! if(!speedup) { ! u32 diff = time - throttleLastTime; ! ! int target = (1000000/(rate*throttle)); ! int d = (target - diff); ! ! if(d > 0) { ! SDL_Delay(d); } ! } ! throttleLastTime = systemGetClock(); ! } ! if(rewindMemory) { ! if(++rewindCounter >= rewindTimer) { ! rewindSaveNeeded = true; ! rewindCounter = 0; ! } ! } ! if(systemSaveUpdateCounter) { ! if(--systemSaveUpdateCounter <= SYSTEM_SAVE_NOT_UPDATED) { ! sdlWriteBattery(); ! systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; } } ! wasPaused = false; ! autoFrameSkipLastTime = time; ! #endif // 0 } --- 595,673 ---- void Window::vComputeFrameskip(int _iRate) { ! static u32 uiLastTime = 0; ! static int iFrameskipAdjust = 0; ! u32 uiTime = SDL_GetTicks(); ! if (m_bWasEmulating) ! { ! int iWantedSpeed = 100; ! ! if (m_iThrottle > 0) ! { ! if (! speedup) ! { ! u32 uiDiff = uiTime - m_uiThrottleLastTime; ! int iTarget = 1000000 / (_iRate * m_iThrottle); ! int iDelay = iTarget - uiDiff; ! if (iDelay > 0) ! { ! m_uiThrottleDelay = iDelay; ! } } ! iWantedSpeed = m_iThrottle; ! } ! if (m_bAutoFrameskip) ! { ! u32 uiDiff = uiTime - uiLastTime; ! int iSpeed = iWantedSpeed; ! ! if (uiDiff != 0) ! { ! iSpeed = (1000000 / _iRate) / uiDiff; } ! ! if (iSpeed >= iWantedSpeed - 2) ! { ! iFrameskipAdjust++; ! if (iFrameskipAdjust >= 3) ! { ! iFrameskipAdjust = 0; ! if (systemFrameSkip > 0) ! { ! systemFrameSkip--; ! } ! } } ! else ! { ! if (iSpeed < iWantedSpeed - 20) ! { ! iFrameskipAdjust -= ((iWantedSpeed - 10) - iSpeed) / 5; ! } ! else if (systemFrameSkip < 9) ! { ! iFrameskipAdjust--; ! } ! if (iFrameskipAdjust <= -2) ! { ! iFrameskipAdjust += 2; ! if (systemFrameSkip < 9) ! { ! systemFrameSkip++; ! } ! } ! } } } + else + { + m_bWasEmulating = true; + } ! uiLastTime = uiTime; ! m_uiThrottleLastTime = uiTime; } *************** *** 684,687 **** --- 763,768 ---- emulating = 1; + m_bWasEmulating = false; + m_uiThrottleDelay = 0; if (m_poFilePauseItem->get_active()) *************** *** 743,752 **** { m_oEmuSig.disconnect(); } void Window::vSetThrottle(int _iPercent) { ! // TODO ! m_poScreenConfig->vSetKey("throttle", _iPercent); } --- 824,861 ---- { m_oEmuSig.disconnect(); + m_bWasEmulating = false; } void Window::vSetThrottle(int _iPercent) { ! m_iThrottle = _iPercent; ! m_poCoreConfig->vSetKey("throttle", _iPercent); ! } ! ! void Window::vSelectBestThrottleItem() ! { ! struct ! { ! const char * m_csName; ! const int m_iThrottle; ! } ! astThrottle[] = ! { ! { "ThrottleNoThrottle", 0 }, ! { "Throttle25", 25 }, ! { "Throttle50", 50 }, ! { "Throttle100", 100 }, ! { "Throttle150", 150 }, ! { "Throttle200", 200 } ! }; ! for (guint i = 0; i < sizeof(astThrottle) / sizeof(astThrottle[0]); i++) ! { ! Gtk::CheckMenuItem * poCMI; ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(m_poXml->get_widget(astThrottle[i].m_csName)); ! if (astThrottle[i].m_iThrottle == m_iThrottle) ! { ! poCMI->set_active(); ! } ! } } *************** *** 819,823 **** if (_iValue >= 0 && _iValue <= 9) { ! m_poScreenConfig->vSetKey("frameskip", _iValue); gbFrameSkip = _iValue; systemFrameSkip = _iValue; --- 928,932 ---- if (_iValue >= 0 && _iValue <= 9) { ! m_poCoreConfig->vSetKey("frameskip", _iValue); gbFrameSkip = _iValue; systemFrameSkip = _iValue; *************** *** 826,830 **** else { ! m_poScreenConfig->vSetKey("frameskip", "auto"); m_bAutoFrameskip = true; } --- 935,940 ---- else { ! m_poCoreConfig->vSetKey("frameskip", "auto"); ! systemFrameSkip = 0; m_bAutoFrameskip = true; } *************** *** 839,842 **** --- 949,958 ---- vSetThrottle(_iPercent); + + // Initialize the frameskip adjustment each time throttle is changed + if (m_bAutoFrameskip) + { + systemFrameSkip = 0; + } } *************** *** 848,852 **** } ! // TODO } --- 964,991 ---- } ! Glib::RefPtr<Xml> poXml; ! poXml = Xml::create(PKGDATADIR "/vba.glade", "ThrottleDialog"); ! ! Gtk::Dialog * poDialog = dynamic_cast<Gtk::Dialog *>(poXml->get_widget("ThrottleDialog")); ! Gtk::SpinButton * poSpin = dynamic_cast<Gtk::SpinButton *>(poXml->get_widget("ThrottleSpin")); ! ! poDialog->set_transient_for(*this); ! ! if (m_iThrottle != 0) ! { ! poSpin->set_value(m_iThrottle); ! } ! else ! { ! poSpin->set_value(100); ! } ! ! if (poDialog->run() == Gtk::RESPONSE_OK) ! { ! vSetThrottle(poSpin->get_value_as_int()); ! } ! ! delete poDialog; ! vSelectBestThrottleItem(); } *************** *** 858,862 **** } ! m_poScreenConfig->vSetKey("scale", _iScale); vUpdateScreen(); } --- 997,1001 ---- } ! m_poDisplayConfig->vSetKey("scale", _iScale); vUpdateScreen(); } *************** *** 886,890 **** "layer_objwin" }; ! m_poScreenConfig->vSetKey(acsLayers[_iLayer], _poCMI->get_active()); } --- 1025,1029 ---- "layer_objwin" }; ! m_poCoreConfig->vSetKey(acsLayers[_iLayer], _poCMI->get_active()); } *************** *** 901,905 **** vDrawScreen(); } ! m_poScreenConfig->vSetKey("filter2x", _iFilter2x); } --- 1040,1044 ---- vDrawScreen(); } ! m_poDisplayConfig->vSetKey("filter2x", _iFilter2x); } *************** *** 916,920 **** vDrawScreen(); } ! m_poScreenConfig->vSetKey("filterIB", _iFilterIB); } --- 1055,1059 ---- vDrawScreen(); } ! m_poDisplayConfig->vSetKey("filterIB", _iFilterIB); } *************** *** 923,927 **** { cpu_mmx = ! _poCMI->get_active(); ! m_poScreenConfig->vSetKey("filter_disable_mmx", _poCMI->get_active()); } #endif // MMX --- 1062,1066 ---- { cpu_mmx = ! _poCMI->get_active(); ! m_poDisplayConfig->vSetKey("filter_disable_mmx", _poCMI->get_active()); } #endif // MMX *************** *** 943,946 **** --- 1082,1099 ---- bool Window::bOnEmuIdle() { + if (m_uiThrottleDelay != 0) + { + u32 uiTime = SDL_GetTicks(); + if (uiTime - m_uiThrottleLastTime >= m_uiThrottleDelay) + { + m_uiThrottleDelay = 0; + m_uiThrottleLastTime = uiTime; + } + else + { + return true; + } + } + m_stEmulator.emuMain(m_stEmulator.emuCount); return true; Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** vba.glade 2 Apr 2004 01:22:17 -0000 1.2 --- vba.glade 15 Apr 2004 03:58:45 -0000 1.3 *************** *** 47,51 **** <child internal-child="image"> ! <widget class="GtkImage" id="image72"> <property name="visible">True</property> <property name="stock">gtk-open</property> --- 47,51 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image74"> <property name="visible">True</property> <property name="stock">gtk-open</property> *************** *** 196,200 **** <child internal-child="image"> ! <widget class="GtkImage" id="image73"> <property name="visible">True</property> <property name="stock">gtk-close</property> --- 196,200 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image75"> <property name="visible">True</property> <property name="stock">gtk-close</property> *************** *** 217,221 **** <child internal-child="image"> ! <widget class="GtkImage" id="image74"> <property name="visible">True</property> <property name="stock">gtk-quit</property> --- 217,221 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image76"> <property name="visible">True</property> <property name="stock">gtk-quit</property> *************** *** 1671,1675 **** <property name="modal">False</property> <property name="resizable">True</property> ! <property name="destroy_with_parent">False</property> <property name="has_separator">True</property> --- 1671,1675 ---- <property name="modal">False</property> <property name="resizable">True</property> ! <property name="destroy_with_parent">True</property> <property name="has_separator">True</property> *************** *** 1774,1776 **** --- 1774,1905 ---- </widget> + <widget class="GtkDialog" id="ThrottleDialog"> + <property name="title" translatable="yes">Throttle</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">True</property> + <property name="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox2"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area2"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="cancelbutton1"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">-6</property> + </widget> + </child> + + <child> + <widget class="GtkButton" id="okbutton1"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-ok</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">-5</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Throttle : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkSpinButton" id="ThrottleSpin"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="climb_rate">1</property> + <property name="digits">0</property> + <property name="numeric">True</property> + <property name="update_policy">GTK_UPDATE_ALWAYS</property> + <property name="snap_to_ticks">True</property> + <property name="wrap">True</property> + <property name="adjustment">100 5 1000 1 25 25</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="label" translatable="yes"> %</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> + </widget> + </glade-interface> |
From: S?bastien G. <kx...@us...> - 2004-04-15 03:58:53
|
Update of /cvsroot/vba/VisualBoyAdvance/po In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12997/po Modified Files: fr.gmo fr.po vba-1.7.2.pot Log Message: Added auto frameskip and throttle support. Config file has been modified, and now old and corrupted config files are fixed at loading time. Index: fr.po =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/fr.po,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** fr.po 2 Apr 2004 01:22:17 -0000 1.2 --- fr.po 15 Apr 2004 03:58:45 -0000 1.3 *************** *** 10,15 **** "Project-Id-Version: VisualBoyAdvance 1.7.2\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-02 03:28+0200\n" ! "PO-Revision-Date: 2004-04-02 03:24+0200\n" "Last-Translator: Sébastien Guignot <kx...@ts...>\n" "Language-Team: French <@>\n" --- 10,15 ---- "Project-Id-Version: VisualBoyAdvance 1.7.2\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-15 04:56+0200\n" ! "PO-Revision-Date: 2004-04-15 04:57+0200\n" "Last-Translator: Sébastien Guignot <kx...@ts...>\n" "Language-Team: French <@>\n" *************** *** 566,588 **** msgstr "<small>Copyright © 1999-2004 Forgotten</small>" ! #: src/gtk/window.cpp:506 #, c-format msgid "Unknown file type %s" msgstr "Type de fichier inconnu %s" ! #: src/gtk/window.cpp:579 #, c-format msgid "Failed to load file %s" msgstr "Le chargement du fichier %s a échoué" ! #: src/gtk/window.cpp:607 msgid "Loaded battery" msgstr "Sauvegarde chargée" ! #: src/gtk/window.cpp:618 msgid "Saved battery" msgstr "Sauvegarde effectuée" ! #: src/gtk/window.cpp:685 msgid "Open a ROM" msgstr "Ouvrir une ROM" --- 566,600 ---- msgstr "<small>Copyright © 1999-2004 Forgotten</small>" ! #: src/gtk/vba.glade:1778 ! msgid "Throttle" ! msgstr "Vitesse" ! ! #: src/gtk/vba.glade:1838 ! msgid "Throttle : " ! msgstr "Vitesse : " ! ! #: src/gtk/vba.glade:1878 ! msgid " %" ! msgstr " %" ! ! #: src/gtk/window.cpp:683 #, c-format msgid "Unknown file type %s" msgstr "Type de fichier inconnu %s" ! #: src/gtk/window.cpp:756 #, c-format msgid "Failed to load file %s" msgstr "Le chargement du fichier %s a échoué" ! #: src/gtk/window.cpp:786 msgid "Loaded battery" msgstr "Sauvegarde chargée" ! #: src/gtk/window.cpp:797 msgid "Saved battery" msgstr "Sauvegarde effectuée" ! #: src/gtk/window.cpp:838 msgid "Open a ROM" msgstr "Ouvrir une ROM" Index: vba-1.7.2.pot =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/vba-1.7.2.pot,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** vba-1.7.2.pot 2 Apr 2004 01:22:17 -0000 1.2 --- vba-1.7.2.pot 15 Apr 2004 03:58:45 -0000 1.3 *************** *** 9,13 **** "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-02 03:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" --- 9,13 ---- "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-15 04:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" *************** *** 565,587 **** msgstr "" ! #: src/gtk/window.cpp:506 #, c-format msgid "Unknown file type %s" msgstr "" ! #: src/gtk/window.cpp:579 #, c-format msgid "Failed to load file %s" msgstr "" ! #: src/gtk/window.cpp:607 msgid "Loaded battery" msgstr "" ! #: src/gtk/window.cpp:618 msgid "Saved battery" msgstr "" ! #: src/gtk/window.cpp:685 msgid "Open a ROM" msgstr "" --- 565,599 ---- msgstr "" ! #: src/gtk/vba.glade:1778 ! msgid "Throttle" ! msgstr "" ! ! #: src/gtk/vba.glade:1838 ! msgid "Throttle : " ! msgstr "" ! ! #: src/gtk/vba.glade:1878 ! msgid " %" ! msgstr "" ! ! #: src/gtk/window.cpp:683 #, c-format msgid "Unknown file type %s" msgstr "" ! #: src/gtk/window.cpp:756 #, c-format msgid "Failed to load file %s" msgstr "" ! #: src/gtk/window.cpp:786 msgid "Loaded battery" msgstr "" ! #: src/gtk/window.cpp:797 msgid "Saved battery" msgstr "" ! #: src/gtk/window.cpp:838 msgid "Open a ROM" msgstr "" Index: fr.gmo =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/fr.gmo,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsRlE73W and /tmp/cvsH1xVpf differ |
From: S?bastien G. <kx...@us...> - 2004-04-12 23:13:17
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12974 Modified Files: system.cpp window.cpp window.h Log Message: A few fixes in the menu callbacks. Index: system.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/system.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** system.cpp 29 Mar 2004 22:08:40 -0000 1.1 --- system.cpp 12 Apr 2004 22:59:24 -0000 1.2 *************** *** 83,87 **** { char csTitle[50]; ! snprintf(csTitle, 50, "VisualBoyAdvance-%.3d%%", _iSpeed); gui()->set_title(csTitle); } --- 83,87 ---- { char csTitle[50]; ! snprintf(csTitle, 50, "VisualBoyAdvance-%d%%", _iSpeed); gui()->set_title(csTitle); } *************** *** 89,92 **** --- 89,93 ---- void system10Frames(int _iRate) { + gui()->vComputeFrameskip(_iRate); } Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** window.h 2 Apr 2004 01:22:17 -0000 1.2 --- window.h 12 Apr 2004 22:59:24 -0000 1.3 *************** *** 43,49 **** inline static Window * poGetInstance() { return m_poInstance; } - void vDrawScreen(); - inline u32 uiReadJoypad() { return m_uiJoypadState; } - enum ECartridge { --- 43,46 ---- *************** *** 53,71 **** }; inline ECartridge eGetCartridge() { return m_eCartridge; } protected: virtual void vOnFileOpen(); ! virtual void vOnFilePauseToggled(); virtual void vOnFileReset(); virtual void vOnFileClose(); virtual void vOnFileExit(); ! virtual void vOnFrameskipSelected(int _iValue); ! virtual void vOnThrottleSelected(int _iPercent); ! virtual void vOnThrottleOther(); virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer); ! virtual void vOnVideoScaleSelected(int _iScale); ! virtual void vOnFilter2xSelected(EFilter2x _eFilter2x); ! virtual void vOnFilterIBSelected(EFilterIB _eFilterIB); virtual void vOnHelpAbout(); virtual bool bOnEmuIdle(); --- 50,74 ---- }; + void vDrawScreen(); + void vComputeFrameskip(int _iRate); + inline u32 uiReadJoypad() { return m_uiJoypadState; } inline ECartridge eGetCartridge() { return m_eCartridge; } protected: virtual void vOnFileOpen(); ! virtual void vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI); virtual void vOnFileReset(); virtual void vOnFileClose(); virtual void vOnFileExit(); ! virtual void vOnFrameskipToggled(Gtk::CheckMenuItem * _poCMI, int _iValue); ! virtual void vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent); ! virtual void vOnThrottleOther(Gtk::CheckMenuItem * _poCMI); virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer); ! virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale); ! virtual void vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x); ! virtual void vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB); ! #ifdef MMX ! virtual void vOnDisableMMXToggled(Gtk::CheckMenuItem * _poCMI); ! #endif // MMX virtual void vOnHelpAbout(); virtual bool bOnEmuIdle(); *************** *** 91,94 **** --- 94,98 ---- SigC::Connection m_oEmuSig; + bool m_bPaused; std::string m_sRomFile; ECartridge m_eCartridge; *************** *** 117,121 **** void vStopEmu(); void vSetThrottle(int _iPercent); - void vSetLayer(int _iLayer, bool _bVisible); }; --- 121,124 ---- Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** window.cpp 2 Apr 2004 01:22:17 -0000 1.2 --- window.cpp 12 Apr 2004 22:59:24 -0000 1.3 *************** *** 35,38 **** --- 35,42 ---- extern int RGB_LOW_BITS_MASK; + #ifdef MMX + extern "C" bool cpu_mmx; + #endif // MMX + namespace VBA { *************** *** 95,99 **** // m_poFilePauseItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilePause")); ! m_poFilePauseItem->signal_toggled().connect(SigC::slot(*this, &Window::vOnFilePauseToggled)); poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileOpen")); --- 99,106 ---- // 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")); *************** *** 138,148 **** for (guint i = 0; i < sizeof(astFrameskip) / sizeof(astFrameskip[0]); i++) { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astFrameskip[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<int>(SigC::slot(*this, &Window::vOnFrameskipSelected), ! astFrameskip[i].m_iFrameskip)); if (astFrameskip[i].m_iFrameskip == iDefaultFrameskip) { ! poMI->activate(); } } --- 145,157 ---- for (guint i = 0; i < sizeof(astFrameskip) / sizeof(astFrameskip[0]); i++) { ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astFrameskip[i].m_csName)); if (astFrameskip[i].m_iFrameskip == iDefaultFrameskip) { ! poCMI->set_active(); ! vOnFrameskipToggled(poCMI, iDefaultFrameskip); } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnFrameskipToggled), + poCMI, astFrameskip[i].m_iFrameskip)); } *************** *** 163,180 **** { "Throttle200", 200 } }; ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("ThrottleOther")); ! poMI->activate(); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnThrottleOther)); int iDefaultThrottle = m_poScreenConfig->oGetKey<int>("throttle"); for (guint i = 0; i < sizeof(astThrottle) / sizeof(astThrottle[0]); i++) { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astThrottle[i].m_csName)); if (astThrottle[i].m_iThrottle == iDefaultThrottle) { ! poMI->activate(); } ! poMI->signal_activate().connect(SigC::bind<int>(SigC::slot(*this, &Window::vOnThrottleSelected), ! astThrottle[i].m_iThrottle)); } vSetThrottle(iDefaultThrottle); --- 172,192 ---- { "Throttle200", 200 } }; ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("ThrottleOther")); ! poCMI->set_active(); ! poCMI->signal_activate().connect(SigC::bind<Gtk::CheckMenuItem *>( ! SigC::slot(*this, &Window::vOnThrottleOther), ! poCMI)); int iDefaultThrottle = m_poScreenConfig->oGetKey<int>("throttle"); for (guint i = 0; i < sizeof(astThrottle) / sizeof(astThrottle[0]); i++) { ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astThrottle[i].m_csName)); if (astThrottle[i].m_iThrottle == iDefaultThrottle) { ! poCMI->set_active(); } ! poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( ! SigC::slot(*this, &Window::vOnThrottleToggled), ! poCMI, astThrottle[i].m_iThrottle)); } vSetThrottle(iDefaultThrottle); *************** *** 199,209 **** for (guint i = 0; i < sizeof(astVideoScale) / sizeof(astVideoScale[0]); i++) { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astVideoScale[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<int>(SigC::slot(*this, &Window::vOnVideoScaleSelected), ! astVideoScale[i].m_iScale)); if (astVideoScale[i].m_iScale == iDefaultScale) { ! poMI->activate(); } } --- 211,223 ---- for (guint i = 0; i < sizeof(astVideoScale) / sizeof(astVideoScale[0]); i++) { ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astVideoScale[i].m_csName)); if (astVideoScale[i].m_iScale == iDefaultScale) { ! poCMI->set_active(); ! vOnVideoScaleToggled(poCMI, iDefaultScale); } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnVideoScaleToggled), + poCMI, astVideoScale[i].m_iScale)); } *************** *** 231,235 **** poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astLayer[i].m_csName)); poCMI->set_active(astLayer[i].m_bChecked); ! vSetLayer(astLayer[i].m_iLayer, astLayer[i].m_bChecked); poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( SigC::slot(*this, &Window::vOnLayerToggled), --- 245,249 ---- poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astLayer[i].m_csName)); poCMI->set_active(astLayer[i].m_bChecked); ! vOnLayerToggled(poCMI, astLayer[i].m_iLayer); poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( SigC::slot(*this, &Window::vOnLayerToggled), *************** *** 264,276 **** for (guint i = 0; i < sizeof(astFilter2x) / sizeof(astFilter2x[0]); i++) { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astFilter2x[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<EFilter2x>(SigC::slot(*this, &Window::vOnFilter2xSelected), ! astFilter2x[i].m_eFilter2x)); if (astFilter2x[i].m_eFilter2x == eDefaultFilter2x) { ! poMI->activate(); } } // Interframe blending menu // --- 278,304 ---- for (guint i = 0; i < sizeof(astFilter2x) / sizeof(astFilter2x[0]); i++) { ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astFilter2x[i].m_csName)); if (astFilter2x[i].m_eFilter2x == eDefaultFilter2x) { ! poCMI->set_active(); ! vOnFilter2xToggled(poCMI, eDefaultFilter2x); } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnFilter2xToggled), + poCMI, astFilter2x[i].m_eFilter2x)); } + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilterDisableMmx")); + #ifdef MMX + poCMI->set_active(m_poScreenConfig->oGetKey<bool>("filter_disable_mmx")); + vOnDisableMMXToggled(poCMI); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *>( + SigC::slot(*this, &Window::vOnDisableMMXToggled), + poCMI)); + #else // ! MMX + poCMI->set_active(); + poCMI->set_sensitive(false); + #endif // ! MMX + // Interframe blending menu // *************** *** 289,301 **** for (guint i = 0; i < sizeof(astFilterIB) / sizeof(astFilterIB[0]); i++) { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astFilterIB[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<EFilterIB>(SigC::slot(*this, &Window::vOnFilterIBSelected), ! astFilterIB[i].m_eFilterIB)); if (astFilterIB[i].m_eFilterIB == eDefaultFilterIB) { ! poMI->activate(); } } poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("HelpAbout")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnHelpAbout)); --- 317,333 ---- for (guint i = 0; i < sizeof(astFilterIB) / sizeof(astFilterIB[0]); i++) { ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astFilterIB[i].m_csName)); if (astFilterIB[i].m_eFilterIB == eDefaultFilterIB) { ! poCMI->set_active(); ! vOnFilterIBToggled(poCMI, eDefaultFilterIB); } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnFilterIBToggled), + poCMI, astFilterIB[i].m_eFilterIB)); } + // Help menu + // poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("HelpAbout")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnHelpAbout)); *************** *** 394,410 **** m_poScreenConfig = m_oConfig.poAddSection("Screen"); ! m_poScreenConfig->vSetKey ("frameskip", "auto" ); ! m_poScreenConfig->vSetKey ("throttle", 0 ); ! m_poScreenConfig->vSetKey ("scale", 1 ); ! m_poScreenConfig->vSetKey ("layer_bg0", true ); ! m_poScreenConfig->vSetKey ("layer_bg1", true ); ! m_poScreenConfig->vSetKey ("layer_bg2", true ); ! m_poScreenConfig->vSetKey ("layer_bg3", true ); ! m_poScreenConfig->vSetKey ("layer_obj", true ); ! m_poScreenConfig->vSetKey ("layer_win0", true ); ! m_poScreenConfig->vSetKey ("layer_win1", true ); ! m_poScreenConfig->vSetKey ("layer_objwin", true ); ! m_poScreenConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poScreenConfig->vSetKey<int>("filterIB", FilterIBNone ); } --- 426,445 ---- m_poScreenConfig = m_oConfig.poAddSection("Screen"); ! m_poScreenConfig->vSetKey ("frameskip", "auto" ); ! m_poScreenConfig->vSetKey ("throttle", 0 ); ! m_poScreenConfig->vSetKey ("scale", 1 ); ! m_poScreenConfig->vSetKey ("layer_bg0", true ); ! m_poScreenConfig->vSetKey ("layer_bg1", true ); ! m_poScreenConfig->vSetKey ("layer_bg2", true ); ! m_poScreenConfig->vSetKey ("layer_bg3", true ); ! m_poScreenConfig->vSetKey ("layer_obj", true ); ! m_poScreenConfig->vSetKey ("layer_win0", true ); ! m_poScreenConfig->vSetKey ("layer_win1", true ); ! m_poScreenConfig->vSetKey ("layer_objwin", true ); ! m_poScreenConfig->vSetKey<int>("filter2x", FilterNone ); ! m_poScreenConfig->vSetKey<int>("filterIB", FilterIBNone ); ! #ifdef MMX ! m_poScreenConfig->vSetKey ("filter_disable_mmx", false ); ! #endif // MMX } *************** *** 494,497 **** --- 529,596 ---- } + void Window::vComputeFrameskip(int _iRate) + { + #if 0 + u32 time = SDL_GetTicks(); + if(!wasPaused && autoFrameSkip && !throttle) { + u32 diff = time - autoFrameSkipLastTime; + int speed = 100; + + if(diff) + speed = (1000000/rate)/diff; + + if(speed >= 98) { + frameskipadjust++; + + if(frameskipadjust >= 3) { + frameskipadjust=0; + if(systemFrameSkip > 0) + systemFrameSkip--; + } + } else { + if(speed < 80) + frameskipadjust -= (90 - speed)/5; + else if(systemFrameSkip < 9) + frameskipadjust--; + + if(frameskipadjust <= -2) { + frameskipadjust += 2; + if(systemFrameSkip < 9) + systemFrameSkip++; + } + } + } + if(!wasPaused && throttle) { + if(!speedup) { + u32 diff = time - throttleLastTime; + + int target = (1000000/(rate*throttle)); + int d = (target - diff); + + if(d > 0) { + SDL_Delay(d); + } + } + throttleLastTime = systemGetClock(); + } + if(rewindMemory) { + if(++rewindCounter >= rewindTimer) { + rewindSaveNeeded = true; + rewindCounter = 0; + } + } + + if(systemSaveUpdateCounter) { + if(--systemSaveUpdateCounter <= SYSTEM_SAVE_NOT_UPDATED) { + sdlWriteBattery(); + systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; + } + } + + wasPaused = false; + autoFrameSkipLastTime = time; + #endif // 0 + } + bool Window::bLoadROM(const std::string & _rsFilename) { *************** *** 652,682 **** } - void Window::vSetLayer(int _iLayer, bool _bVisible) - { - int iMask = (0x0100 << _iLayer); - if (_bVisible) - { - layerSettings |= iMask; - } - else - { - layerSettings &= ~iMask; - } - layerEnable = DISPCNT & layerSettings; - - const char * acsLayers[] = - { - "layer_bg0", - "layer_bg1", - "layer_bg2", - "layer_bg3", - "layer_obj", - "layer_win0", - "layer_win1", - "layer_objwin" - }; - m_poScreenConfig->vSetKey(acsLayers[_iLayer], _bVisible); - } - void Window::vOnFileOpen() { --- 751,754 ---- *************** *** 687,692 **** } - m_poFileOpenDialog->show(); - while (m_poFileOpenDialog->run() == Gtk::RESPONSE_OK) { --- 759,762 ---- *************** *** 696,708 **** } } - m_poFileOpenDialog->hide(); } ! void Window::vOnFilePauseToggled() { if (emulating) { ! if (m_poFilePauseItem->get_active()) { vStopEmu(); --- 766,777 ---- } } m_poFileOpenDialog->hide(); } ! void Window::vOnFilePauseToggled(Gtk::CheckMenuItem * _poCMI) { if (emulating) { ! if (_poCMI->get_active()) { vStopEmu(); *************** *** 727,739 **** if (emulating) { vSaveBattery(); m_stEmulator.emuCleanUp(); emulating = 0; } - - m_eCartridge = NO_CARTRIDGE; - - vStopEmu(); - vDrawDefaultScreen(); } --- 796,806 ---- if (emulating) { + vStopEmu(); + vDrawDefaultScreen(); vSaveBattery(); m_stEmulator.emuCleanUp(); + m_eCartridge = NO_CARTRIDGE; emulating = 0; } } *************** *** 743,748 **** } ! void Window::vOnFrameskipSelected(int _iValue) { if (_iValue >= 0 && _iValue <= 9) { --- 810,820 ---- } ! void Window::vOnFrameskipToggled(Gtk::CheckMenuItem * _poCMI, int _iValue) { + if (! _poCMI->get_active()) + { + return; + } + if (_iValue >= 0 && _iValue <= 9) { *************** *** 759,774 **** } ! void Window::vOnThrottleSelected(int _iPercent) { vSetThrottle(_iPercent); } ! void Window::vOnThrottleOther() { // TODO } ! void Window::vOnVideoScaleSelected(int _iScale) { m_poScreenConfig->vSetKey("scale", _iScale); vUpdateScreen(); --- 831,861 ---- } ! void Window::vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent) { + if (! _poCMI->get_active()) + { + return; + } + vSetThrottle(_iPercent); } ! void Window::vOnThrottleOther(Gtk::CheckMenuItem * _poCMI) { + if (! _poCMI->get_active()) + { + return; + } + // TODO } ! void Window::vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale) { + if (! _poCMI->get_active()) + { + return; + } + m_poScreenConfig->vSetKey("scale", _iScale); vUpdateScreen(); *************** *** 777,803 **** void Window::vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer) { ! vSetLayer(_iLayer, _poCMI->get_active()); } ! void Window::vOnFilter2xSelected(EFilter2x _eFilter2x) { ! m_poScreenArea->vSetFilter2x(_eFilter2x); if (emulating) { vDrawScreen(); } ! m_poScreenConfig->vSetKey<int>("filter2x", _eFilter2x); } ! void Window::vOnFilterIBSelected(EFilterIB _eFilterIB) { ! m_poScreenArea->vSetFilterIB(_eFilterIB); if (emulating) { vDrawScreen(); } ! m_poScreenConfig->vSetKey<int>("filterIB", _eFilterIB); } void Window::vOnHelpAbout() { --- 864,930 ---- void Window::vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer) { ! int iMask = (0x0100 << _iLayer); ! if (_poCMI->get_active()) ! { ! layerSettings |= iMask; ! } ! else ! { ! layerSettings &= ~iMask; ! } ! layerEnable = DISPCNT & layerSettings; ! ! const char * acsLayers[] = ! { ! "layer_bg0", ! "layer_bg1", ! "layer_bg2", ! "layer_bg3", ! "layer_obj", ! "layer_win0", ! "layer_win1", ! "layer_objwin" ! }; ! m_poScreenConfig->vSetKey(acsLayers[_iLayer], _poCMI->get_active()); } ! void Window::vOnFilter2xToggled(Gtk::CheckMenuItem * _poCMI, int _iFilter2x) { ! if (! _poCMI->get_active()) ! { ! return; ! } ! ! m_poScreenArea->vSetFilter2x((EFilter2x)_iFilter2x); if (emulating) { vDrawScreen(); } ! m_poScreenConfig->vSetKey("filter2x", _iFilter2x); } ! void Window::vOnFilterIBToggled(Gtk::CheckMenuItem * _poCMI, int _iFilterIB) { ! if (! _poCMI->get_active()) ! { ! return; ! } ! ! m_poScreenArea->vSetFilterIB((EFilterIB)_iFilterIB); if (emulating) { vDrawScreen(); } ! m_poScreenConfig->vSetKey("filterIB", _iFilterIB); } + #ifdef MMX + void Window::vOnDisableMMXToggled(Gtk::CheckMenuItem * _poCMI) + { + cpu_mmx = ! _poCMI->get_active(); + m_poScreenConfig->vSetKey("filter_disable_mmx", _poCMI->get_active()); + } + #endif // MMX + void Window::vOnHelpAbout() { *************** *** 816,824 **** bool Window::bOnEmuIdle() { ! if (emulating) ! { ! m_stEmulator.emuMain(m_stEmulator.emuCount); ! } ! return true; } --- 943,947 ---- bool Window::bOnEmuIdle() { ! m_stEmulator.emuMain(m_stEmulator.emuCount); return true; } |
From: S?bastien G. <kx...@us...> - 2004-04-02 01:34:23
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26860/src/gtk Modified Files: Makefile.am Makefile.in filters.h main.cpp screenarea.cpp screenarea.h vba.glade window.cpp window.h Added Files: configfile.cpp configfile.h filters.cpp Log Message: The GTK+ frontend is growing.. the binary is now called gvba. Index: filters.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/filters.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** filters.h 29 Mar 2004 22:08:40 -0000 1.1 --- filters.h 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 57,63 **** --- 57,102 ---- void MotionBlurIB32(u8 *, u32, int, int); + namespace VBA + { + typedef void (*Filter2x)(u8 *, u32, u8 *, u8 *, u32, int, int); typedef void (*FilterIB)(u8 *, u32, int, int); + enum EFilter2x + { + FilterNone, + Filter2xSaI, + FilterSuper2xSaI, + FilterSuperEagle, + FilterPixelate, + FilterMotionBlur, + FilterAdMame2x, + FilterSimple2x, + FilterBilinear, + FilterBilinearPlus, + FilterScanlines, + FilterScanlinesTV, + FilterHq2x, + FilterLq2x + }; + + enum EFilterIB + { + FilterIBNone, + FilterIBSmart, + FilterIBMotionBlur + }; + + enum EFilterDepth + { + FilterDepth16, + FilterDepth32 + }; + + Filter2x pvGetFilter2x(EFilter2x _eFilter2x, EFilterDepth _eDepth); + FilterIB pvGetFilterIB(EFilterIB _eFilterIB, EFilterDepth _eDepth); + + } // namespace VBA + #endif // __VBA_FILTERS_H__ Index: main.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/main.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** main.cpp 29 Mar 2004 22:08:40 -0000 1.1 --- main.cpp 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 55,58 **** --- 55,59 ---- Gtk::Main::run(*poWindow); + delete poWindow; return 0; Index: screenarea.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/screenarea.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** screenarea.h 29 Mar 2004 22:10:15 -0000 1.1 --- screenarea.h 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 36,41 **** void vSetSize(int _iWidth, int _iHeight); void vSetScale(int _iScale); ! void vSetFilter2x(Filter2x _vFilter); ! void vDrawPixels(const u8 * _puiData); void vDrawColor(u32 _uiColor); // 0xRRGGBB --- 36,42 ---- void vSetSize(int _iWidth, int _iHeight); void vSetScale(int _iScale); ! void vSetFilter2x(EFilter2x _eFilter2x); ! void vSetFilterIB(EFilterIB _eFilterIB); ! void vDrawPixels(u8 * _puiData); void vDrawColor(u32 _uiColor); // 0xRRGGBB *************** *** 53,56 **** --- 54,58 ---- u8 * m_puiDelta; Filter2x m_vFilter2x; + FilterIB m_vFilterIB; void vUpdateSize(); Index: Makefile.in =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/Makefile.in,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile.in 29 Mar 2004 22:08:40 -0000 1.1 --- Makefile.in 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 151,159 **** target_os = @target_os@ target_vendor = @target_vendor@ ! bin_PROGRAMS = gVisualBoyAdvance noinst_LIBRARIES = libgba.a ! gVisualBoyAdvance_SOURCES = \ filters.h \ input.cpp \ --- 151,162 ---- target_os = @target_os@ target_vendor = @target_vendor@ ! bin_PROGRAMS = gvba noinst_LIBRARIES = libgba.a ! gvba_SOURCES = \ ! configfile.cpp \ ! configfile.h \ ! filters.cpp \ filters.h \ input.cpp \ *************** *** 170,176 **** ! gVisualBoyAdvance_LDADD = libgba.a @VBA_LIBS@ @GTKMM_LIBS@ @LIBINTL@ @SDL_LIBS@ ! gVisualBoyAdvance_CPPFLAGS = \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ --- 173,179 ---- ! gvba_LDADD = libgba.a @VBA_LIBS@ @GTKMM_LIBS@ @LIBINTL@ @SDL_LIBS@ ! gvba_CPPFLAGS = \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ *************** *** 178,182 **** ! gVisualBoyAdvance_CXXFLAGS = @GTKMM_CFLAGS@ @SDL_CFLAGS@ libgba_a_SOURCES = \ --- 181,185 ---- ! gvba_CXXFLAGS = @GTKMM_CFLAGS@ @SDL_CFLAGS@ libgba_a_SOURCES = \ *************** *** 278,303 **** libgba_a-unzip.$(OBJEXT) libgba_a_OBJECTS = $(am_libgba_a_OBJECTS) ! bin_PROGRAMS = gVisualBoyAdvance$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) ! am_gVisualBoyAdvance_OBJECTS = gVisualBoyAdvance-input.$(OBJEXT) \ ! gVisualBoyAdvance-main.$(OBJEXT) \ ! gVisualBoyAdvance-screenarea.$(OBJEXT) \ ! gVisualBoyAdvance-system.$(OBJEXT) \ ! gVisualBoyAdvance-tools.$(OBJEXT) \ ! gVisualBoyAdvance-window.$(OBJEXT) ! gVisualBoyAdvance_OBJECTS = $(am_gVisualBoyAdvance_OBJECTS) ! gVisualBoyAdvance_DEPENDENCIES = libgba.a ! gVisualBoyAdvance_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles ! @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/gVisualBoyAdvance-input.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gVisualBoyAdvance-main.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gVisualBoyAdvance-screenarea.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gVisualBoyAdvance-system.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gVisualBoyAdvance-tools.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gVisualBoyAdvance-window.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/libgba_a-2xSaI.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/libgba_a-Cheats.Po \ --- 281,305 ---- libgba_a-unzip.$(OBJEXT) libgba_a_OBJECTS = $(am_libgba_a_OBJECTS) ! bin_PROGRAMS = gvba$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) ! am_gvba_OBJECTS = gvba-configfile.$(OBJEXT) gvba-filters.$(OBJEXT) \ ! gvba-input.$(OBJEXT) gvba-main.$(OBJEXT) \ ! gvba-screenarea.$(OBJEXT) gvba-system.$(OBJEXT) \ ! gvba-tools.$(OBJEXT) gvba-window.$(OBJEXT) ! gvba_OBJECTS = $(am_gvba_OBJECTS) ! gvba_DEPENDENCIES = libgba.a ! gvba_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles ! @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/gvba-configfile.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-filters.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-input.Po ./$(DEPDIR)/gvba-main.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-screenarea.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-system.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-tools.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-window.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/libgba_a-2xSaI.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/libgba_a-Cheats.Po \ *************** *** 344,352 **** CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ ! DIST_SOURCES = $(libgba_a_SOURCES) $(gVisualBoyAdvance_SOURCES) DATA = $(dist_pkgdata_DATA) DIST_COMMON = $(dist_pkgdata_DATA) $(srcdir)/Makefile.in Makefile.am ! SOURCES = $(libgba_a_SOURCES) $(gVisualBoyAdvance_SOURCES) all: all-am --- 346,354 ---- CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ ! DIST_SOURCES = $(libgba_a_SOURCES) $(gvba_SOURCES) DATA = $(dist_pkgdata_DATA) DIST_COMMON = $(dist_pkgdata_DATA) $(srcdir)/Makefile.in Makefile.am ! SOURCES = $(libgba_a_SOURCES) $(gvba_SOURCES) all: all-am *************** *** 392,398 **** clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ! gVisualBoyAdvance$(EXEEXT): $(gVisualBoyAdvance_OBJECTS) $(gVisualBoyAdvance_DEPENDENCIES) ! @rm -f gVisualBoyAdvance$(EXEEXT) ! $(CXXLINK) $(gVisualBoyAdvance_LDFLAGS) $(gVisualBoyAdvance_OBJECTS) $(gVisualBoyAdvance_LDADD) $(LIBS) mostlyclean-compile: --- 394,400 ---- clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ! gvba$(EXEEXT): $(gvba_OBJECTS) $(gvba_DEPENDENCIES) ! @rm -f gvba$(EXEEXT) ! $(CXXLINK) $(gvba_LDFLAGS) $(gvba_OBJECTS) $(gvba_LDADD) $(LIBS) mostlyclean-compile: *************** *** 402,411 **** -rm -f *.tab.c ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gVisualBoyAdvance-input.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gVisualBoyAdvance-main.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gVisualBoyAdvance-screenarea.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gVisualBoyAdvance-system.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gVisualBoyAdvance-tools.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gVisualBoyAdvance-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgba_a-2xSaI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgba_a-Cheats.Po@am__quote@ --- 404,415 ---- -rm -f *.tab.c ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-configfile.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-filters.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-input.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-main.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-screenarea.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-system.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-tools.Po@am__quote@ ! @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgba_a-2xSaI.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgba_a-Cheats.Po@am__quote@ *************** *** 1258,1392 **** @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgba_a_CPPFLAGS) $(CPPFLAGS) $(libgba_a_CXXFLAGS) $(CXXFLAGS) -c -o libgba_a-unzip.obj `if test -f '../unzip.cpp'; then $(CYGPATH_W) '../unzip.cpp'; else $(CYGPATH_W) '$(srcdir)/../unzip.cpp'; fi` ! gVisualBoyAdvance-input.o: input.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-input.o -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-input.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-input.o `test -f 'input.cpp' || echo '$(srcdir)/'`input.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-input.Tpo" "$(DEPDIR)/gVisualBoyAdvance-input.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-input.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='input.cpp' object='gVisualBoyAdvance-input.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-input.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-input.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-input.o `test -f 'input.cpp' || echo '$(srcdir)/'`input.cpp ! gVisualBoyAdvance-input.obj: input.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-input.obj -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-input.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-input.obj `if test -f 'input.cpp'; then $(CYGPATH_W) 'input.cpp'; else $(CYGPATH_W) '$(srcdir)/input.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-input.Tpo" "$(DEPDIR)/gVisualBoyAdvance-input.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-input.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='input.cpp' object='gVisualBoyAdvance-input.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-input.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-input.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-input.obj `if test -f 'input.cpp'; then $(CYGPATH_W) 'input.cpp'; else $(CYGPATH_W) '$(srcdir)/input.cpp'; fi` ! gVisualBoyAdvance-main.o: main.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-main.o -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-main.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-main.Tpo" "$(DEPDIR)/gVisualBoyAdvance-main.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-main.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cpp' object='gVisualBoyAdvance-main.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-main.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-main.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp ! gVisualBoyAdvance-main.obj: main.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-main.obj -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-main.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-main.Tpo" "$(DEPDIR)/gVisualBoyAdvance-main.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-main.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cpp' object='gVisualBoyAdvance-main.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-main.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-main.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi` ! gVisualBoyAdvance-screenarea.o: screenarea.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-screenarea.o -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-screenarea.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-screenarea.o `test -f 'screenarea.cpp' || echo '$(srcdir)/'`screenarea.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-screenarea.Tpo" "$(DEPDIR)/gVisualBoyAdvance-screenarea.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-screenarea.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='screenarea.cpp' object='gVisualBoyAdvance-screenarea.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-screenarea.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-screenarea.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-screenarea.o `test -f 'screenarea.cpp' || echo '$(srcdir)/'`screenarea.cpp ! gVisualBoyAdvance-screenarea.obj: screenarea.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-screenarea.obj -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-screenarea.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-screenarea.obj `if test -f 'screenarea.cpp'; then $(CYGPATH_W) 'screenarea.cpp'; else $(CYGPATH_W) '$(srcdir)/screenarea.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-screenarea.Tpo" "$(DEPDIR)/gVisualBoyAdvance-screenarea.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-screenarea.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='screenarea.cpp' object='gVisualBoyAdvance-screenarea.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-screenarea.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-screenarea.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-screenarea.obj `if test -f 'screenarea.cpp'; then $(CYGPATH_W) 'screenarea.cpp'; else $(CYGPATH_W) '$(srcdir)/screenarea.cpp'; fi` ! gVisualBoyAdvance-system.o: system.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-system.o -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-system.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-system.o `test -f 'system.cpp' || echo '$(srcdir)/'`system.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-system.Tpo" "$(DEPDIR)/gVisualBoyAdvance-system.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-system.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='system.cpp' object='gVisualBoyAdvance-system.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-system.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-system.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-system.o `test -f 'system.cpp' || echo '$(srcdir)/'`system.cpp ! gVisualBoyAdvance-system.obj: system.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-system.obj -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-system.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-system.obj `if test -f 'system.cpp'; then $(CYGPATH_W) 'system.cpp'; else $(CYGPATH_W) '$(srcdir)/system.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-system.Tpo" "$(DEPDIR)/gVisualBoyAdvance-system.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-system.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='system.cpp' object='gVisualBoyAdvance-system.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-system.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-system.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-system.obj `if test -f 'system.cpp'; then $(CYGPATH_W) 'system.cpp'; else $(CYGPATH_W) '$(srcdir)/system.cpp'; fi` ! gVisualBoyAdvance-tools.o: tools.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-tools.o -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-tools.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-tools.o `test -f 'tools.cpp' || echo '$(srcdir)/'`tools.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-tools.Tpo" "$(DEPDIR)/gVisualBoyAdvance-tools.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-tools.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools.cpp' object='gVisualBoyAdvance-tools.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-tools.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-tools.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-tools.o `test -f 'tools.cpp' || echo '$(srcdir)/'`tools.cpp ! gVisualBoyAdvance-tools.obj: tools.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-tools.obj -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-tools.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-tools.Tpo" "$(DEPDIR)/gVisualBoyAdvance-tools.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-tools.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools.cpp' object='gVisualBoyAdvance-tools.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-tools.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-tools.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi` ! gVisualBoyAdvance-window.o: window.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-window.o -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-window.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-window.o `test -f 'window.cpp' || echo '$(srcdir)/'`window.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-window.Tpo" "$(DEPDIR)/gVisualBoyAdvance-window.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-window.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='window.cpp' object='gVisualBoyAdvance-window.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-window.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-window.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-window.o `test -f 'window.cpp' || echo '$(srcdir)/'`window.cpp ! gVisualBoyAdvance-window.obj: window.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -MT gVisualBoyAdvance-window.obj -MD -MP -MF "$(DEPDIR)/gVisualBoyAdvance-window.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gVisualBoyAdvance-window.obj `if test -f 'window.cpp'; then $(CYGPATH_W) 'window.cpp'; else $(CYGPATH_W) '$(srcdir)/window.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gVisualBoyAdvance-window.Tpo" "$(DEPDIR)/gVisualBoyAdvance-window.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gVisualBoyAdvance-window.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='window.cpp' object='gVisualBoyAdvance-window.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gVisualBoyAdvance-window.Po' tmpdepfile='$(DEPDIR)/gVisualBoyAdvance-window.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gVisualBoyAdvance_CPPFLAGS) $(CPPFLAGS) $(gVisualBoyAdvance_CXXFLAGS) $(CXXFLAGS) -c -o gVisualBoyAdvance-window.obj `if test -f 'window.cpp'; then $(CYGPATH_W) 'window.cpp'; else $(CYGPATH_W) '$(srcdir)/window.cpp'; fi` uninstall-info-am: dist_pkgdataDATA_INSTALL = $(INSTALL_DATA) --- 1262,1440 ---- @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgba_a_CPPFLAGS) $(CPPFLAGS) $(libgba_a_CXXFLAGS) $(CXXFLAGS) -c -o libgba_a-unzip.obj `if test -f '../unzip.cpp'; then $(CYGPATH_W) '../unzip.cpp'; else $(CYGPATH_W) '$(srcdir)/../unzip.cpp'; fi` ! gvba-configfile.o: configfile.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-configfile.o -MD -MP -MF "$(DEPDIR)/gvba-configfile.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-configfile.o `test -f 'configfile.cpp' || echo '$(srcdir)/'`configfile.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-configfile.Tpo" "$(DEPDIR)/gvba-configfile.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-configfile.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='configfile.cpp' object='gvba-configfile.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-configfile.Po' tmpdepfile='$(DEPDIR)/gvba-configfile.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-configfile.o `test -f 'configfile.cpp' || echo '$(srcdir)/'`configfile.cpp ! gvba-configfile.obj: configfile.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-configfile.obj -MD -MP -MF "$(DEPDIR)/gvba-configfile.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-configfile.obj `if test -f 'configfile.cpp'; then $(CYGPATH_W) 'configfile.cpp'; else $(CYGPATH_W) '$(srcdir)/configfile.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-configfile.Tpo" "$(DEPDIR)/gvba-configfile.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-configfile.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='configfile.cpp' object='gvba-configfile.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-configfile.Po' tmpdepfile='$(DEPDIR)/gvba-configfile.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-configfile.obj `if test -f 'configfile.cpp'; then $(CYGPATH_W) 'configfile.cpp'; else $(CYGPATH_W) '$(srcdir)/configfile.cpp'; fi` ! gvba-filters.o: filters.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-filters.o -MD -MP -MF "$(DEPDIR)/gvba-filters.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-filters.o `test -f 'filters.cpp' || echo '$(srcdir)/'`filters.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-filters.Tpo" "$(DEPDIR)/gvba-filters.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-filters.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filters.cpp' object='gvba-filters.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-filters.Po' tmpdepfile='$(DEPDIR)/gvba-filters.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-filters.o `test -f 'filters.cpp' || echo '$(srcdir)/'`filters.cpp ! gvba-filters.obj: filters.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-filters.obj -MD -MP -MF "$(DEPDIR)/gvba-filters.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-filters.obj `if test -f 'filters.cpp'; then $(CYGPATH_W) 'filters.cpp'; else $(CYGPATH_W) '$(srcdir)/filters.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-filters.Tpo" "$(DEPDIR)/gvba-filters.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-filters.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='filters.cpp' object='gvba-filters.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-filters.Po' tmpdepfile='$(DEPDIR)/gvba-filters.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-filters.obj `if test -f 'filters.cpp'; then $(CYGPATH_W) 'filters.cpp'; else $(CYGPATH_W) '$(srcdir)/filters.cpp'; fi` ! gvba-input.o: input.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-input.o -MD -MP -MF "$(DEPDIR)/gvba-input.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-input.o `test -f 'input.cpp' || echo '$(srcdir)/'`input.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-input.Tpo" "$(DEPDIR)/gvba-input.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-input.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='input.cpp' object='gvba-input.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-input.Po' tmpdepfile='$(DEPDIR)/gvba-input.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-input.o `test -f 'input.cpp' || echo '$(srcdir)/'`input.cpp ! gvba-input.obj: input.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-input.obj -MD -MP -MF "$(DEPDIR)/gvba-input.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-input.obj `if test -f 'input.cpp'; then $(CYGPATH_W) 'input.cpp'; else $(CYGPATH_W) '$(srcdir)/input.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-input.Tpo" "$(DEPDIR)/gvba-input.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-input.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='input.cpp' object='gvba-input.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-input.Po' tmpdepfile='$(DEPDIR)/gvba-input.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-input.obj `if test -f 'input.cpp'; then $(CYGPATH_W) 'input.cpp'; else $(CYGPATH_W) '$(srcdir)/input.cpp'; fi` ! gvba-main.o: main.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-main.o -MD -MP -MF "$(DEPDIR)/gvba-main.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-main.Tpo" "$(DEPDIR)/gvba-main.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-main.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cpp' object='gvba-main.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-main.Po' tmpdepfile='$(DEPDIR)/gvba-main.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-main.o `test -f 'main.cpp' || echo '$(srcdir)/'`main.cpp ! gvba-main.obj: main.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-main.obj -MD -MP -MF "$(DEPDIR)/gvba-main.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-main.Tpo" "$(DEPDIR)/gvba-main.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-main.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='main.cpp' object='gvba-main.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-main.Po' tmpdepfile='$(DEPDIR)/gvba-main.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-main.obj `if test -f 'main.cpp'; then $(CYGPATH_W) 'main.cpp'; else $(CYGPATH_W) '$(srcdir)/main.cpp'; fi` ! gvba-screenarea.o: screenarea.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-screenarea.o -MD -MP -MF "$(DEPDIR)/gvba-screenarea.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-screenarea.o `test -f 'screenarea.cpp' || echo '$(srcdir)/'`screenarea.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-screenarea.Tpo" "$(DEPDIR)/gvba-screenarea.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-screenarea.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='screenarea.cpp' object='gvba-screenarea.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-screenarea.Po' tmpdepfile='$(DEPDIR)/gvba-screenarea.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-screenarea.o `test -f 'screenarea.cpp' || echo '$(srcdir)/'`screenarea.cpp ! gvba-screenarea.obj: screenarea.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-screenarea.obj -MD -MP -MF "$(DEPDIR)/gvba-screenarea.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-screenarea.obj `if test -f 'screenarea.cpp'; then $(CYGPATH_W) 'screenarea.cpp'; else $(CYGPATH_W) '$(srcdir)/screenarea.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-screenarea.Tpo" "$(DEPDIR)/gvba-screenarea.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-screenarea.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='screenarea.cpp' object='gvba-screenarea.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-screenarea.Po' tmpdepfile='$(DEPDIR)/gvba-screenarea.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-screenarea.obj `if test -f 'screenarea.cpp'; then $(CYGPATH_W) 'screenarea.cpp'; else $(CYGPATH_W) '$(srcdir)/screenarea.cpp'; fi` ! gvba-system.o: system.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-system.o -MD -MP -MF "$(DEPDIR)/gvba-system.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-system.o `test -f 'system.cpp' || echo '$(srcdir)/'`system.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-system.Tpo" "$(DEPDIR)/gvba-system.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-system.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='system.cpp' object='gvba-system.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-system.Po' tmpdepfile='$(DEPDIR)/gvba-system.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-system.o `test -f 'system.cpp' || echo '$(srcdir)/'`system.cpp ! gvba-system.obj: system.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-system.obj -MD -MP -MF "$(DEPDIR)/gvba-system.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-system.obj `if test -f 'system.cpp'; then $(CYGPATH_W) 'system.cpp'; else $(CYGPATH_W) '$(srcdir)/system.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-system.Tpo" "$(DEPDIR)/gvba-system.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-system.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='system.cpp' object='gvba-system.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-system.Po' tmpdepfile='$(DEPDIR)/gvba-system.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-system.obj `if test -f 'system.cpp'; then $(CYGPATH_W) 'system.cpp'; else $(CYGPATH_W) '$(srcdir)/system.cpp'; fi` ! ! gvba-tools.o: tools.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-tools.o -MD -MP -MF "$(DEPDIR)/gvba-tools.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-tools.o `test -f 'tools.cpp' || echo '$(srcdir)/'`tools.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-tools.Tpo" "$(DEPDIR)/gvba-tools.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-tools.Tpo"; exit 1; \ ! @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools.cpp' object='gvba-tools.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-tools.Po' tmpdepfile='$(DEPDIR)/gvba-tools.TPo' @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-tools.o `test -f 'tools.cpp' || echo '$(srcdir)/'`tools.cpp ! ! gvba-tools.obj: tools.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-tools.obj -MD -MP -MF "$(DEPDIR)/gvba-tools.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-tools.Tpo" "$(DEPDIR)/gvba-tools.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-tools.Tpo"; exit 1; \ ! @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tools.cpp' object='gvba-tools.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-tools.Po' tmpdepfile='$(DEPDIR)/gvba-tools.TPo' @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-tools.obj `if test -f 'tools.cpp'; then $(CYGPATH_W) 'tools.cpp'; else $(CYGPATH_W) '$(srcdir)/tools.cpp'; fi` ! ! gvba-window.o: window.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-window.o -MD -MP -MF "$(DEPDIR)/gvba-window.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-window.o `test -f 'window.cpp' || echo '$(srcdir)/'`window.cpp; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-window.Tpo" "$(DEPDIR)/gvba-window.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-window.Tpo"; exit 1; \ ! @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='window.cpp' object='gvba-window.o' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-window.Po' tmpdepfile='$(DEPDIR)/gvba-window.TPo' @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-window.o `test -f 'window.cpp' || echo '$(srcdir)/'`window.cpp ! ! gvba-window.obj: window.cpp ! @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-window.obj -MD -MP -MF "$(DEPDIR)/gvba-window.Tpo" \ ! @am__fastdepCXX_TRUE@ -c -o gvba-window.obj `if test -f 'window.cpp'; then $(CYGPATH_W) 'window.cpp'; else $(CYGPATH_W) '$(srcdir)/window.cpp'; fi`; \ ! @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-window.Tpo" "$(DEPDIR)/gvba-window.Po"; \ ! @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-window.Tpo"; exit 1; \ ! @am__fastdepCXX_TRUE@ fi ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='window.cpp' object='gvba-window.obj' libtool=no @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-window.Po' tmpdepfile='$(DEPDIR)/gvba-window.TPo' @AMDEPBACKSLASH@ ! @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ! @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-window.obj `if test -f 'window.cpp'; then $(CYGPATH_W) 'window.cpp'; else $(CYGPATH_W) '$(srcdir)/window.cpp'; fi` uninstall-info-am: dist_pkgdataDATA_INSTALL = $(INSTALL_DATA) Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** window.cpp 29 Mar 2004 22:08:40 -0000 1.1 --- window.cpp 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 19,22 **** --- 19,25 ---- #include "window.h" + #include <sys/types.h> + #include <sys/stat.h> + #include <SDL.h> *************** *** 52,63 **** m_uiJoypadState(0), m_iScreenWidth(iGBAScreenWidth), ! m_iScreenHeight(iGBAScreenHeight), ! m_iScreenScale(1), ! m_vFilter2x(NULL), ! m_vFilterIB(NULL) { vInitSystem(); vInitSDL(); - vLoadKeymap(); Gtk::Container * poC; --- 55,62 ---- m_uiJoypadState(0), m_iScreenWidth(iGBAScreenWidth), ! m_iScreenHeight(iGBAScreenHeight) { vInitSystem(); vInitSDL(); Gtk::Container * poC; *************** *** 66,76 **** poC->add(*m_poScreenArea); vDrawDefaultScreen(); - m_poScreenArea->vSetFilter2x(SuperEagle32); // TEST m_poScreenArea->show(); m_poFilePauseItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilePause")); ! m_poFilePauseItem->signal_toggled().connect(SigC::slot(*this, &Window::vOnFilePause)); - Gtk::MenuItem * poMI; poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileOpen")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileOpen)); --- 65,100 ---- poC->add(*m_poScreenArea); vDrawDefaultScreen(); m_poScreenArea->show(); + // Get config + // + vInitConfig(); + + m_sUserDataDir = Glib::get_home_dir() + "/.gvba"; + m_sConfigFile = m_sUserDataDir + "/config"; + + if (! Glib::file_test(m_sUserDataDir, Glib::FILE_TEST_EXISTS)) + { + mkdir(m_sUserDataDir.c_str(), 0777); + } + if (Glib::file_test(m_sConfigFile, Glib::FILE_TEST_EXISTS)) + { + vLoadConfig(m_sConfigFile); + } + else + { + vSaveConfig(m_sConfigFile); + } + + vLoadKeymap(); + + Gtk::MenuItem * poMI; + Gtk::CheckMenuItem * poCMI; + + // File menu + // m_poFilePauseItem = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("FilePause")); ! m_poFilePauseItem->signal_toggled().connect(SigC::slot(*this, &Window::vOnFilePauseToggled)); poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileOpen")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileOpen)); *************** *** 79,93 **** poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileClose")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileClose)); ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileQuit")); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileQuit)); ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("VideoZoom1x")); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnVideoZoom1x)); ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("VideoZoom2x")); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnVideoZoom2x)); ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("VideoZoom3x")); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnVideoZoom3x)); ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("VideoZoom4x")); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnVideoZoom4x)); poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("HelpAbout")); --- 103,300 ---- poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileClose")); poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileClose)); ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileExit")); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnFileExit)); ! // Frameskip menu ! // ! struct ! { ! const char * m_csName; ! int m_iFrameskip; ! } ! astFrameskip[] = ! { ! { "FrameskipAutomatic", -1 }, ! { "Frameskip0", 0 }, ! { "Frameskip1", 1 }, ! { "Frameskip2", 2 }, ! { "Frameskip3", 3 }, ! { "Frameskip4", 4 }, ! { "Frameskip5", 5 }, ! { "Frameskip6", 6 }, ! { "Frameskip7", 7 }, ! { "Frameskip8", 8 }, ! { "Frameskip9", 9 } ! }; ! int iDefaultFrameskip; ! if (m_poScreenConfig->sGetKey("frameskip") == "auto") ! { ! iDefaultFrameskip = -1; ! } ! else ! { ! iDefaultFrameskip = m_poScreenConfig->oGetKey<int>("frameskip"); ! } ! for (guint i = 0; i < sizeof(astFrameskip) / sizeof(astFrameskip[0]); i++) ! { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astFrameskip[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<int>(SigC::slot(*this, &Window::vOnFrameskipSelected), ! astFrameskip[i].m_iFrameskip)); ! if (astFrameskip[i].m_iFrameskip == iDefaultFrameskip) ! { ! poMI->activate(); ! } ! } ! ! // Throttle menu ! // ! struct ! { ! const char * m_csName; ! int m_iThrottle; ! } ! astThrottle[] = ! { ! { "ThrottleNoThrottle", 0 }, ! { "Throttle25", 25 }, ! { "Throttle50", 50 }, ! { "Throttle100", 100 }, ! { "Throttle150", 150 }, ! { "Throttle200", 200 } ! }; ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("ThrottleOther")); ! poMI->activate(); ! poMI->signal_activate().connect(SigC::slot(*this, &Window::vOnThrottleOther)); ! ! int iDefaultThrottle = m_poScreenConfig->oGetKey<int>("throttle"); ! for (guint i = 0; i < sizeof(astThrottle) / sizeof(astThrottle[0]); i++) ! { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astThrottle[i].m_csName)); ! if (astThrottle[i].m_iThrottle == iDefaultThrottle) ! { ! poMI->activate(); ! } ! poMI->signal_activate().connect(SigC::bind<int>(SigC::slot(*this, &Window::vOnThrottleSelected), ! astThrottle[i].m_iThrottle)); ! } ! vSetThrottle(iDefaultThrottle); ! ! // Video menu ! // ! struct ! { ! const char * m_csName; ! int m_iScale; ! } ! astVideoScale[] = ! { ! { "Video1x", 1 }, ! { "Video2x", 2 }, ! { "Video3x", 3 }, ! { "Video4x", 4 }, ! { "Video5x", 5 }, ! { "Video6x", 6 } ! }; ! int iDefaultScale = m_poScreenConfig->oGetKey<int>("scale"); ! for (guint i = 0; i < sizeof(astVideoScale) / sizeof(astVideoScale[0]); i++) ! { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astVideoScale[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<int>(SigC::slot(*this, &Window::vOnVideoScaleSelected), ! astVideoScale[i].m_iScale)); ! if (astVideoScale[i].m_iScale == iDefaultScale) ! { ! poMI->activate(); ! } ! } ! ! // Layers menu ! // ! struct ! { ! const char * m_csName; ! int m_iLayer; ! bool m_bChecked; ! } ! astLayer[] = ! { ! { "LayersBg0", 0, m_poScreenConfig->oGetKey<bool>("layer_bg0") }, ! { "LayersBg1", 1, m_poScreenConfig->oGetKey<bool>("layer_bg1") }, ! { "LayersBg2", 2, m_poScreenConfig->oGetKey<bool>("layer_bg2") }, ! { "LayersBg3", 3, m_poScreenConfig->oGetKey<bool>("layer_bg3") }, ! { "LayersObj", 4, m_poScreenConfig->oGetKey<bool>("layer_obj") }, ! { "LayersWin0", 5, m_poScreenConfig->oGetKey<bool>("layer_win0") }, ! { "LayersWin1", 6, m_poScreenConfig->oGetKey<bool>("layer_win1") }, ! { "LayersObjWin", 7, m_poScreenConfig->oGetKey<bool>("layer_objwin") } ! }; ! for (guint i = 0; i < sizeof(astLayer) / sizeof(astLayer[0]); i++) ! { ! poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astLayer[i].m_csName)); ! poCMI->set_active(astLayer[i].m_bChecked); ! vSetLayer(astLayer[i].m_iLayer, astLayer[i].m_bChecked); ! poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( ! SigC::slot(*this, &Window::vOnLayerToggled), ! poCMI, astLayer[i].m_iLayer)); ! } ! ! // Filter menu ! // ! struct ! { ! const char * m_csName; ! EFilter2x m_eFilter2x; ! } ! astFilter2x[] = ! { ! { "FilterNone", FilterNone }, ! { "FilterTVMode", FilterScanlinesTV }, ! { "Filter2xSaI", Filter2xSaI }, ! { "FilterSuper2xSaI", FilterSuper2xSaI }, ! { "FilterSuperEagle", FilterSuperEagle }, ! { "FilterPixelate", FilterPixelate }, ! { "FilterMotionBlur", FilterMotionBlur }, ! { "FilterAdvanceMame2x", FilterAdMame2x }, ! { "FilterSimple2x", FilterSimple2x }, ! { "FilterBilinear", FilterBilinear }, ! { "FilterBilinearPlus", FilterBilinearPlus }, ! { "FilterScanlines", FilterScanlines }, ! { "FilterHq2x", FilterHq2x }, ! { "FilterLq2x", FilterLq2x } ! }; ! EFilter2x eDefaultFilter2x = (EFilter2x)m_poScreenConfig->oGetKey<int>("filter2x"); ! for (guint i = 0; i < sizeof(astFilter2x) / sizeof(astFilter2x[0]); i++) ! { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astFilter2x[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<EFilter2x>(SigC::slot(*this, &Window::vOnFilter2xSelected), ! astFilter2x[i].m_eFilter2x)); ! if (astFilter2x[i].m_eFilter2x == eDefaultFilter2x) ! { ! poMI->activate(); ! } ! } ! ! // Interframe blending menu ! // ! struct ! { ! const char * m_csName; ! EFilterIB m_eFilterIB; ! } ! astFilterIB[] = ! { ! { "IFBNone", FilterIBNone }, ! { "IFBSmart", FilterIBSmart }, ! { "IFBMotionBlur", FilterIBMotionBlur } ! }; ! EFilterIB eDefaultFilterIB = (EFilterIB)m_poScreenConfig->oGetKey<int>("filterIB"); ! for (guint i = 0; i < sizeof(astFilterIB) / sizeof(astFilterIB[0]); i++) ! { ! poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget(astFilterIB[i].m_csName)); ! poMI->signal_activate().connect(SigC::bind<EFilterIB>(SigC::slot(*this, &Window::vOnFilterIBSelected), ! astFilterIB[i].m_eFilterIB)); ! if (astFilterIB[i].m_eFilterIB == eDefaultFilterIB) ! { ! poMI->activate(); ! } ! } poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("HelpAbout")); *************** *** 107,110 **** --- 314,318 ---- { vOnFileClose(); + vSaveConfig(m_sConfigFile); if (m_poFileOpenDialog != NULL) *************** *** 136,140 **** systemVerbose = 0; systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; ! systemFrameSkip = 5; // TEST systemSoundOn = false; --- 344,348 ---- systemVerbose = 0; systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; ! systemFrameSkip = 0; systemSoundOn = false; *************** *** 157,160 **** --- 365,369 ---- } + gbFrameSkip = 0; // TODO : GB init and 16-bit color map (?) } *************** *** 168,172 **** int iFlags = (SDL_INIT_AUDIO ! | SDL_INIT_TIMER | SDL_INIT_NOPARACHUTE); --- 377,381 ---- int iFlags = (SDL_INIT_AUDIO ! | SDL_INIT_TIMER // useful for SDL_GetTicks ? | SDL_INIT_NOPARACHUTE); *************** *** 180,183 **** --- 389,446 ---- } + void Window::vInitConfig() + { + m_oConfig.vClear(); + + m_poScreenConfig = m_oConfig.poAddSection("Screen"); + m_poScreenConfig->vSetKey ("frameskip", "auto" ); + m_poScreenConfig->vSetKey ("throttle", 0 ); + m_poScreenConfig->vSetKey ("scale", 1 ); + m_poScreenConfig->vSetKey ("layer_bg0", true ); + m_poScreenConfig->vSetKey ("layer_bg1", true ); + m_poScreenConfig->vSetKey ("layer_bg2", true ); + m_poScreenConfig->vSetKey ("layer_bg3", true ); + m_poScreenConfig->vSetKey ("layer_obj", true ); + m_poScreenConfig->vSetKey ("layer_win0", true ); + m_poScreenConfig->vSetKey ("layer_win1", true ); + m_poScreenConfig->vSetKey ("layer_objwin", true ); + m_poScreenConfig->vSetKey<int>("filter2x", FilterNone ); + m_poScreenConfig->vSetKey<int>("filterIB", FilterIBNone ); + } + + void Window::vLoadConfig(const std::string & _sFilename) + { + try + { + m_oConfig.vLoad(_sFilename); + } + catch (const Glib::Error & e) + { + Gtk::MessageDialog oDialog(*this, + e.what(), + Gtk::MESSAGE_ERROR, + Gtk::BUTTONS_CLOSE); + oDialog.run(); + } + + // TODO : check that values are valid + } + + void Window::vSaveConfig(const std::string & _sFilename) + { + try + { + m_oConfig.vSave(_sFilename); + } + catch (const Glib::Error & e) + { + Gtk::MessageDialog oDialog(*this, + e.what(), + Gtk::MESSAGE_ERROR, + Gtk::BUTTONS_CLOSE); + oDialog.run(); + } + } + void Window::vLoadKeymap() { *************** *** 204,213 **** void Window::vUpdateScreen() { ! g_return_if_fail(m_iScreenWidth >= 1 ! && m_iScreenHeight >= 1 ! && m_iScreenScale >= 1); m_poScreenArea->vSetSize(m_iScreenWidth, m_iScreenHeight); ! m_poScreenArea->vSetScale(m_iScreenScale); resize(1, 1); --- 467,474 ---- void Window::vUpdateScreen() { ! g_return_if_fail(m_iScreenWidth >= 1 && m_iScreenHeight >= 1); m_poScreenArea->vSetSize(m_iScreenWidth, m_iScreenHeight); ! m_poScreenArea->vSetScale(m_poScreenConfig->oGetKey<int>("scale")); resize(1, 1); *************** *** 237,241 **** vOnFileClose(); ! m_sFilename = _rsFilename; const char * csFilename = _rsFilename.c_str(); --- 498,502 ---- vOnFileClose(); ! m_sRomFile = _rsFilename; const char * csFilename = _rsFilename.c_str(); *************** *** 282,288 **** gbBorderRowSkip = 0; } - - // TODO - //systemFrameSkip = gbFrameSkip; } } --- 543,546 ---- *************** *** 314,320 **** m_iScreenWidth = iGBAScreenWidth; m_iScreenHeight = iGBAScreenHeight; - - // TODO - //systemFrameSkip = frameSkip; } } --- 572,575 ---- *************** *** 347,351 **** // TODO : from battery dir ! std::string sBattery = sCutSuffix(m_sFilename) + ".sav"; if (m_stEmulator.emuReadBattery(sBattery.c_str())) { --- 602,606 ---- // TODO : from battery dir ! std::string sBattery = sCutSuffix(m_sRomFile) + ".sav"; if (m_stEmulator.emuReadBattery(sBattery.c_str())) { *************** *** 358,362 **** // TODO : from battery dir ! std::string sBattery = sCutSuffix(m_sFilename) + ".sav"; if (m_stEmulator.emuWriteBattery(sBattery.c_str())) { --- 613,617 ---- // TODO : from battery dir ! std::string sBattery = sCutSuffix(m_sRomFile) + ".sav"; if (m_stEmulator.emuWriteBattery(sBattery.c_str())) { *************** *** 391,394 **** --- 646,682 ---- } + void Window::vSetThrottle(int _iPercent) + { + // TODO + m_poScreenConfig->vSetKey("throttle", _iPercent); + } + + void Window::vSetLayer(int _iLayer, bool _bVisible) + { + int iMask = (0x0100 << _iLayer); + if (_bVisible) + { + layerSettings |= iMask; + } + else + { + layerSettings &= ~iMask; + } + layerEnable = DISPCNT & layerSettings; + + const char * acsLayers[] = + { + "layer_bg0", + "layer_bg1", + "layer_bg2", + "layer_bg3", + "layer_obj", + "layer_win0", + "layer_win1", + "layer_objwin" + }; + m_poScreenConfig->vSetKey(acsLayers[_iLayer], _bVisible); + } + void Window::vOnFileOpen() { *************** *** 396,409 **** { m_poFileOpenDialog = new Gtk::FileSelection(_("Open a ROM")); } m_poFileOpenDialog->show(); ! int iResponse = m_poFileOpenDialog->run(); ! if (iResponse == Gtk::RESPONSE_OK) { ! if (! bLoadROM(m_poFileOpenDialog->get_filename())) { ! return; } } --- 684,697 ---- { m_poFileOpenDialog = new Gtk::FileSelection(_("Open a ROM")); + m_poFileOpenDialog->set_transient_for(*this); } m_poFileOpenDialog->show(); ! while (m_poFileOpenDialog->run() == Gtk::RESPONSE_OK) { ! if (bLoadROM(m_poFileOpenDialog->get_filename())) { ! break; } } *************** *** 412,416 **** } ! void Window::vOnFilePause() { if (emulating) --- 700,704 ---- } ! void Window::vOnFilePauseToggled() { if (emulating) *************** *** 450,482 **** } ! void Window::vOnFileQuit() { hide(); } ! void Window::vOnVideoZoom1x() { ! m_iScreenScale = 1; ! vUpdateScreen(); } ! void Window::vOnVideoZoom2x() {... [truncated message content] |
From: S?bastien G. <kx...@us...> - 2004-04-02 01:34:22
|
Update of /cvsroot/vba/VisualBoyAdvance/po In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26860/po Modified Files: fr.gmo fr.po vba-1.7.2.pot Log Message: The GTK+ frontend is growing.. the binary is now called gvba. Index: fr.po =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/fr.po,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** fr.po 29 Mar 2004 22:08:38 -0000 1.1 --- fr.po 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 10,15 **** "Project-Id-Version: VisualBoyAdvance 1.7.2\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-03-29 19:53+0200\n" ! "PO-Revision-Date: 2004-03-29 20:04+0200\n" "Last-Translator: Sébastien Guignot <kx...@ts...>\n" "Language-Team: French <@>\n" --- 10,15 ---- "Project-Id-Version: VisualBoyAdvance 1.7.2\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-02 03:28+0200\n" ! "PO-Revision-Date: 2004-04-02 03:24+0200\n" "Last-Translator: Sébastien Guignot <kx...@ts...>\n" "Language-Team: French <@>\n" *************** *** 26,100 **** msgstr "_Fichier" ! #: src/gtk/vba.glade:52 msgid "_Pause" msgstr "_Pause" ! #: src/gtk/vba.glade:61 msgid "_Reset" msgstr "_Reset" ! #: src/gtk/vba.glade:107 msgid "_Video" msgstr "_Vidéo" ! #: src/gtk/vba.glade:116 ! msgid "_Zoom" ! msgstr "_Zoom" ! ! #: src/gtk/vba.glade:125 msgid "_1x" msgstr "_1x" ! #: src/gtk/vba.glade:134 msgid "_2x" msgstr "_2x" ! #: src/gtk/vba.glade:144 msgid "_3x" msgstr "_3x" ! #: src/gtk/vba.glade:154 msgid "_4x" msgstr "_4x" ! #: src/gtk/vba.glade:172 msgid "_Help" msgstr "_Aide" ! #: src/gtk/vba.glade:181 msgid "_About" msgstr "à _propos" ! #: src/gtk/vba.glade:222 msgid "About VBA" msgstr "à propos de VBA" ! #: src/gtk/vba.glade:287 msgid "An emulator for Gameboy⢠and GameboyAdvanceâ¢." msgstr "Ãmulateur pour Gameboy⢠et GameboyAdvanceâ¢." ! #: src/gtk/vba.glade:309 msgid "<small>Copyright © 1999-2004 Forgotten</small>" msgstr "<small>Copyright © 1999-2004 Forgotten</small>" ! #: src/gtk/window.cpp:245 #, c-format msgid "Unknown file type %s" msgstr "Type de fichier inconnu %s" ! #: src/gtk/window.cpp:324 #, c-format msgid "Failed to load file %s" msgstr "Le chargement du fichier %s a échoué" ! #: src/gtk/window.cpp:352 msgid "Loaded battery" msgstr "Sauvegarde chargée" ! #: src/gtk/window.cpp:363 msgid "Saved battery" msgstr "Sauvegarde effectuée" ! #: src/gtk/window.cpp:397 msgid "Open a ROM" msgstr "Ouvrir une ROM" --- 26,588 ---- msgstr "_Fichier" ! #: src/gtk/vba.glade:44 ! msgid "_Open..." ! msgstr "_Ouvrir..." ! ! #: src/gtk/vba.glade:71 ! msgid "_Load..." ! msgstr "_Charger..." ! ! #: src/gtk/vba.glade:80 ! msgid "_Save..." ! msgstr "_Enregistrer..." ! ! #: src/gtk/vba.glade:89 ! msgid "Loa_d game" ! msgstr "C_harger une partie" ! ! #: src/gtk/vba.glade:97 ! msgid "S_ave game" ! msgstr "E_nregistrer une partie" ! ! #: src/gtk/vba.glade:111 msgid "_Pause" msgstr "_Pause" ! #: src/gtk/vba.glade:121 msgid "_Reset" msgstr "_Reset" ! #: src/gtk/vba.glade:136 ! msgid "Rece_nt" ! msgstr "Récen_t" ! ! #: src/gtk/vba.glade:150 ! msgid "_Import" ! msgstr "_Importer" ! ! #: src/gtk/vba.glade:158 ! msgid "E_xport" ! msgstr "E_xporter" ! ! #: src/gtk/vba.glade:172 ! msgid "Screen capt_ure..." ! msgstr "Capt_ure d'écran..." ! ! #: src/gtk/vba.glade:180 ! msgid "RO_M information..." ! msgstr "Informations sur la RO_M..." ! ! #: src/gtk/vba.glade:194 ! msgid "_Close" ! msgstr "_Fermer" ! ! #: src/gtk/vba.glade:214 ! msgid "_Exit" ! msgstr "_Quitter" ! ! #: src/gtk/vba.glade:239 ! msgid "_Options" ! msgstr "_Options" ! ! #: src/gtk/vba.glade:248 ! msgid "_Frameskip" ! msgstr "" ! ! #: src/gtk/vba.glade:257 ! msgid "_Throttle" ! msgstr "_Vitesse" ! ! #: src/gtk/vba.glade:266 ! msgid "_No throttle" ! msgstr "_Aucune" ! ! #: src/gtk/vba.glade:275 src/gtk/vba.glade:994 ! msgid "25%" ! msgstr "25%" ! ! #: src/gtk/vba.glade:285 src/gtk/vba.glade:1003 ! msgid "50%" ! msgstr "50%" ! ! #: src/gtk/vba.glade:295 src/gtk/vba.glade:1013 ! msgid "100%" ! msgstr "100%" ! ! #: src/gtk/vba.glade:305 ! msgid "150%" ! msgstr "150%" ! ! #: src/gtk/vba.glade:315 src/gtk/vba.glade:1023 ! msgid "200%" ! msgstr "200%" ! ! #: src/gtk/vba.glade:325 ! msgid "_Other..." ! msgstr "A_utre..." ! ! #: src/gtk/vba.glade:345 src/gtk/vba.glade:689 src/gtk/vba.glade:1094 ! msgid "_Automatic" ! msgstr "_Automatique" ! ! #: src/gtk/vba.glade:354 ! msgid "_0" ! msgstr "_0" ! ! #: src/gtk/vba.glade:364 src/gtk/vba.glade:1432 ! msgid "_1" ! msgstr "_1" ! ! #: src/gtk/vba.glade:374 src/gtk/vba.glade:1441 ! msgid "_2" ! msgstr "_2" ! ! #: src/gtk/vba.glade:384 src/gtk/vba.glade:1451 ! msgid "_3" ! msgstr "_3" ! ! #: src/gtk/vba.glade:394 src/gtk/vba.glade:1461 ! msgid "_4" ! msgstr "_4" ! ! #: src/gtk/vba.glade:404 ! msgid "_5" ! msgstr "_5" ! ! #: src/gtk/vba.glade:414 ! msgid "_6" ! msgstr "_6" ! ! #: src/gtk/vba.glade:424 ! msgid "_7" ! msgstr "_7" ! ! #: src/gtk/vba.glade:434 ! msgid "_8" ! msgstr "_8" ! ! #: src/gtk/vba.glade:444 ! msgid "_9" ! msgstr "_9" ! ! #: src/gtk/vba.glade:458 msgid "_Video" msgstr "_Vidéo" ! #: src/gtk/vba.glade:467 msgid "_1x" msgstr "_1x" ! #: src/gtk/vba.glade:476 msgid "_2x" msgstr "_2x" ! #: src/gtk/vba.glade:486 msgid "_3x" msgstr "_3x" ! #: src/gtk/vba.glade:496 msgid "_4x" msgstr "_4x" ! #: src/gtk/vba.glade:506 ! msgid "_5x" ! msgstr "_5x" ! ! #: src/gtk/vba.glade:516 ! msgid "_6x" ! msgstr "_6x" ! ! #: src/gtk/vba.glade:532 ! msgid "_Layers" ! msgstr "" ! ! #: src/gtk/vba.glade:541 ! msgid "BG0" ! msgstr "BG0" ! ! #: src/gtk/vba.glade:551 ! msgid "BG1" ! msgstr "BG1" ! ! #: src/gtk/vba.glade:561 ! msgid "BG2" ! msgstr "BG2" ! ! #: src/gtk/vba.glade:571 ! msgid "BG3" ! msgstr "BG3" ! ! #: src/gtk/vba.glade:581 ! msgid "OBJ" ! msgstr "OBJ" ! ! #: src/gtk/vba.glade:591 ! msgid "WIN0" ! msgstr "WIN0" ! ! #: src/gtk/vba.glade:601 ! msgid "WIN1" ! msgstr "WIN1" ! ! #: src/gtk/vba.glade:611 ! msgid "OBJWIN" ! msgstr "OBJWIN" ! ! #: src/gtk/vba.glade:629 ! msgid "_Emulator" ! msgstr "_Ãmulateur" ! ! #: src/gtk/vba.glade:638 ! msgid "Show speed" ! msgstr "Affichage de la vitesse" ! ! #: src/gtk/vba.glade:647 src/gtk/vba.glade:738 ! msgid "None" ! msgstr "Aucun" ! ! #: src/gtk/vba.glade:656 ! msgid "Percentage" ! msgstr "Pourcentage" ! ! #: src/gtk/vba.glade:666 ! msgid "Detailed" ! msgstr "Détaillé" ! ! #: src/gtk/vba.glade:680 ! msgid "Save type" ! msgstr "Type de sauvegarde" ! ! #: src/gtk/vba.glade:698 ! msgid "EEPROM" ! msgstr "EEPROM" ! ! #: src/gtk/vba.glade:708 ! msgid "SRAM" ! msgstr "SRAM" ! ! #: src/gtk/vba.glade:718 ! msgid "Flash" ! msgstr "Flash" ! ! #: src/gtk/vba.glade:728 ! msgid "EEPROM+Sensor" ! msgstr "EEPROM+Sensor" ! ! #: src/gtk/vba.glade:754 ! msgid "Flash 64K" ! msgstr "Flash 64K" ! ! #: src/gtk/vba.glade:763 ! msgid "Flash 128K" ! msgstr "Flash 128K" ! ! #: src/gtk/vba.glade:777 ! msgid "_Use BIOS file" ! msgstr "_Utiliser un fichier BIOS" ! ! #: src/gtk/vba.glade:786 ! msgid "_Select BIOS file..." ! msgstr "_Sélectionner le fichier BIOS..." ! ! #: src/gtk/vba.glade:798 ! msgid "_Sound" ! msgstr "_Son" ! ! #: src/gtk/vba.glade:807 ! msgid "O_ff" ! msgstr "" ! ! #: src/gtk/vba.glade:816 ! msgid "_Mute" ! msgstr "_Muet" ! ! #: src/gtk/vba.glade:826 ! msgid "_On" ! msgstr "" ! ! #: src/gtk/vba.glade:842 ! msgid "Use old synchronization" ! msgstr "Utiliser l'ancienne synchronisation" ! ! #: src/gtk/vba.glade:857 ! msgid "Echo" ! msgstr "Ãcho" ! ! #: src/gtk/vba.glade:866 ! msgid "Low pass filter" ! msgstr "" ! ! #: src/gtk/vba.glade:875 ! msgid "Reverse stereo" ! msgstr "" ! ! #: src/gtk/vba.glade:890 ! msgid "Channel _1" ! msgstr "" ! ! #: src/gtk/vba.glade:899 ! msgid "Channel _2" ! msgstr "" ! ! #: src/gtk/vba.glade:908 ! msgid "Channel _3" ! msgstr "" ! ! #: src/gtk/vba.glade:917 ! msgid "Channel _4" ! msgstr "" ! ! #: src/gtk/vba.glade:926 ! msgid "Channel _A" ! msgstr "" ! ! #: src/gtk/vba.glade:935 ! msgid "Channel _B" ! msgstr "" ! ! #: src/gtk/vba.glade:950 ! msgid "11 _Khz" ! msgstr "11 _Khz" ! ! #: src/gtk/vba.glade:959 ! msgid "22 K_hz" ! msgstr "22 K_hz" ! ! #: src/gtk/vba.glade:969 ! msgid "44 Kh_z" ! msgstr "44 Kh_z" ! ! #: src/gtk/vba.glade:985 ! msgid "_Volume" ! msgstr "_Volume" ! ! #: src/gtk/vba.glade:1033 ! msgid "300%" ! msgstr "300%" ! ! #: src/gtk/vba.glade:1043 ! msgid "400%" ! msgstr "400%" ! ! #: src/gtk/vba.glade:1061 ! msgid "_Gameboy" ! msgstr "_Gameboy" ! ! #: src/gtk/vba.glade:1070 ! msgid "_Border" ! msgstr "" ! ! #: src/gtk/vba.glade:1079 ! msgid "_Printer" ! msgstr "" ! ! #: src/gtk/vba.glade:1103 ! msgid "_GBA" ! msgstr "_GBA" ! ! #: src/gtk/vba.glade:1113 ! msgid "_CGB/GBC" ! msgstr "_CGB/GBC" ! ! #: src/gtk/vba.glade:1123 ! msgid "_SGB" ! msgstr "_SGB" ! ! #: src/gtk/vba.glade:1133 ! msgid "SGB_2" ! msgstr "SGB_2" ! ! #: src/gtk/vba.glade:1143 ! msgid "G_B" ! msgstr "G_B" ! ! #: src/gtk/vba.glade:1157 ! msgid "F_ilter" ! msgstr "_Filtre" ! ! #: src/gtk/vba.glade:1166 ! msgid "Interframe _blending" ! msgstr "" ! ! #: src/gtk/vba.glade:1175 src/gtk/vba.glade:1214 ! msgid "_None" ! msgstr "Aucu_n" ! ! #: src/gtk/vba.glade:1184 ! msgid "_Smart" ! msgstr "" ! ! #: src/gtk/vba.glade:1194 src/gtk/vba.glade:1273 ! msgid "_Motion Blur" ! msgstr "" ! ! #: src/gtk/vba.glade:1223 ! msgid "_TV Mode" ! msgstr "" ! ! #: src/gtk/vba.glade:1233 ! msgid "_2xSaI" ! msgstr "" ! ! #: src/gtk/vba.glade:1243 ! msgid "_Super 2xSaI" ! msgstr "" ! ! #: src/gtk/vba.glade:1253 ! msgid "Super _Eagle" ! msgstr "" ! ! #: src/gtk/vba.glade:1263 ! msgid "_Pixelate" ! msgstr "" ! ! #: src/gtk/vba.glade:1283 ! msgid "_AdvanceMAME 2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1293 ! msgid "S_imple 2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1303 ! msgid "Bilinea_r" ! msgstr "" ! ! #: src/gtk/vba.glade:1313 ! msgid "Bilinear Pl_us" ! msgstr "" ! ! #: src/gtk/vba.glade:1323 ! msgid "S_canlines" ! msgstr "" ! ! #: src/gtk/vba.glade:1333 ! msgid "h_q2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1343 ! msgid "_lq2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1359 ! msgid "_Disable MMX" ! msgstr "_Désactiver MMX" ! ! #: src/gtk/vba.glade:1372 ! msgid "_Joypad" ! msgstr "" ! ! #: src/gtk/vba.glade:1381 ! msgid "_Configure" ! msgstr "_Configurer" ! ! #: src/gtk/vba.glade:1390 ! msgid "_1..." ! msgstr "_1..." ! ! #: src/gtk/vba.glade:1398 ! msgid "_2..." ! msgstr "_2..." ! ! #: src/gtk/vba.glade:1406 ! msgid "_3..." ! msgstr "_3..." ! ! #: src/gtk/vba.glade:1414 ! msgid "_4..." ! msgstr "_4..." ! ! #: src/gtk/vba.glade:1477 ! msgid "_Motion configure..." ! msgstr "" ! ! #: src/gtk/vba.glade:1491 ! msgid "_Autofire" ! msgstr "" ! ! #: src/gtk/vba.glade:1500 ! msgid "_A" ! msgstr "_A" ! ! #: src/gtk/vba.glade:1510 ! msgid "_B" ! msgstr "_B" ! ! #: src/gtk/vba.glade:1520 ! msgid "_L" ! msgstr "_L" ! ! #: src/gtk/vba.glade:1530 ! msgid "_R" ! msgstr "_R" ! ! #: src/gtk/vba.glade:1552 ! msgid "_Tools" ! msgstr "Ou_tils" ! ! #: src/gtk/vba.glade:1561 ! msgid "_GDB" ! msgstr "_GDB" ! ! #: src/gtk/vba.glade:1570 ! msgid "_Wait for connection..." ! msgstr "" ! ! #: src/gtk/vba.glade:1578 ! msgid "_Load and wait..." ! msgstr "" ! ! #: src/gtk/vba.glade:1586 ! msgid "_Break into GDB" ! msgstr "" ! ! #: src/gtk/vba.glade:1594 ! msgid "_Disconnect" ! msgstr "" ! ! #: src/gtk/vba.glade:1606 ! msgid "_Cheats" ! msgstr "" ! ! #: src/gtk/vba.glade:1618 msgid "_Help" msgstr "_Aide" ! #: src/gtk/vba.glade:1627 msgid "_About" msgstr "à _propos" ! #: src/gtk/vba.glade:1668 msgid "About VBA" msgstr "à propos de VBA" ! #: src/gtk/vba.glade:1733 msgid "An emulator for Gameboy⢠and GameboyAdvanceâ¢." msgstr "Ãmulateur pour Gameboy⢠et GameboyAdvanceâ¢." ! #: src/gtk/vba.glade:1755 msgid "<small>Copyright © 1999-2004 Forgotten</small>" msgstr "<small>Copyright © 1999-2004 Forgotten</small>" ! #: src/gtk/window.cpp:506 #, c-format msgid "Unknown file type %s" msgstr "Type de fichier inconnu %s" ! #: src/gtk/window.cpp:579 #, c-format msgid "Failed to load file %s" msgstr "Le chargement du fichier %s a échoué" ! #: src/gtk/window.cpp:607 msgid "Loaded battery" msgstr "Sauvegarde chargée" ! #: src/gtk/window.cpp:618 msgid "Saved battery" msgstr "Sauvegarde effectuée" ! #: src/gtk/window.cpp:685 msgid "Open a ROM" msgstr "Ouvrir une ROM" Index: vba-1.7.2.pot =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/vba-1.7.2.pot,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** vba-1.7.2.pot 29 Mar 2004 22:08:38 -0000 1.1 --- vba-1.7.2.pot 2 Apr 2004 01:22:17 -0000 1.2 *************** *** 9,13 **** "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-03-29 19:53+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" --- 9,13 ---- "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: undefined\n" ! "POT-Creation-Date: 2004-04-02 03:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" *************** *** 25,99 **** msgstr "" ! #: src/gtk/vba.glade:52 msgid "_Pause" msgstr "" ! #: src/gtk/vba.glade:61 msgid "_Reset" msgstr "" ! #: src/gtk/vba.glade:107 ! msgid "_Video" msgstr "" ! #: src/gtk/vba.glade:116 ! msgid "_Zoom" msgstr "" ! #: src/gtk/vba.glade:125 msgid "_1x" msgstr "" ! #: src/gtk/vba.glade:134 msgid "_2x" msgstr "" ! #: src/gtk/vba.glade:144 msgid "_3x" msgstr "" ! #: src/gtk/vba.glade:154 msgid "_4x" msgstr "" ! #: src/gtk/vba.glade:172 msgid "_Help" msgstr "" ! #: src/gtk/vba.glade:181 msgid "_About" msgstr "" ! #: src/gtk/vba.glade:222 msgid "About VBA" msgstr "" ! #: src/gtk/vba.glade:287 msgid "An emulator for Gameboy⢠and GameboyAdvanceâ¢." msgstr "" ! #: src/gtk/vba.glade:309 msgid "<small>Copyright © 1999-2004 Forgotten</small>" msgstr "" ! #: src/gtk/window.cpp:245 #, c-format msgid "Unknown file type %s" msgstr "" ! #: src/gtk/window.cpp:324 #, c-format msgid "Failed to load file %s" msgstr "" ! #: src/gtk/window.cpp:352 msgid "Loaded battery" msgstr "" ! #: src/gtk/window.cpp:363 msgid "Saved battery" msgstr "" ! #: src/gtk/window.cpp:397 msgid "Open a ROM" msgstr "" --- 25,587 ---- msgstr "" ! #: src/gtk/vba.glade:44 ! msgid "_Open..." ! msgstr "" ! ! #: src/gtk/vba.glade:71 ! msgid "_Load..." ! msgstr "" ! ! #: src/gtk/vba.glade:80 ! msgid "_Save..." ! msgstr "" ! ! #: src/gtk/vba.glade:89 ! msgid "Loa_d game" ! msgstr "" ! ! #: src/gtk/vba.glade:97 ! msgid "S_ave game" ! msgstr "" ! ! #: src/gtk/vba.glade:111 msgid "_Pause" msgstr "" ! #: src/gtk/vba.glade:121 msgid "_Reset" msgstr "" ! #: src/gtk/vba.glade:136 ! msgid "Rece_nt" msgstr "" ! #: src/gtk/vba.glade:150 ! msgid "_Import" msgstr "" ! #: src/gtk/vba.glade:158 ! msgid "E_xport" ! msgstr "" ! ! #: src/gtk/vba.glade:172 ! msgid "Screen capt_ure..." ! msgstr "" ! ! #: src/gtk/vba.glade:180 ! msgid "RO_M information..." ! msgstr "" ! ! #: src/gtk/vba.glade:194 ! msgid "_Close" ! msgstr "" ! ! #: src/gtk/vba.glade:214 ! msgid "_Exit" ! msgstr "" ! ! #: src/gtk/vba.glade:239 ! msgid "_Options" ! msgstr "" ! ! #: src/gtk/vba.glade:248 ! msgid "_Frameskip" ! msgstr "" ! ! #: src/gtk/vba.glade:257 ! msgid "_Throttle" ! msgstr "" ! ! #: src/gtk/vba.glade:266 ! msgid "_No throttle" ! msgstr "" ! ! #: src/gtk/vba.glade:275 src/gtk/vba.glade:994 ! msgid "25%" ! msgstr "" ! ! #: src/gtk/vba.glade:285 src/gtk/vba.glade:1003 ! msgid "50%" ! msgstr "" ! ! #: src/gtk/vba.glade:295 src/gtk/vba.glade:1013 ! msgid "100%" ! msgstr "" ! ! #: src/gtk/vba.glade:305 ! msgid "150%" ! msgstr "" ! ! #: src/gtk/vba.glade:315 src/gtk/vba.glade:1023 ! msgid "200%" ! msgstr "" ! ! #: src/gtk/vba.glade:325 ! msgid "_Other..." ! msgstr "" ! ! #: src/gtk/vba.glade:345 src/gtk/vba.glade:689 src/gtk/vba.glade:1094 ! msgid "_Automatic" ! msgstr "" ! ! #: src/gtk/vba.glade:354 ! msgid "_0" ! msgstr "" ! ! #: src/gtk/vba.glade:364 src/gtk/vba.glade:1432 ! msgid "_1" ! msgstr "" ! ! #: src/gtk/vba.glade:374 src/gtk/vba.glade:1441 ! msgid "_2" ! msgstr "" ! ! #: src/gtk/vba.glade:384 src/gtk/vba.glade:1451 ! msgid "_3" ! msgstr "" ! ! #: src/gtk/vba.glade:394 src/gtk/vba.glade:1461 ! msgid "_4" ! msgstr "" ! ! #: src/gtk/vba.glade:404 ! msgid "_5" ! msgstr "" ! ! #: src/gtk/vba.glade:414 ! msgid "_6" ! msgstr "" ! ! #: src/gtk/vba.glade:424 ! msgid "_7" ! msgstr "" ! ! #: src/gtk/vba.glade:434 ! msgid "_8" ! msgstr "" ! ! #: src/gtk/vba.glade:444 ! msgid "_9" ! msgstr "" ! ! #: src/gtk/vba.glade:458 ! msgid "_Video" ! msgstr "" ! ! #: src/gtk/vba.glade:467 msgid "_1x" msgstr "" ! #: src/gtk/vba.glade:476 msgid "_2x" msgstr "" ! #: src/gtk/vba.glade:486 msgid "_3x" msgstr "" ! #: src/gtk/vba.glade:496 msgid "_4x" msgstr "" ! #: src/gtk/vba.glade:506 ! msgid "_5x" ! msgstr "" ! ! #: src/gtk/vba.glade:516 ! msgid "_6x" ! msgstr "" ! ! #: src/gtk/vba.glade:532 ! msgid "_Layers" ! msgstr "" ! ! #: src/gtk/vba.glade:541 ! msgid "BG0" ! msgstr "" ! ! #: src/gtk/vba.glade:551 ! msgid "BG1" ! msgstr "" ! ! #: src/gtk/vba.glade:561 ! msgid "BG2" ! msgstr "" ! ! #: src/gtk/vba.glade:571 ! msgid "BG3" ! msgstr "" ! ! #: src/gtk/vba.glade:581 ! msgid "OBJ" ! msgstr "" ! ! #: src/gtk/vba.glade:591 ! msgid "WIN0" ! msgstr "" ! ! #: src/gtk/vba.glade:601 ! msgid "WIN1" ! msgstr "" ! ! #: src/gtk/vba.glade:611 ! msgid "OBJWIN" ! msgstr "" ! ! #: src/gtk/vba.glade:629 ! msgid "_Emulator" ! msgstr "" ! ! #: src/gtk/vba.glade:638 ! msgid "Show speed" ! msgstr "" ! ! #: src/gtk/vba.glade:647 src/gtk/vba.glade:738 ! msgid "None" ! msgstr "" ! ! #: src/gtk/vba.glade:656 ! msgid "Percentage" ! msgstr "" ! ! #: src/gtk/vba.glade:666 ! msgid "Detailed" ! msgstr "" ! ! #: src/gtk/vba.glade:680 ! msgid "Save type" ! msgstr "" ! ! #: src/gtk/vba.glade:698 ! msgid "EEPROM" ! msgstr "" ! ! #: src/gtk/vba.glade:708 ! msgid "SRAM" ! msgstr "" ! ! #: src/gtk/vba.glade:718 ! msgid "Flash" ! msgstr "" ! ! #: src/gtk/vba.glade:728 ! msgid "EEPROM+Sensor" ! msgstr "" ! ! #: src/gtk/vba.glade:754 ! msgid "Flash 64K" ! msgstr "" ! ! #: src/gtk/vba.glade:763 ! msgid "Flash 128K" ! msgstr "" ! ! #: src/gtk/vba.glade:777 ! msgid "_Use BIOS file" ! msgstr "" ! ! #: src/gtk/vba.glade:786 ! msgid "_Select BIOS file..." ! msgstr "" ! ! #: src/gtk/vba.glade:798 ! msgid "_Sound" ! msgstr "" ! ! #: src/gtk/vba.glade:807 ! msgid "O_ff" ! msgstr "" ! ! #: src/gtk/vba.glade:816 ! msgid "_Mute" ! msgstr "" ! ! #: src/gtk/vba.glade:826 ! msgid "_On" ! msgstr "" ! ! #: src/gtk/vba.glade:842 ! msgid "Use old synchronization" ! msgstr "" ! ! #: src/gtk/vba.glade:857 ! msgid "Echo" ! msgstr "" ! ! #: src/gtk/vba.glade:866 ! msgid "Low pass filter" ! msgstr "" ! ! #: src/gtk/vba.glade:875 ! msgid "Reverse stereo" ! msgstr "" ! ! #: src/gtk/vba.glade:890 ! msgid "Channel _1" ! msgstr "" ! ! #: src/gtk/vba.glade:899 ! msgid "Channel _2" ! msgstr "" ! ! #: src/gtk/vba.glade:908 ! msgid "Channel _3" ! msgstr "" ! ! #: src/gtk/vba.glade:917 ! msgid "Channel _4" ! msgstr "" ! ! #: src/gtk/vba.glade:926 ! msgid "Channel _A" ! msgstr "" ! ! #: src/gtk/vba.glade:935 ! msgid "Channel _B" ! msgstr "" ! ! #: src/gtk/vba.glade:950 ! msgid "11 _Khz" ! msgstr "" ! ! #: src/gtk/vba.glade:959 ! msgid "22 K_hz" ! msgstr "" ! ! #: src/gtk/vba.glade:969 ! msgid "44 Kh_z" ! msgstr "" ! ! #: src/gtk/vba.glade:985 ! msgid "_Volume" ! msgstr "" ! ! #: src/gtk/vba.glade:1033 ! msgid "300%" ! msgstr "" ! ! #: src/gtk/vba.glade:1043 ! msgid "400%" ! msgstr "" ! ! #: src/gtk/vba.glade:1061 ! msgid "_Gameboy" ! msgstr "" ! ! #: src/gtk/vba.glade:1070 ! msgid "_Border" ! msgstr "" ! ! #: src/gtk/vba.glade:1079 ! msgid "_Printer" ! msgstr "" ! ! #: src/gtk/vba.glade:1103 ! msgid "_GBA" ! msgstr "" ! ! #: src/gtk/vba.glade:1113 ! msgid "_CGB/GBC" ! msgstr "" ! ! #: src/gtk/vba.glade:1123 ! msgid "_SGB" ! msgstr "" ! ! #: src/gtk/vba.glade:1133 ! msgid "SGB_2" ! msgstr "" ! ! #: src/gtk/vba.glade:1143 ! msgid "G_B" ! msgstr "" ! ! #: src/gtk/vba.glade:1157 ! msgid "F_ilter" ! msgstr "" ! ! #: src/gtk/vba.glade:1166 ! msgid "Interframe _blending" ! msgstr "" ! ! #: src/gtk/vba.glade:1175 src/gtk/vba.glade:1214 ! msgid "_None" ! msgstr "" ! ! #: src/gtk/vba.glade:1184 ! msgid "_Smart" ! msgstr "" ! ! #: src/gtk/vba.glade:1194 src/gtk/vba.glade:1273 ! msgid "_Motion Blur" ! msgstr "" ! ! #: src/gtk/vba.glade:1223 ! msgid "_TV Mode" ! msgstr "" ! ! #: src/gtk/vba.glade:1233 ! msgid "_2xSaI" ! msgstr "" ! ! #: src/gtk/vba.glade:1243 ! msgid "_Super 2xSaI" ! msgstr "" ! ! #: src/gtk/vba.glade:1253 ! msgid "Super _Eagle" ! msgstr "" ! ! #: src/gtk/vba.glade:1263 ! msgid "_Pixelate" ! msgstr "" ! ! #: src/gtk/vba.glade:1283 ! msgid "_AdvanceMAME 2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1293 ! msgid "S_imple 2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1303 ! msgid "Bilinea_r" ! msgstr "" ! ! #: src/gtk/vba.glade:1313 ! msgid "Bilinear Pl_us" ! msgstr "" ! ! #: src/gtk/vba.glade:1323 ! msgid "S_canlines" ! msgstr "" ! ! #: src/gtk/vba.glade:1333 ! msgid "h_q2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1343 ! msgid "_lq2x" ! msgstr "" ! ! #: src/gtk/vba.glade:1359 ! msgid "_Disable MMX" ! msgstr "" ! ! #: src/gtk/vba.glade:1372 ! msgid "_Joypad" ! msgstr "" ! ! #: src/gtk/vba.glade:1381 ! msgid "_Configure" ! msgstr "" ! ! #: src/gtk/vba.glade:1390 ! msgid "_1..." ! msgstr "" ! ! #: src/gtk/vba.glade:1398 ! msgid "_2..." ! msgstr "" ! ! #: src/gtk/vba.glade:1406 ! msgid "_3..." ! msgstr "" ! ! #: src/gtk/vba.glade:1414 ! msgid "_4..." ! msgstr "" ! ! #: src/gtk/vba.glade:1477 ! msgid "_Motion configure..." ! msgstr "" ! ! #: src/gtk/vba.glade:1491 ! msgid "_Autofire" ! msgstr "" ! ! #: src/gtk/vba.glade:1500 ! msgid "_A" ! msgstr "" ! ! #: src/gtk/vba.glade:1510 ! msgid "_B" ! msgstr "" ! ! #: src/gtk/vba.glade:1520 ! msgid "_L" ! msgstr "" ! ! #: src/gtk/vba.glade:1530 ! msgid "_R" ! msgstr "" ! ! #: src/gtk/vba.glade:1552 ! msgid "_Tools" ! msgstr "" ! ! #: src/gtk/vba.glade:1561 ! msgid "_GDB" ! msgstr "" ! ! #: src/gtk/vba.glade:1570 ! msgid "_Wait for connection..." ! msgstr "" ! ! #: src/gtk/vba.glade:1578 ! msgid "_Load and wait..." ! msgstr "" ! ! #: src/gtk/vba.glade:1586 ! msgid "_Break into GDB" ! msgstr "" ! ! #: src/gtk/vba.glade:1594 ! msgid "_Disconnect" ! msgstr "" ! ! #: src/gtk/vba.glade:1606 ! msgid "_Cheats" ! msgstr "" ! ! #: src/gtk/vba.glade:1618 msgid "_Help" msgstr "" ! #: src/gtk/vba.glade:1627 msgid "_About" msgstr "" ! #: src/gtk/vba.glade:1668 msgid "About VBA" msgstr "" ! #: src/gtk/vba.glade:1733 msgid "An emulator for Gameboy⢠and GameboyAdvanceâ¢." msgstr "" ! #: src/gtk/vba.glade:1755 msgid "<small>Copyright © 1999-2004 Forgotten</small>" msgstr "" ! #: src/gtk/window.cpp:506 #, c-format msgid "Unknown file type %s" msgstr "" ! #: src/gtk/window.cpp:579 #, c-format msgid "Failed to load file %s" msgstr "" ! #: src/gtk/window.cpp:607 msgid "Loaded battery" msgstr "" ! #: src/gtk/window.cpp:618 msgid "Saved battery" msgstr "" ! #: src/gtk/window.cpp:685 msgid "Open a ROM" msgstr "" Index: fr.gmo =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/po/fr.gmo,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsE3Fw2a and /tmp/cvshSjKy9 differ |