void FileDialog::ListCallback(aui_Control *control, uint32 action, uint32 data, void *cookie) { if(action != AUI_LISTBOX_ACTION_SELECT && action != AUI_LISTBOX_ACTION_DOUBLECLICKSELECT) { return; } FileDialog *di = (FileDialog *)cookie; Assert(di); if(!di) return; Assert(di->m_list); if(!di->m_list) return; ctp2_ListItem *item = (ctp2_ListItem *)di->m_list->GetSelectedItem(); if(!item) return; ctp2_Static *box = (ctp2_Static *)item->GetChildByIndex(0); Assert(box); if(!box) return; Assert(di->m_field); if(!di->m_field) return; di->m_field->SetFieldText(box->GetText()); if(action == AUI_LISTBOX_ACTION_DOUBLECLICKSELECT) { if(di->m_mode == FILE_DIALOG_LOAD) { LoadCallback(control, AUI_BUTTON_ACTION_EXECUTE, data, cookie); } else { SaveCallback(control, AUI_BUTTON_ACTION_EXECUTE, data, cookie); } } }
static int DrvInit(int (*LoadCallback)(), int type, int gfx_max, int gfx_min) { AllMem = NULL; MemIndex(gfx_max - gfx_min); int nLen = MemEnd - (unsigned char *)0; if ((AllMem = (unsigned char *)malloc(nLen)) == NULL) return 1; memset(AllMem, 0, nLen); MemIndex(gfx_max - gfx_min); { if (LoadCallback) { if (LoadCallback()) return 1; } BurnSwap32(DrvSh2ROM, 0x100000); BurnSwapEndian(0x200000); DrvGfxDecode(gfx_max - gfx_min); graphics_min_max[0] = gfx_min; graphics_min_max[1] = gfx_max; } if (type == 0) { Sh2Init(1); Sh2Open(0); Sh2MapMemory(DrvSh2ROM, 0x00000000, 0x000fffff, SM_ROM); Sh2MapMemory(DrvSh2ROM + 0x100000, 0x02000000, 0x020fffff, SM_ROM); Sh2MapMemory(DrvSprRAM, 0x03000000, 0x0300ffff, SM_RAM); Sh2MapMemory(DrvPalRAM, 0x03040000, 0x0304ffff, SM_RAM); Sh2MapMemory(DrvZoomRAM, 0x03050000, 0x0305ffff, SM_ROM); Sh2MapMemory(DrvSh2RAM, 0x06000000, 0x060fffff, SM_RAM); Sh2SetReadByteHandler (0, ps3v1_read_byte); Sh2SetWriteByteHandler(0, ps3v1_write_byte); Sh2SetWriteWordHandler(0, ps3v1_write_word); Sh2SetWriteLongHandler(0, psx_write_long); } else { Sh2Init(1); Sh2Open(0); Sh2MapMemory(DrvSh2ROM, 0x00000000, 0x000fffff, SM_ROM); Sh2MapMemory(DrvSprRAM, 0x04000000, 0x0400ffff, SM_RAM); Sh2MapMemory(DrvPalRAM, 0x04040000, 0x0404ffff, SM_RAM); Sh2MapMemory(DrvZoomRAM, 0x04050000, 0x0405ffff, SM_ROM); Sh2MapMemory(DrvSh2ROM + 0x100000, 0x05000000, 0x0507ffff, SM_ROM); Sh2MapMemory(DrvSh2RAM, 0x06000000, 0x060fffff, SM_RAM); Sh2SetReadByteHandler (0, ps5_read_byte); Sh2SetWriteByteHandler(0, ps5_write_byte); Sh2SetWriteWordHandler(0, ps5_write_word); Sh2SetWriteLongHandler(0, psx_write_long); } Sh2MapHandler(1, 0x06000000 | speedhack_address, 0x0600ffff | speedhack_address, SM_ROM); Sh2SetReadByteHandler (1, hack_read_byte); Sh2SetReadWordHandler (1, hack_read_word); Sh2SetReadLongHandler (1, hack_read_long); BurnYMF278BInit(0, DrvSndROM, &DrvIRQCallback, DrvSynchroniseStream); BurnTimerAttachSh2(28636350); EEPROMInit(&eeprom_interface_93C56); PsikyoshVideoInit(gfx_max, gfx_min); DrvDoReset(); return 0; }
void System_OnStrg_DownloadFW(UINT32* SecOrderTable, void (*LoadCallback)(const UINT32 Idx)) { BOOL bEnablePartload = FALSE; int nSect = 0; DBG_MSG("Init!\r\n"); DBG_DUMP("^G[LOAD-FW]\r\n"); nSect = OS_GetMemSectionCount(MEM_CODE); //How to get last section ZI DBG_DUMP("^GTotal Sections = %d\r\n", nSect); if(LoadCallback) LoadCallback(CODE_SECTION_01); DBG_IND("^M P1_LOAD_SIZE=%08X, TIME=%d\r\n", gBinInfo.ld.LdLoadSize, gBinInfo.ld.LdLoadTime); DBG_IND("^MPL_check_Ld:\r\n"); DBG_IND("^M PL_EN=%08X\r\n", gBinInfo.ld.LdCtrl & LDCF_PARTLOAD_EN); DBG_IND("^M LZ_EN=%08X\r\n", gBinInfo.head.BinCtrl & HDCF_LZCOMPRESS_EN); bEnablePartload = ((gBinInfo.ld.LdCtrl & LDCF_PARTLOAD_EN)!=0); if(!bEnablePartload) return; DBG_IND("^MPL_validate-p1-range:"); //ValidatePartOne { // Make Sure: Partloader start (PART-2 start) <= Loader loaded end int i; UINT32 FwSize = 0; UINT32 uiDestAddress = OS_GetMemAddr(MEM_CODE)+gBinInfo.ld.LdLoadSize; if((uiDestAddress != 0) && (uiDestAddress < OS_GetMemAddr(1))) { DBG_FATAL("PART_TWO start (%08x) > PART_ONE loaded end (%08x)!\r\n", OS_GetMemAddr(1), uiDestAddress ); } // Make Sure: Partloader end (PART-last end) <= MEM_CODE end for(i=0;i<nSect;i++) { DBG_IND("Sect%d: Addr:%08X, Size:%08X\r\n",i,OS_GetMemAddr(i),OS_GetMemSize(i)); FwSize += OS_GetMemSize(i); } if (OS_GetMemAddr(0)+FwSize > OS_GetMemAddr(MEM_CODE)+OS_GetMemSize(MEM_CODE)) { DBG_FATAL("PART_LAST end (%08x) > MEM_CODE end (%08x)!\r\n", OS_GetMemAddr(0)+FwSize, OS_GetMemAddr(MEM_CODE)+OS_GetMemSize(MEM_CODE)); } } DBG_IND("^M ok\r\n"); DBG_DUMP("^MPL_begin\r\n"); { ER er; gPL_In.puiIdxSequence = SecOrderTable; gPL_In.fpLoadedCb = LoadCallback; gPL_Cmd.Idx = FWSRV_CMD_IDX_PL_LOAD_BURST; //continue load gPL_Cmd.In.pData = &gPL_In; gPL_Cmd.In.uiNumByte = sizeof(gPL_In); gPL_Cmd.Prop.bExitCmdFinish = TRUE; er = FwSrv_Cmd(&gPL_Cmd); if(er != FWSRV_ER_OK) { DBG_ERR("Process failed!\r\n"); } } DBG_DUMP("^MPL_end\r\n"); }
LRESULT WINAPI KLE_AvpCallback(WPARAM wParam,LPARAM lParam) { LRESULT ret=0; AVPScanObject* so=(AVPScanObject*)lParam; switch(wParam){ case AVP_CALLBACK_PUT_STRING: break; case AVP_CALLBACK_ASK_DELETE: switch((so->MFlags) & MF_D_) { case MF_D_ASKCURE: case MF_D_ASKCUREDEBUG: case MF_D_CUREALL: if(so->MFlags & MF_FPI_MODE || (!(so->MFlags & MF_APC_CURE_REQUEST) && (so->SType == OT_FILE))) { so->RFlags|=RF_CURE_FAIL; break; } ret=2; break; case MF_D_DELETEALL: ret=2; break; case MF_D_DENYACCESS: default: break; } break; case AVP_CALLBACK_ASK_CURE: { switch((so->MFlags) & MF_D_) { case MF_D_ASKCURE: case MF_D_ASKCUREDEBUG: break; case MF_D_CUREALL: ret=1; break; case MF_D_DELETEALL: ret=2; break; case MF_D_DENYACCESS: default: break; } } break; case AVP_CALLBACK_LOAD_PROGRESS: break; case AVP_CALLBACK_LOAD_BASE: if(LoadCallback) LoadCallback(0,KLE_CALLBACK_BASE_LOAD_BEGIN,lParam,"Loading"); break; case AVP_CALLBACK_LOAD_BASE_DONE: if(LoadCallback) LoadCallback(0,KLE_CALLBACK_BASE_LOAD_DONE,lParam,"Loading"); break; case AVP_CALLBACK_OBJECT_WARNING: KLEObjectCallback(so,KLE_CALLBACK_OBJECT_INFECTED,wParam,"SUSP_MODIFICATION"); break; case AVP_CALLBACK_OBJECT_SUSP: KLEObjectCallback(so,KLE_CALLBACK_OBJECT_INFECTED,wParam,"SUSPECTED"); break; case AVP_CALLBACK_OBJECT_DETECT: KLEObjectCallback(so,KLE_CALLBACK_OBJECT_INFECTED,wParam,"INFECTED"); break; case AVP_CALLBACK_OBJECT_CURE: break; case AVP_CALLBACK_OBJECT_DELETE: break; case AVP_CALLBACK_OBJECT_CURE_FAIL: break; case AVP_CALLBACK_OBJECT_ARCHIVE_NAME: KLESetPropString((KLE_SCAN_OBJECT*)(so->RefData),KLE_PROP_ARCHIVE_NAME_STRING,so->VirusName,0); KLEObjectCallback(so,KLE_CALLBACK_ARCHIVE_NEXT_NAME,wParam,"ARCHIVE_NEXT_NAME"); break; case AVP_CALLBACK_OBJECT_ARCHIVE: KLEObjectCallback(so,KLE_CALLBACK_ARCHIVE_BEGIN,wParam,"ARCHIVE_BEGIN"); break; case AVP_CALLBACK_OBJECT_ARCHIVE_DONE: KLEObjectCallback(so,KLE_CALLBACK_ARCHIVE_DONE,wParam,"ARCHIVE_DONE"); break; case AVP_CALLBACK_OBJECT_BEGIN: KLEObjectCallback(so,KLE_CALLBACK_OBJECT_BEGIN,wParam,"OBJECT_BEGIN"); break; case AVP_CALLBACK_OBJECT_DONE: KLEObjectCallback(so,KLE_CALLBACK_OBJECT_DONE,wParam,"OBJECT_DONE"); break; case AVP_CALLBACK_CHECK_FILE_INTEGRITY: ret=sign_check_file( (char*)lParam, 1, 0, 0, 0); // ret=sign_check_file( (char*)lParam, 1, vndArray, vndArrayCount, 0); break; case AVP_CALLBACK_ERROR_FILE_OPEN: case AVP_CALLBACK_ERROR_SET: // GkSendErrorMessage((char *)lParam, Trap_FSAV_missingDatabaseFile); break; case AVP_CALLBACK_ERROR_KERNEL_PROC: case AVP_CALLBACK_ERROR_LINK: case AVP_CALLBACK_ERROR_SYMBOL_DUP: case AVP_CALLBACK_ERROR_SYMBOL: case AVP_CALLBACK_ERROR_FIXUPP: // GkSendErrorMessage((char *)lParam, Trap_FSAV_cannotOpenFile); break; case AVP_CALLBACK_SETFILE_INTEGRITY_FAILED: // GkSendErrorMessage((char *)lParam, Trap_FSAV_databaseFileCorrupt); break; case AVP_CALLBACK_FILE_INTEGRITY_FAILED: // GkSendErrorMessage((char *)lParam, Trap_FSAV_databaseFileCorrupt); break; case AVP_CALLBACK_ERROR_BASE: // GkSendErrorMessage((char *)lParam, Trap_FSAV_notADatabaseFile); break; case AVP_CALLBACK_ROTATE: case AVP_CALLBACK_ROTATE_OFF: if(so){ KLE_SCAN_OBJECT* kso=(KLE_SCAN_OBJECT*)(so->RefData); if(kso->fnCallback) kso->fnCallback(kso,KLE_CALLBACK_YIELD,0,"Rotate"); if(kso->StopScan) BAvpCancelProcessObject(1); } break; default: // _DebugTrace(TraceInfo,"AvpCallback %X \n",wParam); break; } return ret; }