ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/Frodo4/Src/main.h
Revision: 1.4
Committed: 2003-07-02T14:46:24Z (20 years, 9 months ago) by cebix
Content type: text/plain
Branch: MAIN
Changes since 1.3: +18 -12 lines
Log Message:
when the ROM files are not found, builtin defaults are used

File Contents

# User Rev Content
1 cebix 1.1 /*
2     * main.h - Main program
3     *
4 cebix 1.3 * Frodo (C) 1994-1997,2002-2003 Christian Bauer
5 cebix 1.1 *
6     * This program is free software; you can redistribute it and/or modify
7     * it under the terms of the GNU General Public License as published by
8     * the Free Software Foundation; either version 2 of the License, or
9     * (at your option) any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19     */
20    
21     #ifndef _MAIN_H
22     #define _MAIN_H
23    
24    
25     class C64;
26    
27     // Global variables
28     extern char AppDirPath[1024]; // Path of application directory
29    
30    
31     /*
32     * BeOS specific stuff
33     */
34    
35     #ifdef __BEOS__
36     #include <AppKit.h>
37     #include <StorageKit.h>
38    
39     // Global variables
40     extern bool FromShell; // true: Started from shell, SAM can be used
41     extern BEntry AppDirectory; // Application directory
42    
43    
44     // Message codes
45     const uint32 MSG_STARTUP = 'strt'; // Start emulation
46     const uint32 MSG_PREFS = 'pref'; // Show preferences editor
47     const uint32 MSG_PREFS_DONE = 'pdon'; // Preferences editor closed
48     const uint32 MSG_RESET = 'rset'; // Reset C64
49     const uint32 MSG_NMI = 'nmi '; // Raise NMI
50     const uint32 MSG_SAM = 'sam '; // Invoke SAM
51     const uint32 MSG_NEXTDISK = 'ndsk'; // Insert next disk in drive 8
52     const uint32 MSG_TOGGLE_1541 = '1541'; // Toggle processor-level 1541 emulation
53     const uint32 MSG_OPEN_SNAPSHOT = 'opss'; // Open snapshot file
54     const uint32 MSG_SAVE_SNAPSHOT = 'svss'; // Save snapshot file
55     const uint32 MSG_OPEN_SNAPSHOT_RETURNED = 'opsr'; // Open snapshot file panel returned
56     const uint32 MSG_SAVE_SNAPSHOT_RETURNED = 'svsr'; // Save snapshot file panel returned
57    
58    
59     // Application signature
60     const char APP_SIGNATURE[] = "application/x-vnd.cebix-Frodo";
61    
62    
63     // Application class
64     class Frodo : public BApplication {
65     public:
66     Frodo();
67     virtual void ArgvReceived(int32 argc, char **argv);
68     virtual void RefsReceived(BMessage *message);
69     virtual void ReadyToRun(void);
70     virtual void MessageReceived(BMessage *msg);
71     virtual bool QuitRequested(void);
72     virtual void AboutRequested(void);
73    
74     C64 *TheC64;
75    
76     private:
77 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
78     void load_rom_files();
79 cebix 1.1
80     char prefs_path[1024]; // Pathname of current preferences file
81     bool prefs_showing; // true: Preferences editor is on screen
82    
83     BMessenger this_messenger;
84     BFilePanel *open_panel;
85     BFilePanel *save_panel;
86     };
87    
88     #endif
89    
90    
91     /*
92     * AmigaOS specific stuff
93     */
94    
95     #ifdef AMIGA
96    
97     class Frodo {
98     public:
99     Frodo();
100     void ArgvReceived(int argc, char **argv);
101     void ReadyToRun(void);
102     void RunPrefsEditor(void);
103    
104     C64 *TheC64;
105    
106     private:
107 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
108     void load_rom_files();
109 cebix 1.1
110     char prefs_path[256]; // Pathname of current preferences file
111     };
112    
113     // Global variables
114     extern Frodo *be_app; // Pointer to Frodo object
115    
116     #endif
117    
118    
119     /*
120     * X specific stuff
121     */
122    
123     #ifdef __unix
124    
125     class Prefs;
126    
127     class Frodo {
128     public:
129     Frodo();
130     void ArgvReceived(int argc, char **argv);
131     void ReadyToRun(void);
132     static Prefs *reload_prefs(void);
133    
134     C64 *TheC64;
135    
136     private:
137 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
138     void load_rom_files();
139 cebix 1.1
140     static char prefs_path[256]; // Pathname of current preferences file
141     };
142    
143     #endif
144    
145    
146     /*
147     * Mac specific stuff
148     */
149    
150     #ifdef __mac__
151    
152     class Frodo {
153     public:
154     Frodo();
155    
156     void Run(void);
157     C64 *TheC64;
158    
159     private:
160 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
161     void load_rom_files();
162 cebix 1.1 };
163    
164     #endif
165    
166    
167     /*
168     * WIN32 specific stuff
169     */
170    
171     #ifdef WIN32
172    
173     class Frodo {
174     public:
175     Frodo();
176     ~Frodo();
177     void ArgvReceived(int argc, char **argv);
178     void ReadyToRun();
179     void RunPrefsEditor();
180    
181     C64 *TheC64;
182     char prefs_path[256]; // Pathname of current preferences file
183    
184     private:
185 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
186     void load_rom_files();
187 cebix 1.1 };
188    
189     // Global variables
190     extern Frodo *TheApp; // Pointer to Frodo object
191     extern HINSTANCE hInstance;
192     extern int nCmdShow;
193     extern HWND hwnd;
194    
195     // Command line options.
196     extern BOOL full_screen;
197    
198     #if defined(DEBUG)
199    
200     inline void Debug(const char *format, ...)
201     {
202     va_list args;
203     va_start(args, format);
204     char tmp[256];
205     vsprintf(tmp, format, args);
206     va_end(args);
207     OutputDebugString(tmp);
208     }
209    
210     #else
211    
212     inline void Debug(const char *format, ...)
213     {
214     }
215    
216     #endif
217    
218     #define DebugResult(message, val) \
219     Debug("%s: 0x%x (%d)\n", message, val, HRESULT_CODE(val))
220    
221     #endif
222    
223    
224     /*
225     * RiscOS specific stuff
226     */
227    
228     #ifdef __riscos__
229    
230     class Frodo
231     {
232 cebix 1.4 public:
233     Frodo();
234     ~Frodo();
235     void ReadyToRun(void);
236 cebix 1.1
237 cebix 1.4 C64 *TheC64;
238 cebix 1.1
239 cebix 1.4 private:
240     void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
241     void load_rom_files();
242 cebix 1.1 };
243    
244     #endif
245    
246    
247     #endif