Mercurial > vba-clojure
comparison src/win32/VBA.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:8ced16adf2e1 | 1:f9f4f1b99eed |
---|---|
1 #if !defined(AFX_VBA_H__57514A10_49F9_4B83_A928_0D8A4A7306A3__INCLUDED_) | |
2 #define AFX_VBA_H__57514A10_49F9_4B83_A928_0D8A4A7306A3__INCLUDED_ | |
3 | |
4 #if _MSC_VER > 1000 | |
5 #pragma once | |
6 #endif // _MSC_VER > 1000 | |
7 | |
8 /* | |
9 #ifndef __AFXWIN_H__ | |
10 #error include 'stdafx.h' before including this file for PCH | |
11 #endif | |
12 */ | |
13 | |
14 #include <afxtempl.h> | |
15 | |
16 #include "AcceleratorManager.h" | |
17 #include "AVIWrite.h" | |
18 #include "Display.h" | |
19 #include "../common/System.h" | |
20 | |
21 ///////////////////////////////////////////////////////////////////////////// | |
22 // VBA: | |
23 // See VBA.cpp for the implementation of this class | |
24 // | |
25 | |
26 enum | |
27 { | |
28 VIDEO_1X, VIDEO_2X, VIDEO_3X, VIDEO_4X, | |
29 VIDEO_320x240, VIDEO_640x480, VIDEO_800x600, VIDEO_OTHER | |
30 }; | |
31 | |
32 #define REWIND_SIZE 400000 | |
33 #define MAX_REWIND_SLOTS 256 | |
34 #define SCREEN_MESSAGE_SLOTS 8 | |
35 | |
36 ///////////////////////////////////////////////////////////////////////////// | |
37 // forward decl | |
38 class IUpdateListener; | |
39 class Input; | |
40 class ISound; | |
41 class AVIWrite; | |
42 class WavWriter; | |
43 | |
44 class VBA : public CWinApp | |
45 { | |
46 public: | |
47 CMenu m_menu; | |
48 HMENU menu; | |
49 HMENU popup; | |
50 bool mode320Available; | |
51 bool mode640Available; | |
52 bool mode800Available; | |
53 int windowPositionX; | |
54 int windowPositionY; | |
55 void (*filterFunction)(u8 *, u32, u8 *, u8 *, u32, int, int); | |
56 void (*ifbFunction)(u8 *, u32, int, int); | |
57 int ifbType; | |
58 int filterType; | |
59 int filterWidth; | |
60 int filterHeight; | |
61 int fsWidth; | |
62 int fsHeight; | |
63 int fsColorDepth; | |
64 bool fsForceChange; | |
65 bool AsscWithSaveState; | |
66 int sizeX; | |
67 int sizeY; | |
68 int surfaceSizeX; | |
69 int surfaceSizeY; | |
70 int videoOption; | |
71 bool fullScreenStretch; | |
72 bool disableStatusMessage; | |
73 int showSpeed; | |
74 BOOL showSpeedTransparent; | |
75 int showRenderedFrames; | |
76 bool screenMessage [SCREEN_MESSAGE_SLOTS]; | |
77 CString screenMessageBuffer [SCREEN_MESSAGE_SLOTS]; | |
78 DWORD screenMessageTime [SCREEN_MESSAGE_SLOTS]; | |
79 int screenMessageDuration [SCREEN_MESSAGE_SLOTS]; | |
80 CString screenMessageColorBuffer [SCREEN_MESSAGE_SLOTS]; | |
81 u8 * delta[257 * 244 * 4]; | |
82 bool menuToggle; | |
83 IDisplay *display; | |
84 bool soundInitialized; | |
85 bool useBiosFile; | |
86 bool skipBiosFile; | |
87 CString biosFileName; | |
88 bool allowLeftRight; | |
89 bool autofireAccountForLag; | |
90 bool nextframeAccountForLag; | |
91 bool active; | |
92 bool iconic; | |
93 bool paused; | |
94 CString recentFiles[10]; | |
95 bool recentFreeze; | |
96 bool autoSaveLoadCheatList; | |
97 bool pauseDuringCheatSearch; | |
98 bool modelessCheatDialogIsOpen; | |
99 // FILE * winout; | |
100 // bool removeIntros; | |
101 bool autoIPS; | |
102 int winGbBorderOn; | |
103 bool hideMovieBorder; | |
104 int winFlashSize; | |
105 bool winRtcEnable; | |
106 int winSaveType; | |
107 char *rewindMemory; | |
108 int rewindPos; | |
109 int rewindTopPos; | |
110 int rewindCounter; | |
111 int rewindCount; | |
112 bool rewindSaveNeeded; | |
113 int rewindTimer; | |
114 int rewindSlots; | |
115 int captureFormat; | |
116 bool tripleBuffering; | |
117 bool autoHideMenu; | |
118 bool speedupToggle; | |
119 int throttle; | |
120 u32 throttleLastTime; | |
121 /// u32 autoFrameSkipLastTime; | |
122 /// bool autoFrameSkip; | |
123 bool accuratePitchThrottle; | |
124 bool vsync; | |
125 bool changingVideoSize; | |
126 GUID videoDriverGUID; | |
127 GUID * pVideoDriverGUID; | |
128 DISPLAY_TYPE renderMethod; | |
129 bool ddrawEmulationOnly; | |
130 bool ddrawUsingEmulationOnly; | |
131 bool ddrawDebug; | |
132 bool ddrawUseVideoMemory; | |
133 int d3dFilter; | |
134 int glFilter; | |
135 int glType; | |
136 bool muteWhenInactive; | |
137 bool muteFrameAdvance; | |
138 bool pauseWhenInactive; | |
139 bool enableBackgroundInput; | |
140 bool alwaysOnTop; | |
141 bool useOldSync; | |
142 bool winGbPrinterEnabled; | |
143 int threadPriority; | |
144 bool disableMMX; | |
145 int languageOption; | |
146 CString languageName; | |
147 HINSTANCE languageModule; | |
148 int renderedFrames; | |
149 Input * input; | |
150 int joypadDefault; | |
151 int autoFire, autoFire2; | |
152 int autoHold; | |
153 bool autoFireToggle; | |
154 bool frameCounter; | |
155 bool lagCounter; | |
156 bool extraCounter; | |
157 bool inputDisplay; | |
158 bool movieReadOnly; | |
159 bool movieOnEndPause; | |
160 int movieOnEndBehavior; | |
161 bool soundRecording; | |
162 WavWriter * soundRecorder; | |
163 CString soundRecordName; | |
164 ISound * sound; | |
165 bool aviRecording; | |
166 AVIWrite * aviRecorder; | |
167 CString aviRecordName; | |
168 bool altAviRecordMethod; | |
169 bool nvVideoLog; | |
170 bool nvAudioLog; | |
171 bool painting; // for systemDrawScreen() | |
172 int mouseCounter; | |
173 bool winMuteForNow; | |
174 bool winPauseNextFrame; | |
175 bool wasPaused; | |
176 int fsMaxScale; | |
177 int romSize; | |
178 bool autoLoadMostRecent; | |
179 bool loadMakesRecent; | |
180 bool loadMakesCurrent; | |
181 bool saveMakesCurrent; | |
182 int currentSlot; | |
183 bool showSlotTime; | |
184 int filenamePreference; | |
185 int LuaFastForward; | |
186 bool frameSearching; | |
187 bool frameSearchSkipping; | |
188 bool frameSearchFirstStep; | |
189 bool frameSearchLoadValid; | |
190 int frameSearchLength; | |
191 int frameSearchStart; | |
192 u32 frameSearchOldInput[4]; | |
193 char * frameSearchMemory; | |
194 DWORD wmTimerRes; | |
195 | |
196 CList<IUpdateListener *, IUpdateListener * &> updateList; | |
197 int updateCount; | |
198 | |
199 CAcceleratorManager winAccelMgr; | |
200 HACCEL hAccel; | |
201 | |
202 RECT rect; | |
203 RECT dest; | |
204 | |
205 struct EmulatedSystem &emulator; | |
206 | |
207 CString romFilename; | |
208 CString gameFilename; | |
209 CString exeName; | |
210 CString exeDir; | |
211 CString wndClass; | |
212 | |
213 public: | |
214 VBA(); | |
215 ~VBA(); | |
216 | |
217 void adjustDestRect(); | |
218 void recreateMenuBar(); | |
219 void updateIFB(); | |
220 void updateFilter(); | |
221 void updateMenuBar(); | |
222 void winAddUpdateListener(IUpdateListener *l); | |
223 void winRemoveUpdateListener(IUpdateListener *l); | |
224 | |
225 // Overrides | |
226 // ClassWizard generated virtual function overrides | |
227 //{{AFX_VIRTUAL(VBA) | |
228 public: | |
229 virtual BOOL InitInstance(); | |
230 virtual BOOL OnIdle(LONG lCount); | |
231 //}}AFX_VIRTUAL | |
232 | |
233 // Implementation | |
234 public: | |
235 HINSTANCE winLoadLanguage(const char *name); | |
236 void winSetLanguageOption(int option, bool force); | |
237 #ifdef MMX | |
238 bool detectMMX(); | |
239 #endif | |
240 void updatePriority(); | |
241 void shutdownDisplay(); | |
242 void winCheckFullscreen(); | |
243 bool updateRenderMethod(bool force); | |
244 bool initDisplay(); | |
245 void updateWindowSize(int value); | |
246 void updateVideoSize(UINT id); | |
247 void updateFrameSkip(); | |
248 void loadSettings(); | |
249 void saveSettings(); | |
250 bool initInput(); | |
251 void addRecentFile(const CString &file); | |
252 void saveRewindStateIfNecessary(); | |
253 //{{AFX_MSG(VBA) | |
254 afx_msg void OnAppAbout(); | |
255 // NOTE - the ClassWizard will add and remove member functions here. | |
256 // DO NOT EDIT what you see in these blocks of generated code ! | |
257 //}}AFX_MSG | |
258 DECLARE_MESSAGE_MAP() | |
259 }; | |
260 | |
261 extern VBA theApp; | |
262 | |
263 #ifdef MMX | |
264 extern "C" bool cpu_mmx; | |
265 #endif | |
266 | |
267 extern void DrawTextMessages(u8 *dest, int pitch, int left, int bottom); | |
268 | |
269 ///////////////////////////////////////////////////////////////////////////// | |
270 | |
271 //{{AFX_INSERT_LOCATION}} | |
272 // Microsoft Visual C++ will insert additional declarations immediately before the previous line. | |
273 | |
274 #endif // !defined(AFX_VBA_H__57514A10_49F9_4B83_A928_0D8A4A7306A3__INCLUDED_) |