UIQ3 update, some makefile unification, rm old configs, stuff
[picodrive.git] / platform / uiq3 / App.cpp
index 74e7d24..68a802c 100644 (file)
@@ -12,9 +12,9 @@
  *\r
  *******************************************************************/\r
 \r
-#include "app.h"\r
+#include "App.h"\r
 // #include "picodriven.mbg" // bitmap identifiers\r
-#include <PicoDrive.RSG> // resource include\r
+#include "rsc/picodrive.rsg" // resource include\r
 #include <eikenv.h>\r
 #include <qbtselectdlg.h>\r
 //#include <gulutil.h>\r
 #include <eikedwin.h>\r
 #include <s32strm.h>\r
 \r
-#include <QikAppUi.h>\r
-#include <QikEditCategoryObserver.h>\r
-#include <QikSelectFileDlg.h>\r
-#include <QikCommand.h>\r
+#include <qikappui.h>\r
+#include <qikeditcategoryobserver.h>\r
+#include <qikselectfiledlg.h>\r
+#include <qikcommand.h>\r
 \r
 #include "Dialogs.h"\r
 #include "engine/debug.h"\r
-\r
+#include "../common/emu.h"\r
+#include "emu.h"\r
 \r
 \r
 ////////////////////////////////////////////////////////////////\r
@@ -161,37 +162,37 @@ void CPicolAppView::HandleCommandL(CQikCommand& aCommand)
                        break;\r
 \r
                case EEikCmdPicoFrameskipAuto:\r
-                       iCurrentConfig.iFrameskip = TPicoConfig::PFSkipAuto;\r
-                       iQikAppUi.Document()->SaveL();\r
+                       currentConfig.Frameskip = -1;\r
+                       emu_WriteConfig(0);\r
                        break;\r
 \r
                case EEikCmdPicoFrameskip0:\r
-                       iCurrentConfig.iFrameskip = 0;\r
-                       iQikAppUi.Document()->SaveL();\r
+                       currentConfig.Frameskip = 0;\r
+                       emu_WriteConfig(0);\r
                        break;\r
 \r
                case EEikCmdPicoFrameskip1:\r
-                       iCurrentConfig.iFrameskip = 1;\r
-                       iQikAppUi.Document()->SaveL();\r
+                       currentConfig.Frameskip = 1;\r
+                       emu_WriteConfig(0);\r
                        break;\r
 \r
                case EEikCmdPicoFrameskip2:\r
-                       iCurrentConfig.iFrameskip = 2;\r
-                       iQikAppUi.Document()->SaveL();\r
+                       currentConfig.Frameskip = 2;\r
+                       emu_WriteConfig(0);\r
                        break;\r
 \r
                case EEikCmdPicoFrameskip4:\r
-                       iCurrentConfig.iFrameskip = 4;\r
-                       iQikAppUi.Document()->SaveL();\r
+                       currentConfig.Frameskip = 4;\r
+                       emu_WriteConfig(0);\r
                        break;\r
 \r
                case EEikCmdPicoFrameskip8:\r
-                       iCurrentConfig.iFrameskip = 8;\r
-                       iQikAppUi.Document()->SaveL();\r
+                       currentConfig.Frameskip = 8;\r
+                       emu_WriteConfig(0);\r
                        break;\r
 \r
                case EEikCmdExit:\r
-                       iQikAppUi.Document()->SaveL();\r
+                       emu_Deinit();\r
                        CPicoGameSession::freeResources();\r
                        //break; // this is intentional\r
 \r
@@ -214,11 +215,14 @@ void CPicolAppView::DisplayOpenROMDialogL()
        CleanupStack::PushL(fileArray);\r
        _LIT16(KDlgTitle, "Select a ROM file");\r
 \r
+       TPtrC8 text8((TUint8*) loadedRomFName);\r
+       iCurrentConfig.iLastROMFile.Copy(text8);\r
+\r
        if( CQikSelectFileDlg::RunDlgLD( *mimeArray, *fileArray, &KDlgTitle, &iCurrentConfig.iLastROMFile) )\r
        {\r
                CEikonEnv::Static()->BusyMsgL(_L("Loading ROM"));\r
                TPtrC16 file = (*fileArray)[0];\r
-               iCurrentConfig.iLastROMFile.Copy(file);\r
+               //iCurrentConfig.iLastROMFile.Copy(file);\r
 \r
                // push the config first\r
                CPicoGameSession::Do(PicoMsgSetAppView, this);\r
@@ -271,7 +275,7 @@ void CPicolAppView::DisplayOpenROMDialogL()
                                CEikonEnv::Static()->InfoWinL(_L("Error"), _L("Failed to start soundsystem, disabled sound."));\r
                                break;\r
                }\r
