initial import
[picodrive.git] / platform / uiq2 / ClientServer.h
1 // protocol used to talk between exe and it's launcher\r
2 \r
3 #ifndef __CLIENTSERVER_H\r
4 #define __CLIENTSERVER_H\r
5 \r
6 #include <w32std.h>\r
7 \r
8 // names\r
9 _LIT(KServerName,   "PicodriveNServ");\r
10 _LIT(KServerWGName, "Picosmall"); // window group name\r
11 _LIT(KClientName,   "PicodriveN");\r
12 _LIT(KClientFind,   "PicodriveN*"); // client search mask (for TFindLibrary)\r
13 \r
14 \r
15 // opcodes used in message passing between client and server\r
16 enum TPicoServRqst {\r
17         PicoMsgLoadState,\r
18         PicoMsgSaveState,\r
19         PicoMsgLoadROM,\r
20         PicoMsgResume,\r
21         PicoMsgReset,\r
22         PicoMsgKeys,\r
23         PicoMsgPause,\r
24         PicoMsgQuit,\r
25         PicoMsgConfigChange,    // launcher -> emu\r
26         PicoMsgRetrieveConfig,  // emu -> launcher\r
27         PicoMsgRetrieveDebugStr,// fixed to 512 bytes 4 now\r
28         kDefaultMessageSlots // this is how many messages we need :)\r
29 };\r
30 \r
31 \r
32 // event messages to launcher\r
33 enum TPicoLauncherEvents {\r
34         EEventKeyCfgDone = EEventUser + 1,\r
35         EEventGamePaused,\r
36 };\r
37 \r
38 \r
39 // configuration data to be sent between server and client\r
40 struct TPicoConfig {\r
41         enum TPicoScreenRotation {\r
42                 PRot0,\r
43                 PRot90,\r
44                 PRot180,\r
45                 PRot270\r
46         };\r
47         enum TPicoScreenMode {\r
48                 PMCenter,\r
49                 PMFit,\r
50                 PMFit2\r
51         };\r
52         enum TPicoFrameSkip {\r
53                 PFSkipAuto = -1,\r
54                 PFSkip0\r
55         };\r
56         TInt32                          iScreenRotation;\r
57         TInt32                          iScreenMode;\r
58         TUint32                         iFlags;   // LSb->MSb: use_sram, show_fps, enable_sound, sound_rate(3bits), gzip_saves{=0x40}, dont_use_mot_vol\r
59     // enable_ym2612&dac, enable_sn76496, enable_z80, stereo_sound;\r
60     // alt_renderer, 6button_gamepad, accurate_timing\r
61         TInt32                          iPicoOpt;\r
62         TInt32                          iFrameskip;\r
63         TUint32                         iKeyBinds[32];\r
64         TUint32                         iAreaBinds[19];\r
65         TInt32                          PicoRegion;\r
66 };\r
67 \r
68 \r
69 #endif  // __CLIENTSERVER_H\r