//called when entering sh4 thread , from the new thread context (for any thread specific init) s32 libGDR_Init() { if (!InitDrive()) return rv_serror; libCore_gdrom_disc_change(); settings.imgread.PatchRegion=true; return rv_ok; }
void InitDrives(){ DWORD drives=GetLogicalDrives(); int i=0,mask=1; for(;i<26;i++){ if(drives&mask) InitDrive(i); mask<<=1; } }
//called when entering sh4 thread , from the new thread context (for any thread speciacific init) s32 FASTCALL InitGDR(gdr_init_params* prm) { DriveNotifyEvent=prm->DriveNotifyEvent; if (!InitDrive()) return rv_serror; DriveNotifyEvent(DiskChange,0); irLoadSettings(); return rv_ok; }
void EXPORT_CALL handle_SwitchDisc(u32 id,void* w,void* p) { //msgboxf("This feature is not yet implemented",MB_ICONWARNING); //return; TermDrive(); NullDriveDiscType=Busy; DriveNotifyEvent(DiskChange,0); mdelay(150); //busy for a bit NullDriveDiscType=Open; DriveNotifyEvent(DiskChange,0); mdelay(150); //tray is open while(!InitDrive(2))//no "cancel" msgboxf("Init Drive failed, disc must be valid for swap",0x00000010L); DriveNotifyEvent(DiskChange,0); //new disc is in }