Remove stack size from CSDL::CallMainL().
[SDL.s60v3.git] / symbian / include / sdlepocapi.h
blobf7e67e08535a483f7243a5278076182b81a0f9be
1 #ifndef EPOC_SDL_H
2 #define EPOC_SDL_H
4 #include <e32std.h>
5 #include <remconcoreapitargetobserver.h>
7 class CDesC8Array;
8 class TWsEvent;
9 class RWindow;
10 class CAknAppUi;
11 class RWsSession;
12 class CWsScreenDevice;
13 class CBitmapContext;
14 class CFbsBitmap;
16 //internal stuff
17 extern "C"
19 typedef int (*mainfunc1) ();
20 typedef int (*mainfunc2) (int argc, char* argv[]);
21 typedef int (*mainfunc3) (int argc, char* argv[], char* env[]);
22 typedef void (*mainfunc4) ();
23 typedef void (*mainfunc5) (int argc, char* argv[]);
24 typedef void (*mainfunc6) (int argc, char* argv[], char* env[]);
27 //internal stuff
28 extern "C"
30 int SDL_main (int argc, char* argv[]);
33 //internal stuff
34 class TMainFunc
36 public:
37 TMainFunc();
38 TMainFunc(mainfunc1);
39 TMainFunc(mainfunc2);
40 TMainFunc(mainfunc3);
41 TMainFunc(mainfunc4);
42 TMainFunc(mainfunc5);
43 TMainFunc(mainfunc6);
44 const void* operator[](TInt aIndex) const;
46 private:
47 void* iMainFunc[6];
51 class CSDL : public CBase, public MRemConCoreApiTargetObserver
53 public:
54 static CSDL* NewL();
55 void SetContainerWindowL(RWindow& aWindow, RWsSession& aSession, CWsScreenDevice& aDevice); //the window where drawn happens, should be recalled (propably in application HandleResourceChange) if screen device changes
56 ~CSDL();
57 void AppendWsEvent(const TWsEvent& aEvent); //give event to SDL
58 TInt GetSDLCode(TInt aScanCode); //get SDL internal key code bind to given scancode, return -1 if scancode is not found, aScancode must be postive number
59 TInt SetSDLCode(TInt aScanCode, TInt aSDLCode); //set internal SDL code with given key code, return replaced code
60 TInt SDLCodesCount() const; //return count of scancodes
61 void ResetSDLCodes(); //rest all code replacement to their initial values
62 void Resume(); //restart SDL main
63 void Suspend(); //stop SDL main
64 void SDLPanic(const TDesC& aInfo, TInt aErr); //Panic from SDL thread (see SDLThreadEvent)
65 TThreadId CallMainL(const TMainFunc& aFunc, TRequestStatus* const aStatus, const CDesC8Array* const iArg); //internal
66 void Resize();
68 void MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct);
70 protected:
71 CSDL();
74 #endif