#include "../../SDL_internal.h"
#include "SDL_main.h"
#include <e32std.h>
#include <e32def.h>
#include <e32svr.h>
#include <e32base.h>
#include <estlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <w32std.h>
#include <apgtask.h>
#include "SDL_error.h"
extern "C" int main(int argc, char *argv[]);
TInt E32Main()
{
CTrapCleanup* cleanup = CTrapCleanup::New();
SpawnPosixServerThread();
int argc = 0;
char** argv = 0;
char** envp = 0;
__crt0(argc,argv,envp);
_REENT;
RThread currentThread;
RProcess thisProcess;
TParse exeName;
exeName.Set(thisProcess.FileName(), NULL, NULL);
currentThread.Rename(exeName.Name());
currentThread.SetProcessPriority(EPriorityLow);
currentThread.SetPriority(EPriorityMuchLess);
RHeap* newHeap = NULL;
RHeap* oldHeap = NULL;
TInt heapSize = 7500000;
int ret;
newHeap = User::ChunkHeap(NULL, heapSize, heapSize, KMinHeapGrowBy);
if (NULL == newHeap)
{
ret = 3;
goto cleanup;
}
else
{
oldHeap = User::SwitchHeap(newHeap);
SDL_SetMainReady();
ret = SDL_main(argc, argv);
}
cleanup:
_cleanup();
CloseSTDLIB();
delete cleanup;
return ret;
}