X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fplugins.c;h=57078badaddab31b62ca0af218ad3d1c7acbf540;hp=f965e0d0706707339226fdc306099c5dd2f24477;hb=b2058a5bead44a5b5ecaa903e9bbf3231477fde9;hpb=ef79bbde537d6b9c745a7d86cb9df1d04c35590d diff --git a/libpcsxcore/plugins.c b/libpcsxcore/plugins.c index f965e0d0..57078bad 100644 --- a/libpcsxcore/plugins.c +++ b/libpcsxcore/plugins.c @@ -702,6 +702,7 @@ int LoadPlugins() { char Plugin[MAXPATHLEN]; ReleasePlugins(); + SysLibError(); if (UsingIso()) { LoadCDRplugin(NULL); @@ -794,6 +795,23 @@ void ReleasePlugins() { #endif } +// for CD swap +int ReloadCdromPlugin() +{ + if (hCDRDriver != NULL || cdrIsoActive()) CDR_shutdown(); + if (hCDRDriver != NULL) SysCloseLibrary(hCDRDriver); hCDRDriver = NULL; + + if (UsingIso()) { + LoadCDRplugin(NULL); + } else { + char Plugin[MAXPATHLEN]; + sprintf(Plugin, "%s/%s", Config.PluginsDir, Config.Cdr); + if (LoadCDRplugin(Plugin) == -1) return -1; + } + + return CDR_init(); +} + void SetIsoFile(const char *filename) { if (filename == NULL) { IsoFile[0] = '\0';