cc68a136 |
1 | /*******************************************************************\r |
2 | *\r |
3 | * File: App.h\r |
4 | *\r |
5 | * Author: Peter van Sebille (peter@yipton.net)\r |
6 | *\r |
7 | * Modified/adapted for picodriveN by notaz, 2006\r |
8 | *\r |
9 | * (c) Copyright 2006, notaz\r |
10 | * (c) Copyright 2001, Peter van Sebille\r |
11 | * All Rights Reserved\r |
12 | *\r |
13 | *******************************************************************/\r |
14 | \r |
15 | #ifndef __APP_H\r |
16 | #define __APP_H\r |
17 | \r |
18 | #include <coecntrl.h>\r |
19 | #include <coeccntx.h>\r |
20 | #include <coemain.h>\r |
21 | \r |
22 | #include <eikappui.h>\r |
23 | #include <eikapp.h>\r |
24 | #include <eikdoc.h>\r |
25 | \r |
26 | #include "Engine.h"\r |
27 | #include "../ClientServer.h"\r |
28 | #include "SimpleClient.h"\r |
29 | #include "picodriven.hrh"\r |
30 | \r |
31 | const TUid KUidPicolApp = { 0x1000C193 };\r |
32 | const TUid KUidPicolFOView = { 0x1000C194 };\r |
33 | const TUid KUidPicolFCView = { 0x1000C195 };\r |
34 | \r |
35 | enum\r |
36 | {\r |
37 | EScreenModeFlipOpen = 0,\r |
38 | EScreenModeFlipClosed\r |
39 | };\r |
40 | \r |
41 | \r |
42 | //class CWsBitmap;\r |
43 | \r |
44 | \r |
45 | class CPicolDocument : public CEikDocument\r |
46 | {\r |
47 | public:\r |
48 | ~CPicolDocument();\r |
49 | CPicolDocument(CEikApplication& aApp);\r |
50 | void ConstructL();\r |
51 | \r |
52 | private: // from CEikDocument\r |
53 | CEikAppUi* CreateAppUiL();\r |
54 | };\r |
55 | \r |
56 | \r |
57 | class CEPicolAppView : public CCoeControl // , public MCoeControlBrushContext\r |
58 | {\r |
59 | public:\r |
60 | ~CEPicolAppView();\r |
61 | void ConstructL(const TRect& aRect);\r |
62 | \r |
63 | private:\r |
64 | void Draw(const TRect& aRect) const;\r |
65 | \r |
66 | //CWsBitmap* iBgImage;\r |
67 | //TPoint iImagePosition;\r |
68 | };\r |
69 | \r |
70 | \r |
71 | class CPicolViewBase : public CBase, public MCoeView\r |
72 | {\r |
73 | public:\r |
74 | \r |
75 | CPicolViewBase(CEPicolAppView& aAppViewCtl) : iAppViewCtl(aAppViewCtl) {}\r |
76 | //~CPicolViewBase();\r |
77 | \r |
78 | protected: \r |
79 | \r |
80 | // implements MCoeView:\r |
81 | virtual void ViewActivatedL(const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/);\r |
82 | virtual void ViewDeactivated();\r |
83 | //virtual void ViewConstructL();\r |
84 | \r |
85 | CEPicolAppView& iAppViewCtl;\r |
86 | };\r |
87 | \r |
88 | \r |
89 | class CPicolFOView : public CPicolViewBase\r |
90 | {\r |
91 | public:\r |
92 | \r |
93 | CPicolFOView(CEPicolAppView& aAppViewCtl) : CPicolViewBase(aAppViewCtl) {}\r |
94 | //~CPicolFOView();\r |
95 | virtual TVwsViewId ViewId() const;\r |
96 | virtual TVwsViewIdAndMessage ViewScreenDeviceChangedL();\r |
97 | virtual TBool ViewScreenModeCompatible(TInt aScreenMode);\r |
98 | virtual void ViewActivatedL(const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/);\r |
99 | };\r |
100 | \r |
101 | \r |
102 | class CPicolFCView : public CPicolViewBase\r |
103 | {\r |
104 | public:\r |
105 | \r |
106 | CPicolFCView(CEPicolAppView& aAppViewCtl) : CPicolViewBase(aAppViewCtl) {}\r |
107 | //~CPicolFCView();\r |
108 | virtual TVwsViewId ViewId() const;\r |
109 | virtual TVwsViewIdAndMessage ViewScreenDeviceChangedL();\r |
110 | virtual TBool ViewScreenModeCompatible(TInt aScreenMode);\r |
111 | virtual void ViewActivatedL(const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/);\r |
112 | };\r |
113 | \r |
114 | \r |
115 | \r |
116 | class CPicolAppUi : public CEikAppUi, public MGameWatcher\r |
117 | {\r |
118 | public:\r |
119 | CPicolAppUi();\r |
120 | void ConstructL();\r |
121 | ~CPicolAppUi();\r |
122 | \r |
123 | public: // implements MGameWatcher\r |
124 | void NotifyEmuDeath();\r |
125 | void NotifyForcedExit();\r |
126 | \r |
127 | TBool EmuRunning() const;\r |
128 | \r |
129 | protected: // from CEikAppUi\r |
130 | void HandleCommandL(TInt aCommand);\r |
131 | void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);\r |
132 | void HandleSystemEventL(const TWsEvent& aEvent);\r |
133 | \r |
134 | protected: // new stuf\r |
135 | void DisplayAboutDialogL();\r |
136 | void DisplayOpenROMDialogL();\r |
137 | void DisplayConfigDialogL();\r |
138 | void DisplayDebugDialogL();\r |
139 | \r |
140 | void StopGame();\r |
141 | void RunGameL();\r |
142 | void SendConfig();\r |
143 | void RetrieveConfig();\r |
144 | \r |
145 | CGameRunner* iGameRunner;\r |
146 | CExitForcer* iExitForcer; // makes sure emu process exits\r |
147 | CThreadWatcher* iThreadWatcher1; // emu process helper thread watcher\r |
148 | RServSession ss;\r |
149 | \r |
150 | private:\r |
151 | //void HandleScreenDeviceChangedL();\r |
152 | //void HandleWsEventL(const TWsEvent& aEvent, CCoeControl* aDestination);\r |
153 | virtual void HandleApplicationSpecificEventL(TInt aType, const TWsEvent& aEvent);\r |
154 | \r |
155 | private:\r |
156 | TBool iQuitting;\r |
157 | TBool iROMLoaded;\r |
158 | TBool iEmuRunning;\r |
159 | TBool iAfterConfigDialog;\r |
160 | TTime iConfigDialogClosed;\r |
161 | TPicoConfig iCurrentConfig;\r |
162 | TPLauncherConfig iCurrentLConfig;\r |
163 | \r |
164 | CEPicolAppView* iAppView;\r |
165 | CPicolFOView* iFOView;\r |
166 | CPicolFCView* iFCView;\r |
167 | };\r |
168 | \r |
169 | \r |
170 | \r |
171 | class CPicolApplication : public CEikApplication\r |
172 | {\r |
173 | private: // from CApaApplication\r |
174 | CApaDocument* CreateDocumentL();\r |
175 | TUid AppDllUid() const;\r |
176 | };\r |
177 | \r |
178 | #endif\r |