void profile_close() { if (profile_fd==NULL) slapi_log_err(SLAPI_LOG_ERR, repl_plugin_name ,"profile_close: profile file not open."); else textfile_close(profile_fd); }
/** * フレームワークは、ユーザーがコントロール メニューからコマンドを選択したとき、または最大化または最小化ボタンを選択すると、このメンバー関数を呼び出します * @param[in] nID 必要なシステム コマンドの種類を指定します * @param[in] lParam カーソルの座標 */ void CTraceWnd::OnSysCommand(UINT nID, LPARAM lParam) { switch (nID) { case IDM_TRACE_TRACE: m_nFlags ^= 1; break; case IDM_TRACE_VERBOSE: m_nFlags ^= 2; break; case IDM_TRACE_ENABLE: m_nFlags ^= 4; break; case IDM_TRACE_FILEOUT: if (m_tfh != NULL) { textfile_close(m_tfh); m_tfh = NULL; } else { m_tfh = textfile_create(OEMTEXT("traceout.txt"), 0x800); } break; case IDM_TRACE_CLEAR: m_wndView.SetWindowText(TEXT("")); break; } }
void debugsub_status(void) { static int filenum = 0; TEXTFILEH tfh; OEMCHAR work[512]; const OEMCHAR *p; OEMSPRINTF(work, file_i286reg, filenum); tfh = textfile_create(file_getcd(work), 0); if (tfh != NULL) { p = debugsub_regs(); textfile_write(tfh, p); OEMSPRINTF(work, str_picstat, pic.pi[0].imr, pic.pi[0].irr, pic.pi[0].isr, pic.pi[1].imr, pic.pi[1].irr, pic.pi[1].isr, mouseif.upd8255.portc, sysport.c); textfile_write(tfh, work); textfile_close(tfh); } OEMSPRINTF(work, file_i286cs, filenum); writeseg(work, CS_BASE, 0xffff); OEMSPRINTF(work, file_i286ds, filenum); writeseg(work, DS_BASE, 0xffff); OEMSPRINTF(work, file_i286es, filenum); writeseg(work, ES_BASE, 0xffff); OEMSPRINTF(work, file_i286ss, filenum); writeseg(work, SS_BASE, 0xffff); filenum++; }
/** * 解放 */ void CTraceWnd::Deinitialize() { if (m_tfh != NULL) { textfile_close(m_tfh); m_tfh = NULL; } DestroyWindow(); ini_write(file_getcd(np2trace), inititle, initbl, NELEMENTS(initbl)); }
void trace_term(void) { if (tracewin.tf != NULL) { textfile_close(tracewin.tf); tracewin.tf = NULL; } if (tracewin.hwnd) { DestroyWindow(tracewin.hwnd); tracewin.hwnd = NULL; ini_write(file_getcd(np2trace), inititle, initbl, NELEMENTS(initbl)); } }
static LRESULT onSysCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) { HMENU hMenu; hMenu = GetSystemMenu(hWnd, FALSE); switch(wParam) { case IDM_TRACE_TRACE: tracewin.en ^= 1; CheckMenuItem(hMenu, IDM_TRACE_TRACE, (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACE_VERBOSE: tracewin.en ^= 2; CheckMenuItem(hMenu, IDM_TRACE_VERBOSE, (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACE_ENABLE: tracewin.en ^= 4; CheckMenuItem(hMenu, IDM_TRACE_ENABLE, (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACE_FILEOUT: if (tracewin.tf != NULL) { textfile_close(tracewin.tf); tracewin.tf = NULL; } else { tracewin.tf = textfile_create(OEMTEXT("traceout.txt"), 0x800); } CheckMenuItem(hMenu, IDM_TRACE_FILEOUT, (tracewin.tf)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACE_CLEAR: View_ClrString(); break; default: return DefWindowProc(hWnd, WM_SYSCOMMAND, wParam, lParam); } return FALSE; }
static BRESULT opencue(SXSIDEV sxsi, const OEMCHAR *fname) { _CDTRK trk[99]; OEMCHAR path[MAX_PATH]; UINT idx; UINT8 curtrk; UINT curtype; TEXTFILEH tfh; OEMCHAR buf[512]; OEMCHAR *argv[8]; int argc; ZeroMemory(trk, sizeof(trk)); path[0] = '\0'; idx = 0; curtrk = 1; curtype = 0x14; tfh = textfile_open(fname, 0x800); if (tfh == NULL) { return(FAILURE); } while(textfile_read(tfh, buf, NELEMENTS(buf)) == SUCCESS) { argc = milstr_getarg(buf, argv, NELEMENTS(argv)); if ((argc >= 3) && (!milstr_cmp(argv[0], str_file))) { file_cpyname(path, fname, NELEMENTS(path)); file_cutname(path); file_catname(path, argv[1], NELEMENTS(path)); } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_track))) { curtrk = (UINT8)milstr_solveINT(argv[1]); if (!milstr_cmp(argv[2], str_mode1)) { curtype = 0x14; } else if (!milstr_cmp(argv[2], str_audio)) { curtype = 0x10; } } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_index))) { if (idx < NELEMENTS(trk)) { trk[idx].type = curtype; trk[idx].track = curtrk; trk[idx].pos = getpos(argv[2]); idx++; } } } textfile_close(tfh); return(openimg(sxsi, path, trk, idx)); }
static LRESULT CALLBACK traceproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { RECT rc; HMENU hmenu; switch (msg) { case WM_CREATE: hmenu = GetSystemMenu(hWnd, FALSE); InsertMenu(hmenu, 0, MF_BYPOSITION | MF_STRING, IDM_TRACE1, trace1); InsertMenu(hmenu, 1, MF_BYPOSITION | MF_STRING, IDM_TRACE2, trace2); InsertMenu(hmenu, 2, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); InsertMenu(hmenu, 3, MF_BYPOSITION | MF_STRING, IDM_TRACEEN, traceen); InsertMenu(hmenu, 4, MF_BYPOSITION | MF_STRING, IDM_TRACEFH, tracefh); InsertMenu(hmenu, 5, MF_BYPOSITION | MF_STRING, IDM_TRACECL, tracecl); InsertMenu(hmenu, 6, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); CheckMenuItem(hmenu, IDM_TRACE1, (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED); CheckMenuItem(hmenu, IDM_TRACE2, (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED); CheckMenuItem(hmenu, IDM_TRACEEN, (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED); GetClientRect(hWnd, &rc); hView = CreateWindowEx(WS_EX_CLIENTEDGE, ClassEdit, NULL, WS_CHILD | WS_VISIBLE | ES_READONLY | ES_LEFT | ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL, 0, 0, rc.right, rc.bottom, hWnd, (HMENU)IDC_VIEW, g_hInstance, NULL); if (!hView) { break; } SendMessage(hView, EM_SETLIMITTEXT, (WPARAM)VIEW_BUFFERSIZE, 0); hfView = CreateFont(VIEW_SIZE, 0, 0, 0, 0, 0, 0, 0, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FIXED_PITCH, viewfont); if (!hfView) { break; } SendMessage(hView, WM_SETFONT, (WPARAM)hfView, MAKELPARAM(TRUE, 0)); hBrush = CreateSolidBrush(VIEW_BGCOLOR); SetFocus(hView); return(TRUE); case WM_SYSCOMMAND: switch(wp) { case IDM_TRACE1: tracewin.en ^= 1; hmenu = GetSystemMenu(hWnd, FALSE); CheckMenuItem(hmenu, IDM_TRACE1, (tracewin.en & 1)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACE2: tracewin.en ^= 2; hmenu = GetSystemMenu(hWnd, FALSE); CheckMenuItem(hmenu, IDM_TRACE2, (tracewin.en & 2)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACEEN: tracewin.en ^= 4; hmenu = GetSystemMenu(hWnd, FALSE); CheckMenuItem(hmenu, IDM_TRACEEN, (tracewin.en & 4)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACEFH: if (tracewin.tf != NULL) { textfile_close(tracewin.tf); tracewin.tf = NULL; } else { tracewin.tf = textfile_create(OEMTEXT("traceout.txt"), 0x800); } hmenu = GetSystemMenu(hWnd, FALSE); CheckMenuItem(hmenu, IDM_TRACEFH, (tracewin.tf)?MF_CHECKED:MF_UNCHECKED); break; case IDM_TRACECL: View_ClrString(); break; default: return(DefWindowProc(hWnd, msg, wp, lp)); } break; case WM_MOVE: if (!(GetWindowLong(hWnd, GWL_STYLE) & (WS_MAXIMIZE | WS_MINIMIZE))) { GetWindowRect(hWnd, &rc); tracecfg.posx = rc.left; tracecfg.posy = rc.top; } break; case WM_SIZE: // window resize if (!(GetWindowLong(hWnd, GWL_STYLE) & (WS_MAXIMIZE | WS_MINIMIZE))) { GetWindowRect(hWnd, &rc); tracecfg.width = rc.right - rc.left; tracecfg.height = rc.bottom - rc.top; } MoveWindow(hView, 0, 0, LOWORD(lp), HIWORD(lp), TRUE); View_ScrollToBottom(hView); break; case WM_SETFOCUS: SetFocus(hView); return(0L); case WM_CTLCOLORSTATIC: case WM_CTLCOLOREDIT: SetTextColor((HDC)wp, VIEW_FGCOLOR); SetBkColor((HDC)wp, VIEW_BGCOLOR); return((LRESULT)hBrush); case WM_CLOSE: break; case WM_DESTROY: if (hBrush) { DeleteObject(hBrush); } if (hfView) { DeleteObject(hfView); } break; #if 0 case WM_ENTERSIZEMOVE: winloc_movingstart(); break; case WM_MOVING: winloc_movingproc((RECT *)lp); break; case WM_ERASEBKGND: return(FALSE); #endif default: return(DefWindowProc(hWnd, msg, wp, lp)); } return(0L); }
// CUEシート読み込み BRESULT opencue(SXSIDEV sxsi, const OEMCHAR *fname) { _CDTRK trk[99]; OEMCHAR path[MAX_PATH]; UINT index; UINT8 curtrk; UINT curtype; TEXTFILEH tfh; OEMCHAR buf_mode[10]; OEMCHAR buf[512]; OEMCHAR *argv[8]; int argc; // -------- UINT16 curssize; UINT32 curpos0; UINT32 curpregap; ZeroMemory(trk, sizeof(trk)); path[0] = '\0'; index = 0; curtrk = 1; curtype = 0x14; // -------- curpos0 = 0; curpregap = 0; // -------- tfh = textfile_open(fname, 0x800); if (tfh == NULL) { goto opencue_err2; } while (textfile_read(tfh, buf, NELEMENTS(buf)) == SUCCESS) { argc = milstr_getarg(buf, argv, NELEMENTS(argv)); if ((argc >= 3) && (!milstr_cmp(argv[0], str_file))) { // FILE if (!milstr_cmp(argv[argc-1], str_binary) && path[0] == '\0') { // BINARY file_cpyname(path, fname, NELEMENTS(path)); file_cutname(path); file_catname(path, argv[1], NELEMENTS(path)); } } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_track))) { // TRACK curtrk = (UINT8)milstr_solveINT(argv[1]); milstr_ncpy(buf_mode, argv[2], NELEMENTS(str_mode1)); if (!milstr_cmp(buf_mode, str_mode1)) { // MODE1/???? curtype = 0x14; curssize = (UINT16)milstr_solveINT(argv[2] + 6); } else if (!milstr_cmp(buf_mode, str_mode2)) { // MODE2/???? curtype = 0x14; curssize = (UINT16)milstr_solveINT(argv[2] + 6); } else if (!milstr_cmp(argv[2], str_audio)) { // AUDIO curtype = 0x10; curssize = 2352; } } else if ((argc >= 2) && (!milstr_cmp(argv[0], str_pregap))) { // PREGAP curpregap = getpos(argv[1]); } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_index))) { // INDEX ?? if (index < NELEMENTS(trk)) { if ((UINT8)milstr_solveINT(argv[1]) == 0) { // INDEX 00 curpos0 = getpos(argv[2]); continue; } if ((UINT8)milstr_solveINT(argv[1]) != 1) { // INDEX 01以外 continue; } trk[index].adr_ctl = curtype; trk[index].point = curtrk; trk[index].pos = getpos(argv[2]); trk[index].pos0 = (curpos0 == 0) ? trk[index].pos : curpos0; trk[index].sector_size = curssize; trk[index].pregap_sectors = curpregap + (trk[index].pos - trk[index].pos0); trk[index].img_pregap_sec = (trk[index].pos0 == 0) ? trk[index].pos : trk[index].pos0; trk[index].img_start_sec = trk[index].pos; // trk[index].pregap_sector = trk[index].start_sector - trk[index].pregap_sectors; index++; curpregap = 0; curpos0 = 0; } } } if (index == 0) { goto opencue_err1; } set_secread(sxsi, trk, index); sxsi->totals = -1; textfile_close(tfh); return(setsxsidev(sxsi, path, trk, index)); opencue_err1: textfile_close(tfh); opencue_err2: return(FAILURE); }
static BRESULT VERMOUTHCL cfgfile_load(MIDIMOD mod, const OEMCHAR *filename, int depth) { TEXTFILEH tfh; OEMCHAR buf[1024]; int bank; int i; int argc; OEMCHAR *argv[16]; int val; UINT cfg; bank = -1; if ((depth >= 16) || (midimod_getfile(mod, filename, buf, NELEMENTS(buf)) != SUCCESS)) { goto cfl_err; } // TRACEOUT(("open: %s", buf)); tfh = textfile_open(buf, 0x1000); if (tfh == NULL) { goto cfl_err; } while(textfile_read(tfh, buf, NELEMENTS(buf)) == SUCCESS) { argc = cfggetarg(buf, argv, NELEMENTS(argv)); if (argc < 2) { continue; } cfg = 0; while(cfg < NELEMENTS(cfgstr)) { if (!milstr_cmp(argv[0], cfgstr[cfg])) { break; } cfg++; } switch(cfg) { case CFG_DIR: for (i=1; i<argc; i++) { pathaddex(mod, argv[i]); } break; case CFG_SOURCE: for (i=1; i<argc; i++) { depth++; cfgfile_load(mod, argv[i], depth); depth--; } break; case CFG_DEFAULT: break; case CFG_BANK: case CFG_DRUM: if ((cfggetval(argv[1], &val) == SUCCESS) && (val >= 0) && (val < 128)) { val <<= 1; if (cfg == CFG_DRUM) { val++; } bank = val; } break; default: settone(mod, bank, argc, argv); break; } } textfile_close(tfh); return(SUCCESS); cfl_err: return(FAILURE); }
// イメージファイルの実体を開き、各種情報構築 BRESULT setsxsidev(SXSIDEV sxsi, const OEMCHAR *path, const _CDTRK *trk, UINT trks) { FILEH fh; long totals; CDINFO cdinfo; UINT mediatype; UINT i; #ifdef TOCLOGOUT OEMCHAR logpath[MAX_PATH]; OEMCHAR logbuf[2048]; TEXTFILEH tfh; #endif // trk、trksは有効な値が設定済みなのが前提 if ((trk == NULL) || (trks == 0)) { goto sxsiope_err1; } fh = file_open_rb(path); if (fh == FILEH_INVALID) { goto sxsiope_err1; } cdinfo = (CDINFO)_MALLOC(sizeof(_CDINFO), path); if (cdinfo == NULL) { goto sxsiope_err2; } ZeroMemory(cdinfo, sizeof(_CDINFO)); cdinfo->fh = fh; trks = min(trks, NELEMENTS(cdinfo->trk) - 1); CopyMemory(cdinfo->trk, trk, trks * sizeof(_CDTRK)); #ifdef TOCLOGOUT file_cpyname(logpath, path, NELEMENTS(logpath)); file_cutext(logpath); file_catname(logpath, str_logB, NELEMENTS(logpath)); tfh = textfile_create(logpath, 0x800); if (tfh == NULL) { return(FAILURE); } TOCLOG(OEMTEXT("STR _CDTRK LOG\r\n"), 0); for (i = 0; i < trks; i++) { TOCLOG(OEMTEXT("trk[%02d]\r\n"), i); TOCLOG(OEMTEXT(" adr_ctl = 0x%02X\r\n"), cdinfo->trk[i].adr_ctl); TOCLOG(OEMTEXT(" point = %02d\r\n"), cdinfo->trk[i].point); TOCLOG(OEMTEXT(" [pos0][pos][ ] = [%18I32d]"), cdinfo->trk[i].pos0); TOCLOG(OEMTEXT("[%18I32d][ ]\r\n"), cdinfo->trk[i].pos); TOCLOG(OEMTEXT(" sec[ ][str][end] = [ ][%18I32d]"), cdinfo->trk[i].str_sec); TOCLOG(OEMTEXT("[%18I32d]\r\n"), cdinfo->trk[i].end_sec); TOCLOG(OEMTEXT(" sectors = %I32d\r\n"), cdinfo->trk[i].sectors); TOCLOG(OEMTEXT(" sector_size = %d\r\n"), cdinfo->trk[i].sector_size); TOCLOG(OEMTEXT(" sector [pregap][start][end] = [%18I32d]"), cdinfo->trk[i].pregap_sector); TOCLOG(OEMTEXT("[%18I32d]"), cdinfo->trk[i].start_sector); TOCLOG(OEMTEXT("[%18I32d]\r\n"), cdinfo->trk[i].end_sector); TOCLOG(OEMTEXT(" img_sec[pregap][start][end] = [%18I32d]"), cdinfo->trk[i].img_pregap_sec); TOCLOG(OEMTEXT("[%18I32d]"), cdinfo->trk[i].img_start_sec); TOCLOG(OEMTEXT("[%18I32d]\r\n"), cdinfo->trk[i].img_end_sec); TOCLOG(OEMTEXT(" offset [pregap][start][end] = [0x%016I64X]"), cdinfo->trk[i].pregap_offset); TOCLOG(OEMTEXT("[0x%016I64X]"), cdinfo->trk[i].start_offset); TOCLOG(OEMTEXT("[0x%016I64X]\r\n"), cdinfo->trk[i].end_offset); TOCLOG(OEMTEXT(" pregap_sectors = %I32d\r\n"), cdinfo->trk[i].pregap_sectors); TOCLOG(OEMTEXT(" track_sectors = %I32d\r\n"), cdinfo->trk[i].track_sectors); } TOCLOG(OEMTEXT("END _CDTRK LOG\r\n"), 0); textfile_close(tfh); #endif #if 1 if (sxsi->totals == -1) { totals = set_trkinfo(fh, cdinfo->trk, trks, 0); if (totals < 0) { goto sxsiope_err3; } sxsi->totals = totals; } #else totals = issec(fh, cdinfo->trk, trks); // とりあえず sxsi->read = sec2048_read; totals = issec2048(cdinfo->fh); if (totals < 0) { sxsi->read = sec2352_read; totals = issec2352(cdinfo->fh); } if (totals < 0) { sxsi->read = sec2448_read; totals = issec2448(cdinfo->fh); } if (totals < 0) { sxsi->read = sec_read; totals = issec(cdinfo->fh, cdinfo->trk, trks); } if (totals < 0) { goto sxsiope_err3; } #endif mediatype = 0; for (i = 0; i < trks; i++) { if (cdinfo->trk[i].adr_ctl == TRACK_DATA) { mediatype |= SXSIMEDIA_DATA; } else if (cdinfo->trk[i].adr_ctl == TRACK_AUDIO) { mediatype |= SXSIMEDIA_AUDIO; } } // リードアウトトラックを生成 cdinfo->trk[trks].adr_ctl = 0x10; cdinfo->trk[trks].point = 0xaa; // cdinfo->trk[trks].pos = totals; cdinfo->trk[trks].pos = sxsi->totals; cdinfo->trks = trks; file_cpyname(cdinfo->path, path, NELEMENTS(cdinfo->path)); sxsi->reopen = cd_reopen; sxsi->close = cd_close; sxsi->destroy = cd_destroy; sxsi->hdl = (INTPTR)cdinfo; // sxsi->totals = totals; sxsi->cylinders = 0; sxsi->size = 2048; sxsi->sectors = 1; sxsi->surfaces = 1; sxsi->headersize = 0; sxsi->mediatype = mediatype; #ifdef TOCLOGOUT file_cpyname(logpath, path, NELEMENTS(logpath)); file_cutext(logpath); file_catname(logpath, str_logA, NELEMENTS(logpath)); tfh = textfile_create(logpath, 0x800); if (tfh == NULL) { return(FAILURE); } TOCLOG(OEMTEXT("STR _CDTRK LOG\r\n"), 0); for (i = 0; i < trks; i++) { TOCLOG(OEMTEXT("trk[%02d]\r\n"), i); TOCLOG(OEMTEXT(" adr_ctl = 0x%02X\r\n"), cdinfo->trk[i].adr_ctl); TOCLOG(OEMTEXT(" point = %02d\r\n"), cdinfo->trk[i].point); TOCLOG(OEMTEXT(" [pos0][pos][ ] = [%18I32d]"), cdinfo->trk[i].pos0); TOCLOG(OEMTEXT("[%18I32d][ ]\r\n"), cdinfo->trk[i].pos); TOCLOG(OEMTEXT(" sec[ ][str][end] = [ ][%18I32d]"), cdinfo->trk[i].str_sec); TOCLOG(OEMTEXT("[%18I32d]\r\n"), cdinfo->trk[i].end_sec); TOCLOG(OEMTEXT(" sectors = %I32d\r\n"), cdinfo->trk[i].sectors); TOCLOG(OEMTEXT(" sector_size = %d\r\n"), cdinfo->trk[i].sector_size); TOCLOG(OEMTEXT(" sector [pregap][start][end] = [%18I32d]"), cdinfo->trk[i].pregap_sector); TOCLOG(OEMTEXT("[%18I32d]"), cdinfo->trk[i].start_sector); TOCLOG(OEMTEXT("[%18I32d]\r\n"), cdinfo->trk[i].end_sector); TOCLOG(OEMTEXT(" img_sec[pregap][start][end] = [%18I32d]"), cdinfo->trk[i].img_pregap_sec); TOCLOG(OEMTEXT("[%18I32d]"), cdinfo->trk[i].img_start_sec); TOCLOG(OEMTEXT("[%18I32d]\r\n"), cdinfo->trk[i].img_end_sec); TOCLOG(OEMTEXT(" offset [pregap][start][end] = [0x%016I64X]"), cdinfo->trk[i].pregap_offset); TOCLOG(OEMTEXT("[0x%016I64X]"), cdinfo->trk[i].start_offset); TOCLOG(OEMTEXT("[0x%016I64X]\r\n"), cdinfo->trk[i].end_offset); TOCLOG(OEMTEXT(" pregap_sectors = %I32d\r\n"), cdinfo->trk[i].pregap_sectors); TOCLOG(OEMTEXT(" track_sectors = %I32d\r\n"), cdinfo->trk[i].track_sectors); } TOCLOG(OEMTEXT("END _CDTRK LOG\r\n"), 0); textfile_close(tfh); #endif return(SUCCESS); sxsiope_err3: _MFREE(cdinfo); sxsiope_err2: file_close(fh); sxsiope_err1: return(FAILURE); }