--- np2/macosx/np2.cpp 2004/02/16 05:31:31 1.52 +++ np2/macosx/np2.cpp 2004/03/15 05:06:01 1.56 @@ -38,14 +38,34 @@ #include "np2opening.h" #include "toolwin.h" #include "aboutdlg.h" +#include "keystat.h" +#include "kdispwin.h" -#include #define USE_RESUME #define NP2OPENING // #define OPENING_WAIT 1500 - NP2OSCFG np2oscfg = {"Neko Project IIx", -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0}; + NP2OSCFG np2oscfg = {"Neko Project IIx", //titles + -1, //winx + -1, //winy + 0, //NOWAIT + 0, //DRAW_SKIP + 0, //DISPCLK + 0, //F11KEY + 0, //F12KEY + 0, //MOUSE_SW + 0, //JOYPAD1 + {5, 0, 0x3e, 19200, "", "", "GM", ""}, //mpu + 0, //confirm + 0, //resume + 1, //toolwin + 0, //jastsnd + 0, //I286SAVE +#ifdef SUPPORT_KEYDISP + 1, //keydisp +#endif + }; WindowPtr hWndMain; BOOL np2running; @@ -147,6 +167,9 @@ static void MenuBarInit(void) { SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2OPEN, kMenuShiftModifier); SetMenuItemModifiers(GetMenuRef(IDM_FDD2), IDM_FDD2EJECT, kMenuShiftModifier); SetMenuItemModifiers(GetMenuRef(IDM_SASI2), IDM_SASI2OPEN, kMenuShiftModifier); +#ifndef SUPPORT_KEYDISP + DisableMenuItem(GetMenuRef(IDM_OTHER), IDM_KEYDISP); +#endif DrawMenuBar(); #else OSStatus err; @@ -185,7 +208,7 @@ static void changescreen(BYTE mode) { } } -static void HandleMenuChoice(long wParam) { +void HandleMenuChoice(long wParam) { UINT update; @@ -608,10 +631,22 @@ static void HandleMenuChoice(long wParam menu_setmsrapid(np2cfg.MOUSERAPID ^ 1); update |= SYS_UPDATECFG; break; + case IDM_RECORDING: menu_setrecording(false); break; +#if defined(SUPPORT_KEYDISP) + case IDM_KEYDISP: + menu_setkeydisp(np2oscfg.keydisp ^ 1); + if (np2oscfg.keydisp) { + kdispwin_create(); + } + else { + kdispwin_destroy(); + } + break; +#endif case IDM_I286SAVE: debugsub_status(); @@ -659,6 +694,7 @@ static void HandleMouseDown(EventRecord static void framereset(UINT waitcnt) { framecnt = 0; + kdispwin_draw((BYTE)waitcnt); toolwin_draw((BYTE)waitcnt); if (np2oscfg.DISPCLK & 3) { if (sysmng_workclockrenewal()) { @@ -673,6 +709,7 @@ static void processwait(UINT waitcnt) { timing_setcount(0); framereset(waitcnt); } + soundmng_sync(); } static void getstatfilename(char *path, const char *ext, int size) { @@ -707,11 +744,11 @@ static void flagload(const char *ext) { ret = IDOK; getstatfilename(path, ext, sizeof(path)); r = statsave_check(path, buf, sizeof(buf)); - if (r & (~NP2FLAG_DISKCHG)) { + if (r & (~STATFLAG_DISKCHG)) { ResumeErrorDialogProc(); ret = IDCANCEL; } - else if (r & NP2FLAG_DISKCHG) { + else if (r & STATFLAG_DISKCHG) { ret = ResumeWarningDialogProc(buf); } if (ret == IDOK) { @@ -742,7 +779,11 @@ int main(int argc, char *argv[]) { TRACEINIT(); - toolwin_readini(); + keystat_initialize(); + kdispwin_initialize(); + + toolwin_readini(); + kdispwin_readini(); if (!(setupMainWindow())) { return(0); } @@ -770,6 +811,9 @@ int main(int argc, char *argv[]) { menu_setdispclk(np2oscfg.DISPCLK); menu_setbtnrapid(np2cfg.BTN_RAPID); menu_setbtnmode(np2cfg.BTN_MODE); +#if defined(SUPPORT_KEYDISP) + menu_setkeydisp(np2oscfg.keydisp); +#endif if (np2oscfg.I286SAVE) { AppendMenuItemTextWithCFString(GetMenuRef(IDM_OTHER), CFCopyLocalizedString(CFSTR("i286 save"),"i286"), kMenuItemAttrIconDisabled, NULL,NULL); } @@ -790,7 +834,7 @@ int main(int argc, char *argv[]) { S98_init(); hid_init(); -#ifndef SUPPORT_WAVEMIX +#ifndef SUPPORT_SWSEEKSND if (soundmng_initialize() == SUCCESS) { soundmng_pcmvolume(SOUND_PCMSEEK, np2cfg.MOTORVOL); soundmng_pcmvolume(SOUND_PCMSEEK1, np2cfg.MOTORVOL); @@ -803,6 +847,7 @@ int main(int argc, char *argv[]) { mousemng_enable(MOUSEPROC_SYSTEM); } #endif + #ifdef OPENING_WAIT while((GETTICK() - tick) < OPENING_WAIT); #endif @@ -813,9 +858,14 @@ int main(int argc, char *argv[]) { flagload(np2resume); } #endif +#if defined(SUPPORT_KEYDISP) + if (np2oscfg.keydisp) { + kdispwin_create(); + } +#endif theTarget = GetEventDispatcherTarget(); - + np2running = TRUE; while(np2running) { if (ReceiveNextEvent(0, NULL,kEventDurationNoWait,true, &theEvent)== noErr) @@ -914,21 +964,23 @@ int main(int argc, char *argv[]) { #if defined(NP2GCC) mousemng_disable(MOUSEPROC_SYSTEM); #endif -#ifndef SUPPORT_WAVEMIX +#ifndef SUPPORT_SWSEEKSND soundmng_deinitialize(); #endif scrnmng_destroy(); + kdispwin_destroy(); if (sys_updates & (SYS_UPDATECFG | SYS_UPDATEOSCFG)) { initsave(); // np2.cfg create toolwin_writeini(); // np2.cfg append + kdispwin_writeini(); } TRACETERM(); macossub_term(); dosio_term(); - DisposeWindow(hWndMain); toolwin_close(); + DisposeWindow(hWndMain); (void)argc; (void)argv; @@ -1264,7 +1316,3 @@ static void toggleFullscreen(void) { CheckMenuItem(GetMenuHandle(IDM_SCREEN), LoWord(IDM_FULLSCREEN), scrnmode & SCRNMODE_FULLSCREEN); soundmng_play(); } - -void recieveCommand(long param) { - HandleMenuChoice(param); -}