-               if(res == 6 || res == 7) iCurrentConfig.iFlags &= ~4;\r
+               if(res == 6 || res == 7) currentConfig.EmuOpt &= ~EOPT_EN_SOUND;\r
 \r
                if(iROMLoaded) {\r
                        if(iTitleAdded)\r
@@ -287,11 +291,13 @@ void CPicolAppView::DisplayOpenROMDialogL()
 \r
 void CPicolAppView::DisplayConfigDialogL()\r
 {\r
-       CPicoConfigDialog* configDialog = new(ELeave)CPicoConfigDialog(iCurrentConfig);\r
+       CPicoConfigDialog* configDialog = new(ELeave)CPicoConfigDialog(currentConfig);\r
+       emu_packConfig();\r
        configDialog->ExecuteLD(R_PICO_CONFIG);\r
+       emu_unpackConfig();\r
+       emu_WriteConfig(0);\r
 \r
-       CPicoGameSession::Do(PicoMsgConfigChange, &iCurrentConfig);\r
-       iQikAppUi.Document()->SaveL();\r
+       CPicoGameSession::Do(PicoMsgConfigChange, &currentConfig);\r
 }\r
 \r
 \r
@@ -311,13 +317,13 @@ void CPicolAppView::DisplayAboutDialogL()
 }\r
 \r
 #ifdef __DEBUG_PRINT\r
-extern "C" char *debugString();\r
+extern "C" char *PDebugMain();\r
 #endif\r
 \r
 void CPicolAppView::DisplayDebugDialogL()\r
 {\r
 #ifdef __DEBUG_PRINT\r
-       CDebugDialog* dialog = new (ELeave) CDebugDialog(debugString());\r
+       CDebugDialog* dialog = new (ELeave) CDebugDialog(PDebugMain());\r
 \r
        dialog->PrepareLC(R_PICO_DEBUG);\r
        dialog->RunLD();\r
@@ -348,7 +354,7 @@ void CPicolAppView::UpdateCommandList()
        cmd_resume->SetDimmed(dimmed);\r
 \r
        // frameskip\r
-       TInt fs_index = iCurrentConfig.iFrameskip + 1;\r
+       TInt fs_index = currentConfig.Frameskip + 1;\r
        if (fs_index >= 0 && fs_index < 10 && cmd_fs[fs_index])\r
        {\r
                cmd_fs[fs_index]->SetChecked(ETrue);\r
@@ -384,7 +390,6 @@ void CPicolAppUi::ConstructL()
 CPicolDocument::CPicolDocument(CQikApplication& aApp)\r
 : CQikDocument(aApp)\r
 {\r
-       iCurrentConfig.SetDefaults();\r
 }\r
 \r
 CQikAppUi* CPicolDocument::CreateAppUiL()\r
@@ -397,6 +402,7 @@ Called by the framework when ::SaveL has been called.
 */\r
 void CPicolDocument::StoreL(CStreamStore& aStore, CStreamDictionary& aStreamDic) const\r
 {\r
+#if 0\r
        RStoreWriteStream stream;\r
 \r
        TStreamId preferenceId = stream.CreateLC(aStore);\r
@@ -408,7 +414,7 @@ void CPicolDocument::StoreL(CStreamStore& aStore, CStreamDictionary& aStreamDic)
        // Ensures that any buffered data is written to aStore\r
        stream.CommitL();\r
        CleanupStack::PopAndDestroy(); // stream\r
-\r
+#endif\r
 /*\r
        // tmp\r
        TInt res;\r
@@ -427,6 +433,7 @@ Loads the application data from disk, i.e. domain data and preferences.
 */\r
 void CPicolDocument::RestoreL(const CStreamStore& aStore, const CStreamDictionary& aStreamDic)\r
 { \r
+#if 0\r
        // Find the stream ID of the model data from the stream dictionary:\r
        TStreamId preferenceId(aStreamDic.At(KUidPicolStore));\r
        RStoreReadStream stream;\r
@@ -438,7 +445,7 @@ void CPicolDocument::RestoreL(const CStreamStore& aStore, const CStreamDictionar
        }\r
 \r
        CleanupStack::PopAndDestroy(); // stream\r
-\r
+#endif\r
 \r
        // tmp\r
 /*     TInt res;\r
@@ -475,9 +482,15 @@ TUid CPicolApplication::AppDllUid() const
 }\r
 \r
 \r
+extern "C" TInt my_SetExceptionHandler(TInt, TExceptionHandler, TUint32);\r
+\r
 GLDEF_C TInt E32Main()\r
 {\r
+       // doesn't work :(\r
        User::SetExceptionHandler(ExceptionHandler, (TUint32) -1);\r
+//     my_SetExceptionHandler(KCurrentThreadHandle, ExceptionHandler, 0xffffffff);\r
+\r
+       emu_Init();\r
 \r
        return EikStart::RunApplication(NewApplication);\r
 }\r