static void changescreen(UINT8 newmode) { UINT8 change; UINT8 renewal; change = scrnmode ^ newmode; renewal = (change & SCRNMODE_FULLSCREEN); if (newmode & SCRNMODE_FULLSCREEN) { renewal |= (change & SCRNMODE_HIGHCOLOR); } else { renewal |= (change & SCRNMODE_ROTATEMASK); } if (renewal) { soundmng_stop(); mousemng_disable(MOUSEPROC_WINUI); scrnmng_destroy(); if (scrnmng_create(newmode) == SUCCESS) { scrnmode = newmode; } else { if (scrnmng_create(scrnmode) != SUCCESS) { PostQuitMessage(0); return; } } scrndraw_redraw(); mousemng_enable(MOUSEPROC_WINUI); soundmng_play(); } else { scrnmode = newmode; } }
static void eventproc(EventRecord *event) { int keycode; keycode = (event->message & keyCodeMask) >> 8; switch(event->what) { case mouseDown: HandleMouseDown(event); break; case updateEvt: HandleUpdateEvent(event); break; case keyDown: case autoKey: if (!np2running) { break; } #if !TARGET_API_MAC_CARBON if ((keycode == 0x6f) && (np2oscfg.F12KEY == 0)) { HandleMenuChoice(IDM_MOUSE); break; } #endif if (event->modifiers & cmdKey) { #if !TARGET_API_MAC_CARBON if (mackbd_keydown(keycode, TRUE)) { break; } #endif soundmng_stop(); mousemng_disable(MOUSEPROC_MACUI); #if TARGET_API_MAC_CARBON HandleMenuChoice(MenuEvent(event)); #else HandleMenuChoice(MenuKey(event->message & charCodeMask)); #endif mousemng_enable(MOUSEPROC_MACUI); soundmng_play(); } else { mackbd_keydown(keycode, FALSE); } break; case keyUp: mackbd_keyup(keycode); break; case mouseUp: mousemng_buttonevent(MOUSEMNG_LEFTUP); mousemng_buttonevent(MOUSEMNG_RIGHTUP); break; case activateEvt: mackbd_activate((event->modifiers & activeFlag)?TRUE:FALSE); break; } }
static BOOL selectfile(const FSELPRM *prm, OEMCHAR *path, int size, const OEMCHAR *def) { const OEMCHAR *title; soundmng_stop(); ZeroMemory(&filesel, sizeof(filesel)); if ((def) && (def[0])) { file_cpyname(filesel.path, def, NELEMENTS(filesel.path)); } else { file_cpyname(filesel.path, file_getcd(str_null), NELEMENTS(filesel.path)); file_cutname(filesel.path); } title = NULL; if (prm) { title = prm->title; filesel.filter = prm->filter; filesel.ext = prm->ext; } menudlg_create(DLGFS_WIDTH, DLGFS_HEIGHT, title, dlgcmd); menubase_modalproc(); soundmng_play(); if (filesel.result) { file_cpyname(path, filesel.path, size); return(TRUE); } else { return(FALSE); } }
void ccfile_term(void) { unsigned int id; if (!dc_savedtimes) { return; } soundmng_stop(); dc_savedtimes = 0; for (;;) { id = getID(); if (id == 0) break; SaveData_finalize(id); delID(id); } init_save(); soundmng_play(); }
void uninstall_idle_process(void) { if (--install_count == 0) { soundmng_stop(); g_source_remove(idle_id); } }
static int flagsave(const TCHAR *ext) { int ret; TCHAR path[MAX_PATH]; getstatfilename(path, ext, NELEMENTS(path)); soundmng_stop(); ret = statsave_save(path); if (ret) { file_delete(path); } soundmng_play(); return(ret); }
static void HandleMouseDown(EventRecord *pevent) { WindowPtr hWnd; Rect rDrag; switch(FindWindow(pevent->where, &hWnd)) { case inMenuBar: if (np2running) { soundmng_stop(); mousemng_disable(MOUSEPROC_MACUI); HandleMenuChoice(MenuSelect(pevent->where)); mousemng_enable(MOUSEPROC_MACUI); soundmng_play(); } break; case inDrag: #if TARGET_API_MAC_CARBON { BitMap gscreenBits; GetQDGlobalsScreenBits(&gscreenBits); rDrag = gscreenBits.bounds; InsetRect(&rDrag, DRAG_THRESHOLD, DRAG_THRESHOLD); DragWindow(hWnd, pevent->where, &rDrag); } #else rDrag = qd.screenBits.bounds; InsetRect(&rDrag, DRAG_THRESHOLD, DRAG_THRESHOLD); DragWindow(hWnd, pevent->where, &rDrag); #endif break; case inContent: mousemng_buttonevent((pevent->modifiers & (1 << 12)) ?MOUSEMNG_RIGHTDOWN:MOUSEMNG_LEFTDOWN); break; case inGoAway: if (TrackGoAway(hWnd, pevent->where)) { } np2running = FALSE; break; } }
int statsave_load(const OEMCHAR *filename) { SFFILEH sffh; int ret; BOOL done; const SFENTRY *tbl; const SFENTRY *tblterm; sffh = statflag_open(filename, NULL, 0); if (sffh == NULL) { return(STATFLAG_FAILURE); } // PCCORE read! ret = statflag_readsection(sffh); if ((ret != STATFLAG_SUCCESS) || (memcmp(sffh->sfh.hdr.index, np2tbl[0].index, sizeof(sffh->sfh.hdr.index)))) { statflag_close(sffh); return(STATFLAG_FAILURE); } soundmng_stop(); rs232c_midipanic(); mpu98ii_midipanic(); pc9861k_midipanic(); sxsi_alltrash(); ret |= flagload_common(&sffh->sfh, np2tbl); CPU_RESET(); CPU_SETEXTSIZE((UINT32)pccore.extmem); nevent_allreset(); sound_changeclock(); beep_changeclock(); sound_reset(); fddmtrsnd_bind(); iocore_reset(&np2cfg); // サウンドでpicを呼ぶので… cbuscore_reset(&np2cfg); fmboard_reset(&np2cfg, pccore.sound); done = FALSE; while((!done) && (ret != STATFLAG_FAILURE)) { ret |= statflag_readsection(sffh); tbl = np2tbl + 1; tblterm = np2tbl + NELEMENTS(np2tbl); while(tbl < tblterm) { if (!memcmp(sffh->sfh.hdr.index, tbl->index, sizeof(sffh->sfh.hdr.index))) { break; } tbl++; } if (tbl < tblterm) { switch(tbl->type) { case STATFLAG_BIN: ret |= flagload_common(&sffh->sfh, tbl); break; case STATFLAG_TERM: done = TRUE; break; case STATFLAG_COM: ret |= flagload_com(&sffh->sfh, tbl); break; case STATFLAG_DMA: ret |= flagload_dma(&sffh->sfh, tbl); break; case STATFLAG_EGC: ret |= flagload_egc(&sffh->sfh, tbl); break; case STATFLAG_EPSON: ret |= flagload_epson(&sffh->sfh, tbl); break; case STATFLAG_EVT: ret |= flagload_evt(&sffh->sfh, tbl); break; case STATFLAG_EXT: ret |= flagload_ext(&sffh->sfh, tbl); break; case STATFLAG_FDD: ret |= flagload_fdd(&sffh->sfh, tbl); break; #if !defined(DISABLE_SOUND) case STATFLAG_FM: ret |= flagload_fm(&sffh->sfh, tbl); break; #endif case STATFLAG_GIJ: ret |= flagload_gij(&sffh->sfh, tbl); break; #if defined(SUPPORT_HOSTDRV) case STATFLAG_HDRV: ret |= hostdrv_sfload(&sffh->sfh, tbl); break; #endif case STATFLAG_MEM: ret |= flagload_mem(&sffh->sfh, tbl); break; case STATFLAG_SXSI: ret |= flagload_sxsi(&sffh->sfh, tbl); break; default: ret |= STATFLAG_WARNING; break; } } else { ret |= STATFLAG_WARNING; } } statflag_close(sffh); // I/O作り直し MEMM_ARCH((pccore.model & PCMODEL_EPSON)?1:0); iocore_build(); iocore_bind(); cbuscore_bind(); fmboard_bind(); gdcs.textdisp |= GDCSCRN_EXT; gdcs.textdisp |= GDCSCRN_ALLDRAW2; gdcs.grphdisp |= GDCSCRN_EXT; gdcs.grphdisp |= GDCSCRN_ALLDRAW2; gdcs.palchange = GDCSCRN_REDRAW; tramflag.renewal = 1; cgwindow.writable |= 0x80; #if defined(CPUSTRUC_FONTPTR) FONTPTR_LOW = fontrom + cgwindow.low; FONTPTR_HIGH = fontrom + cgwindow.high; #endif MEMM_VRAM(vramop.operate); fddmtr_reset(); soundmng_play(); return(ret); }
CCFILEH ccfile_open(const char *fname) { CCFILEH ret; CCFILEH cc; CCFILEH stc; int fd; ret = NULL; stc = NULL; cc = fh; for (int i=0; i<DATACACHES; ++i) { if (!milstr_cmp(cc->name, fname)) { ret = cc; break; } cc++; } if (ret == NULL) { stc = (CCFILEH)&fh[stc_index++]; stc_index &= (DATACACHES-1); } if ((ret == NULL) && (stc != NULL)) { fd = open(fname,O_RDONLY); if (fd < 0) { goto cc_err1; } stc->size = file_size(fd); file_cpyname(stc->name, fname, MAX_PATH); if (stc->size > DATACACHESIZE) { goto cc_err2; } soundmng_stop(); long pos = 0; unsigned int size = stc->size; unsigned int len = size/256; ZeroMemory(stc->ptr, DATACACHESIZE); int n = 0; while (size > 0) { int r = pread(fd, stc->ptr + pos, len, pos); display_progress(n, 256); ++n; pos += r; size -= r; } soundmng_play(); close(fd); uLong adler; adler = adler32(0L, Z_NULL, 0); stc->id = adler32(adler, stc->ptr, stc->size); loadSaveDatafromVmu(stc->id); patchSaveData(stc->id, stc->ptr); ret = stc; } ret->pos = 0; return ret; cc_err2: close(fd); cc_err1: return NULL; }