Added a specific breakpoint for the M68K address error exception
[clinton/Virtual-Jaguar-Rx.git] / src / gui / mainwin.h
CommitLineData
0203b5fd
JPM
1//\r
2// mainwin.h: Header file\r
3//\r
4// by James Hammons\r
5// (C) 2010 Underground Software\r
6//\r
fe3b257d
JPM
7// Modified by Jean-Paul Mari\r
8//\r
0203b5fd
JPM
9\r
10#ifndef __MAINWIN_H__\r
11#define __MAINWIN_H__\r
12\r
13//Hrm. uh??? I thought this wasn't the way to do this stuff...???\r
14#include <QtWidgets>\r
15#include "tom.h"\r
16\r
17#define RING_BUFFER_SIZE 32\r
18\r
a4e46c05 19// Main windows\r
0203b5fd 20class GLWidget;\r
6564336c 21//class VideoWindow;\r
0203b5fd
JPM
22class AboutWindow;\r
23class HelpWindow;\r
24class FilePickerWindow;\r
a2dfb8e5 25//class VideoOutputWindow;\r
6564336c 26//class DasmWindow;\r
0203b5fd 27class EmuStatusWindow;\r
a4e46c05
JPM
28\r
29// Alpine\r
30class MemoryBrowserWindow;\r
31class StackBrowserWindow;\r
32class CPUBrowserWindow;\r
33class OPBrowserWindow;\r
34class M68KDasmBrowserWindow;\r
35class RISCDasmBrowserWindow;\r
36\r
37// Debugger\r
f99a6ebc
JPM
38class m68KDasmWindow;\r
39class GPUDasmWindow;\r
40class DSPDasmWindow;\r
0203b5fd
JPM
41class AllWatchBrowserWindow;\r
42class LocalBrowserWindow;\r
a4e46c05 43class CallStackBrowserWindow;\r
0203b5fd
JPM
44class HeapAllocatorBrowserWindow;\r
45class Memory1BrowserWindow;\r
1081a838
JPM
46class BreakpointsWindow;\r
47class NewFnctBreakpointWindow;\r
0203b5fd 48class ExceptionVectorTableBrowserWindow;\r
6564336c 49class FilesrcListWindow;\r
24470541 50class CartFilesListWindow;\r
3323d78b 51class SaveDumpAsWindow;\r
0203b5fd 52\r
a4e46c05 53\r
6564336c 54// \r
0203b5fd
JPM
55class MainWin: public QMainWindow\r
56{\r
57 // All Qt apps require this macro for signal/slot functionality to work\r
58 Q_OBJECT\r
59\r
60 public:\r
61// MainWin(QString);\r
62 MainWin(bool);\r
63 void LoadFile(QString);\r
64 void SyncUI(void);\r
6564336c 65 void DebuggerRefreshWindows(void);\r
24470541 66 void ViewRefreshWindows(void);\r
f99a6ebc
JPM
67 void RefreshWindows(void);\r
68 void CommonRefreshWindows(void);\r
6564336c 69 void AlpineRefreshWindows(void);\r
24470541 70 void DebuggerResetWindows(void);\r
f99a6ebc
JPM
71 void CommonResetWindows(void);\r
72 void CommonReset(void);\r
acd3342f 73 void DebuggerReset(void);\r
0203b5fd
JPM
74\r
75 protected:\r
76 void closeEvent(QCloseEvent *);\r
77 void keyPressEvent(QKeyEvent *);\r
78 void keyReleaseEvent(QKeyEvent *);\r
79\r
80 private slots:\r
81 void Open(void);\r
82 void Configure(void);\r
83 void Timer(void);\r
84 void TogglePowerState(void);\r
85 void ToggleRunState(void);\r
86 void SetZoom100(void);\r
87 void SetZoom200(void);\r
88 void SetZoom300(void);\r
89 void SetNTSC(void);\r
90 void SetPAL(void);\r
91 void ToggleBlur(void);\r
92 void ShowAboutWin(void);\r
93 void ShowHelpWin(void);\r
94 void InsertCart(void);\r
95 void Unpause(void);\r
96 void LoadSoftware(QString);\r
97 void ToggleCDUsage(void);\r
98 void FrameAdvance(void);\r
0203b5fd 99 void ToggleFullScreen(void);\r
a4e46c05 100 void ShowEmuStatusWin(void);\r
25251f31 101 void MakeScreenshot(void);\r
a4e46c05
JPM
102 // Debugger\r
103 void DebuggerTraceStepOver(void);\r
104 void DebuggerTraceStepInto(void);\r
105 void DebuggerRestart(void);\r
106 void ShowAllWatchBrowserWin(void);\r
107 void ShowLocalBrowserWin(void);\r
108 void ShowCallStackBrowserWin(void);\r
109 void ShowHeapAllocatorBrowserWin(void);\r
110 void ShowMemory1BrowserWin(int NumWin);\r
111 void ShowExceptionVectorTableBrowserWin(void);\r
1081a838
JPM
112 void ShowNewFunctionBreakpointWin(void);\r
113 void ShowBreakpointsWin(void);\r
114 void DeleteAllBreakpoints(void);\r
115 void DisableAllBreakpoints(void);\r
3323d78b 116 void ShowSaveDumpAsWin(void);\r
24470541
JPM
117#if 0\r
118 void ShowVideoOutputWin(void);\r
119 void ShowDasmWin(void);\r
120#endif\r
121 void ShowCartFilesListWin(void);\r
a4e46c05 122 // Alpine\r
0203b5fd
JPM
123 void ShowMemoryBrowserWin(void);\r
124 void ShowStackBrowserWin(void);\r
125 void ShowCPUBrowserWin(void);\r
126 void ShowOPBrowserWin(void);\r
127 void ShowM68KDasmBrowserWin(void);\r
128 void ShowRISCDasmBrowserWin(void);\r
0203b5fd
JPM
129\r
130 private:\r
131 void HandleKeys(QKeyEvent *, bool);\r
132 void HandleGamepads(void);\r
133 void SetFullScreen(bool state = true);\r
134 void ResizeMainWindow(void);\r
135 void ReadUISettings(void);\r
136 void ReadSettings(void);\r
137 void WriteSettings(void);\r
138 void WriteUISettings(void);\r
139\r
a4e46c05 140 private:\r
25251f31 141 GLWidget *videoWidget;\r
0203b5fd
JPM
142 QMdiArea *mainWindowCentrale;\r
143 QMdiSubWindow *VideoOutputWindowCentrale;\r
6564336c
JPM
144 AboutWindow *aboutWin;\r
145 HelpWindow *helpWin;\r
146 FilePickerWindow *filePickWin;\r
147 EmuStatusWindow *emuStatusWin;\r
148 MemoryBrowserWindow *memBrowseWin;\r
149 StackBrowserWindow *stackBrowseWin;\r
150 CPUBrowserWindow *cpuBrowseWin;\r
151 OPBrowserWindow *opBrowseWin;\r
152 M68KDasmBrowserWindow *m68kDasmBrowseWin;\r
153 RISCDasmBrowserWindow *riscDasmBrowseWin;\r
154 //VideoOutputWindow *VideoOutputWin;\r
a4e46c05
JPM
155 AllWatchBrowserWindow *allWatchBrowseWin;\r
156 LocalBrowserWindow *LocalBrowseWin;\r
157 CallStackBrowserWindow *CallStackBrowseWin;\r
0203b5fd
JPM
158 ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;\r
159 HeapAllocatorBrowserWindow *heapallocatorBrowseWin;\r
a4e46c05 160 Memory1BrowserWindow **mem1BrowseWin;\r
6564336c 161 //DasmWindow * DasmWin;\r
0203b5fd
JPM
162 QTabWidget *dasmtabWidget;\r
163 //QDockWidget *dasmtabWidget;\r
164 m68KDasmWindow *m68kDasmWin;\r
165 GPUDasmWindow *GPUDasmWin;\r
166 DSPDasmWindow *DSPDasmWin;\r
6564336c 167 FilesrcListWindow *FilesrcListWin;\r
1081a838
JPM
168 BreakpointsWindow *BreakpointsWin;\r
169 NewFnctBreakpointWindow *NewFunctionBreakpointWin;\r
24470541 170 CartFilesListWindow *CartFilesListWin;\r
3323d78b 171 SaveDumpAsWindow *SaveDumpAsWin;\r
6564336c 172 QTimer *timer;\r
0203b5fd
JPM
173 bool running;\r
174 int zoomLevel;\r
175 bool powerButtonOn;\r
176 bool showUntunedTankCircuit;\r
a4e46c05 177\r
0203b5fd
JPM
178 public:\r
179 bool cartridgeLoaded;\r
a4e46c05 180\r
0203b5fd
JPM
181 private:\r
182 bool allowUnknownSoftware;\r
183 bool CDActive;\r
184// bool alpineLoadSuccessful;\r
185 bool pauseForFileSelector;\r
186 bool loadAndGo;\r
187 bool keyHeld[8];\r
188 bool fullScreen;\r
189 bool scannedSoftwareFolder;\r
a4e46c05 190\r
0203b5fd
JPM
191 public:\r
192 bool plzDontKillMyComputer;\r
193 uint32_t oldTimestamp;\r
194 uint32_t ringBufferPointer;\r
195 uint32_t ringBuffer[RING_BUFFER_SIZE];\r
a4e46c05 196\r
0203b5fd
JPM
197 private:\r
198 QPoint mainWinPosition;\r
199// QSize mainWinSize;\r
200 int lastEditedProfile;\r
fe3b257d
JPM
201 QMenu *fileMenu;\r
202 QMenu *helpMenu;\r
203 QMenu *debugMenu, *debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu;\r
24470541 204 QMenu *viewMenu, *viewCartMenu;\r
0203b5fd
JPM
205 QToolBar * toolbar;\r
206 QToolBar * debugbar;\r
207 QToolBar * debuggerbar;\r
208\r
209 QActionGroup * zoomActs;\r
210 QActionGroup * tvTypeActs;\r
211\r
fe3b257d
JPM
212 QAction *quitAppAct;\r
213 QAction *powerAct;\r
214 QAction *pauseAct;\r
215 QAction *x1Act;\r
216 QAction *x2Act;\r
217 QAction *x3Act;\r
218 QAction *ntscAct;\r
219 QAction *palAct;\r
220 QAction *blurAct;\r
221 QAction *aboutAct;\r
222 QAction *helpAct;\r
223 QAction *filePickAct;\r
224 QAction *configAct;\r
225 QAction *emustatusAct;\r
226 QAction *useCDAct;\r
227 QAction *frameAdvanceAct;\r
fe3b257d 228 QAction *fullScreenAct;\r
6564336c 229 //QAction *DasmAct;\r
fe3b257d 230 QAction *screenshotAct;\r
0203b5fd 231\r
a4e46c05 232 // Alpine\r
0203b5fd
JPM
233 QAction *memBrowseAct;\r
234 QAction *stackBrowseAct;\r
235 QAction *cpuBrowseAct;\r
236 QAction *opBrowseAct;\r
237 QAction *m68kDasmBrowseAct;\r
238 QAction *riscDasmBrowseAct;\r
a4e46c05
JPM
239\r
240 // Debugger\r
1081a838
JPM
241 QAction *traceStepOverAct;\r
242 QAction *traceStepIntoAct;\r
243 QAction *restartAct;\r
6564336c 244 //QAction *VideoOutputAct;\r
0203b5fd
JPM
245 QAction *heapallocatorBrowseAct;\r
246 QAction *allWatchBrowseAct;\r
247 QAction *LocalBrowseAct;\r
a4e46c05 248 QAction *CallStackBrowseAct;\r
0203b5fd 249 QAction **mem1BrowseAct;\r
1081a838
JPM
250 QAction *newFunctionBreakpointAct;\r
251 QAction *BreakpointsAct;\r
252 QAction *deleteAllBreakpointsAct;\r
253 QAction *disableAllBreakpointsAct;\r
3323d78b 254 QAction *saveDumpAsAct;\r
0203b5fd 255 QAction *exceptionVectorTableBrowseAct;\r
24470541 256 QAction *CartFilesListAct;\r
0203b5fd
JPM
257\r
258 QIcon powerGreen;\r
259 QIcon powerRed;\r
260 QIcon blur;\r
261 uint32_t testPattern[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
262 uint32_t testPattern2[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
263};\r
264\r
265#endif // __MAINWIN_H__\r