ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/Frodo4/Src/main.h
Revision: 1.10
Committed: 2010-04-21T22:03:44Z (14 years ago) by cebix
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.9: +8 -4 lines
Log Message:
adaptations for Gtk prefs editor

File Contents

# User Rev Content
1 cebix 1.1 /*
2     * main.h - Main program
3     *
4 cebix 1.10 * Frodo Copyright (C) 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     private:
75 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
76     void load_rom_files();
77 cebix 1.1
78     char prefs_path[1024]; // Pathname of current preferences file
79     bool prefs_showing; // true: Preferences editor is on screen
80    
81     BMessenger this_messenger;
82     BFilePanel *open_panel;
83     BFilePanel *save_panel;
84     };
85    
86     #endif
87    
88    
89     /*
90     * AmigaOS specific stuff
91     */
92    
93     #ifdef AMIGA
94    
95     class Frodo {
96     public:
97     Frodo();
98     void ArgvReceived(int argc, char **argv);
99     void ReadyToRun(void);
100     void RunPrefsEditor(void);
101    
102     private:
103 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
104     void load_rom_files();
105 cebix 1.1
106     char prefs_path[256]; // Pathname of current preferences file
107     };
108    
109     // Global variables
110     extern Frodo *be_app; // Pointer to Frodo object
111    
112     #endif
113    
114    
115     /*
116     * X specific stuff
117     */
118    
119     #ifdef __unix
120    
121     class Prefs;
122    
123     class Frodo {
124     public:
125     Frodo();
126     void ArgvReceived(int argc, char **argv);
127 cebix 1.10 void ReadyToRun();
128     bool RunPrefsEditor();
129    
130     static const char *get_prefs_path() { return prefs_path; }
131    
132 cebix 1.1 private:
133 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
134     void load_rom_files();
135 cebix 1.1
136     static char prefs_path[256]; // Pathname of current preferences file
137     };
138    
139 cebix 1.10 extern Frodo *TheApp; // Pointer to Frodo object
140    
141 cebix 1.1 #endif
142    
143    
144     /*
145     * Mac specific stuff
146     */
147    
148     #ifdef __mac__
149    
150     class Frodo {
151     public:
152     Frodo();
153    
154     void Run(void);
155    
156     private:
157 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
158     void load_rom_files();
159 cebix 1.1 };
160    
161     #endif
162    
163    
164     /*
165     * WIN32 specific stuff
166     */
167    
168     #ifdef WIN32
169    
170     class Frodo {
171     public:
172     Frodo();
173     ~Frodo();
174     void ArgvReceived(int argc, char **argv);
175     void ReadyToRun();
176     void RunPrefsEditor();
177    
178     char prefs_path[256]; // Pathname of current preferences file
179    
180     private:
181 cebix 1.4 void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
182     void load_rom_files();
183 cebix 1.1 };
184    
185     // Global variables
186     extern Frodo *TheApp; // Pointer to Frodo object
187     extern HINSTANCE hInstance;
188     extern int nCmdShow;
189     extern HWND hwnd;
190    
191     // Command line options.
192     extern BOOL full_screen;
193    
194     #endif
195    
196    
197     /*
198     * RiscOS specific stuff
199     */
200    
201     #ifdef __riscos__
202    
203     class Frodo
204     {
205 cebix 1.4 public:
206     Frodo();
207     ~Frodo();
208     void ReadyToRun(void);
209 cebix 1.1
210 cebix 1.4 private:
211     void load_rom(const char *which, const char *path, uint8 *where, size_t size, const uint8 *builtin);
212     void load_rom_files();
213 cebix 1.1 };
214    
215     #endif
216 cebix 1.5
217     // Global C64 object
218     extern C64 *TheC64;
219 cebix 1.1
220 cebix 1.7
221     /*
222     * Functions
223     */
224    
225     // Determine whether path name refers to a directory
226     extern bool IsDirectory(const char *path);
227 cebix 1.1
228     #endif