X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fuiq3%2FApp.cpp;h=d1be510d0fd43512a7f598a74bb8093bdadcb0d6;hb=e59af1c9b829484ffa4c84b680c6ce9abcdfa53f;hp=74e7d24750652dce6d300ed22a9d468012c0f782;hpb=cc68a136aa179a5f32fe40208371eb9c2b0aadae;p=picodrive.git diff --git a/platform/uiq3/App.cpp b/platform/uiq3/App.cpp index 74e7d24..d1be510 100644 --- a/platform/uiq3/App.cpp +++ b/platform/uiq3/App.cpp @@ -12,9 +12,9 @@ * *******************************************************************/ -#include "app.h" +#include "App.h" // #include "picodriven.mbg" // bitmap identifiers -#include // resource include +#include "rsc/picodrive.rsg" // resource include #include #include //#include @@ -25,15 +25,17 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include "Dialogs.h" #include "engine/debug.h" +#include "../common/emu.h" +#include "emu.h" - +extern "C" char menuErrorMsg[]; //////////////////////////////////////////////////////////////// // @@ -161,37 +163,37 @@ void CPicolAppView::HandleCommandL(CQikCommand& aCommand) break; case EEikCmdPicoFrameskipAuto: - iCurrentConfig.iFrameskip = TPicoConfig::PFSkipAuto; - iQikAppUi.Document()->SaveL(); + currentConfig.Frameskip = -1; + emu_write_config(0); break; case EEikCmdPicoFrameskip0: - iCurrentConfig.iFrameskip = 0; - iQikAppUi.Document()->SaveL(); + currentConfig.Frameskip = 0; + emu_write_config(0); break; case EEikCmdPicoFrameskip1: - iCurrentConfig.iFrameskip = 1; - iQikAppUi.Document()->SaveL(); + currentConfig.Frameskip = 1; + emu_write_config(0); break; case EEikCmdPicoFrameskip2: - iCurrentConfig.iFrameskip = 2; - iQikAppUi.Document()->SaveL(); + currentConfig.Frameskip = 2; + emu_write_config(0); break; case EEikCmdPicoFrameskip4: - iCurrentConfig.iFrameskip = 4; - iQikAppUi.Document()->SaveL(); + currentConfig.Frameskip = 4; + emu_write_config(0); break; case EEikCmdPicoFrameskip8: - iCurrentConfig.iFrameskip = 8; - iQikAppUi.Document()->SaveL(); + currentConfig.Frameskip = 8; + emu_write_config(0); break; case EEikCmdExit: - iQikAppUi.Document()->SaveL(); + emu_Deinit(); CPicoGameSession::freeResources(); //break; // this is intentional @@ -214,11 +216,14 @@ void CPicolAppView::DisplayOpenROMDialogL() CleanupStack::PushL(fileArray); _LIT16(KDlgTitle, "Select a ROM file"); + TPtrC8 text8((TUint8*) rom_fname_loaded); + iCurrentConfig.iLastROMFile.Copy(text8); + if( CQikSelectFileDlg::RunDlgLD( *mimeArray, *fileArray, &KDlgTitle, &iCurrentConfig.iLastROMFile) ) { CEikonEnv::Static()->BusyMsgL(_L("Loading ROM")); TPtrC16 file = (*fileArray)[0]; - iCurrentConfig.iLastROMFile.Copy(file); + //iCurrentConfig.iLastROMFile.Copy(file); // push the config first CPicoGameSession::Do(PicoMsgSetAppView, this); @@ -231,26 +236,18 @@ void CPicolAppView::DisplayOpenROMDialogL() iROMLoaded = EFalse; switch (res) { - case PicoErrRomOpenFailed: - CEikonEnv::Static()->InfoWinL(_L("Error"), _L("Failed to open file.")); + case PicoErrRomOpenFailed: { + TBuf<64> mErrorBuff; + TPtrC8 buff8((TUint8*) menuErrorMsg); + mErrorBuff.Copy(buff8); + CEikonEnv::Static()->InfoWinL(_L("Error"), mErrorBuff); break; + } case PicoErrOutOfMem: CEikonEnv::Static()->InfoWinL(_L("Error"), _L("Failed to allocate memory.")); break; - case PicoErrNotRom: - CEikonEnv::Static()->InfoWinL(_L("Error"), _L("The file you selected is not a game ROM.")); - break; - - case PicoErrNoRomsInArchive: - CEikonEnv::Static()->InfoWinL(_L("Error"), _L("No game ROMs found in zipfile.")); - break; - - case PicoErrUncomp: - CEikonEnv::Static()->InfoWinL(_L("Error"), _L("Failed while unzipping ROM.")); - break; - case PicoErrEmuThread: CEikonEnv::Static()->InfoWinL(_L("Error"), _L("Failed to create emulation thread. Try to restart this application.")); break; @@ -271,7 +268,7 @@ void CPicolAppView::DisplayOpenROMDialogL() CEikonEnv::Static()->InfoWinL(_L("Error"), _L("Failed to start soundsystem, disabled sound.")); break; } - if(res == 6 || res == 7) iCurrentConfig.iFlags &= ~4; + if(res == 6 || res == 7) currentConfig.EmuOpt &= ~EOPT_EN_SOUND; if(iROMLoaded) { if(iTitleAdded) @@ -287,11 +284,13 @@ void CPicolAppView::DisplayOpenROMDialogL() void CPicolAppView::DisplayConfigDialogL() { - CPicoConfigDialog* configDialog = new(ELeave)CPicoConfigDialog(iCurrentConfig); + CPicoConfigDialog* configDialog = new(ELeave)CPicoConfigDialog(currentConfig); + emu_pack_config(); configDialog->ExecuteLD(R_PICO_CONFIG); + emu_unpack_config(); + emu_write_config(0); - CPicoGameSession::Do(PicoMsgConfigChange, &iCurrentConfig); - iQikAppUi.Document()->SaveL(); + CPicoGameSession::Do(PicoMsgConfigChange, ¤tConfig); } @@ -311,13 +310,13 @@ void CPicolAppView::DisplayAboutDialogL() } #ifdef __DEBUG_PRINT -extern "C" char *debugString(); +extern "C" char *PDebugMain(); #endif void CPicolAppView::DisplayDebugDialogL() { #ifdef __DEBUG_PRINT - CDebugDialog* dialog = new (ELeave) CDebugDialog(debugString()); + CDebugDialog* dialog = new (ELeave) CDebugDialog(PDebugMain()); dialog->PrepareLC(R_PICO_DEBUG); dialog->RunLD(); @@ -348,7 +347,7 @@ void CPicolAppView::UpdateCommandList() cmd_resume->SetDimmed(dimmed); // frameskip - TInt fs_index = iCurrentConfig.iFrameskip + 1; + TInt fs_index = currentConfig.Frameskip + 1; if (fs_index >= 0 && fs_index < 10 && cmd_fs[fs_index]) { cmd_fs[fs_index]->SetChecked(ETrue); @@ -384,7 +383,6 @@ void CPicolAppUi::ConstructL() CPicolDocument::CPicolDocument(CQikApplication& aApp) : CQikDocument(aApp) { - iCurrentConfig.SetDefaults(); } CQikAppUi* CPicolDocument::CreateAppUiL() @@ -397,6 +395,7 @@ Called by the framework when ::SaveL has been called. */ void CPicolDocument::StoreL(CStreamStore& aStore, CStreamDictionary& aStreamDic) const { +#if 0 RStoreWriteStream stream; TStreamId preferenceId = stream.CreateLC(aStore); @@ -408,7 +407,7 @@ void CPicolDocument::StoreL(CStreamStore& aStore, CStreamDictionary& aStreamDic) // Ensures that any buffered data is written to aStore stream.CommitL(); CleanupStack::PopAndDestroy(); // stream - +#endif /* // tmp TInt res; @@ -427,6 +426,7 @@ Loads the application data from disk, i.e. domain data and preferences. */ void CPicolDocument::RestoreL(const CStreamStore& aStore, const CStreamDictionary& aStreamDic) { +#if 0 // Find the stream ID of the model data from the stream dictionary: TStreamId preferenceId(aStreamDic.At(KUidPicolStore)); RStoreReadStream stream; @@ -438,7 +438,7 @@ void CPicolDocument::RestoreL(const CStreamStore& aStore, const CStreamDictionar } CleanupStack::PopAndDestroy(); // stream - +#endif // tmp /* TInt res; @@ -475,9 +475,15 @@ TUid CPicolApplication::AppDllUid() const } +extern "C" TInt my_SetExceptionHandler(TInt, TExceptionHandler, TUint32); + GLDEF_C TInt E32Main() { + // doesn't work :( User::SetExceptionHandler(ExceptionHandler, (TUint32) -1); +// my_SetExceptionHandler(KCurrentThreadHandle, ExceptionHandler, 0xffffffff); + + emu_Init(); return EikStart::RunApplication(NewApplication); }