snes mouse support
[drnoksnes] / platform / platform.h
1 #ifndef _PLATFORM_H_
2 #define _PLATFORM_H_
3
4 #include "port.h"
5
6 // Configuration and command line parsing
7 void S9xLoadConfig(int argc, const char ** argv);
8 void S9xUnloadConfig();
9 void S9xSetRomFile(const char * file);
10 extern struct config {
11         /** Unfreeze from .frz.gz snapshot on start */
12         bool snapshotLoad;
13         /** Freeze to .frz.gz on exit */
14         bool snapshotSave;
15         /** Create fullscreen surface */
16         bool fullscreen;
17         /** Using xsp (thus take care of doubling coordinates where appropiate) */
18         bool xsp;
19         /** Audio output enabled */
20         bool enableAudio;
21         /** Speedhacks file to use */
22         char * hacksFile;
23         /** Enable touchscreen controls */
24         bool touchscreenInput;
25         /** Current scancode->joypad mapping */
26         unsigned short joypad1Mapping[256];
27         unsigned char action[256];
28         /** If true, next time the main loop is entered application will close */
29         bool quitting;
30 } Config;
31
32 // Video
33 extern struct gui {
34         /** Size of the GUI Window */
35         unsigned short Width, Height;
36         /** Size of the rendering area, relative to window. 2x if Xsp on. */
37         unsigned short RenderX, RenderY, RenderW, RenderH;
38 } GUI;
39 void S9xVideoToggleFullscreen();
40 void S9xVideoOutputFocus(bool hasFocus);
41
42 // Audio output
43 void S9xInitAudioOutput();
44 void S9xDeinitAudioOutput();
45 void S9xAudioOutputEnable(bool enable);
46
47 // Input devices
48 EXTERN_C void S9xInitInputDevices();
49 void S9xDeinitInputDevices();
50 void S9xInputScreenChanged();
51
52 // Input actions
53 #define kActionNone                                             0
54 #define kActionQuit                                     (1U << 0)
55 #define kActionToggleFullscreen         (1U << 1)
56
57 void S9xDoAction(unsigned char action);
58
59 #endif