diff options
Diffstat (limited to 'backends/audiocd/default/default-audiocd.cpp')
-rw-r--r-- | backends/audiocd/default/default-audiocd.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/backends/audiocd/default/default-audiocd.cpp b/backends/audiocd/default/default-audiocd.cpp index 0c5bb8df03..4c08938741 100644 --- a/backends/audiocd/default/default-audiocd.cpp +++ b/backends/audiocd/default/default-audiocd.cpp @@ -155,5 +155,19 @@ DefaultAudioCDManager::Status DefaultAudioCDManager::getStatus() const { } bool DefaultAudioCDManager::openCD() { - return openCD(ConfMan.getInt("cdrom")); + Common::String cdrom = ConfMan.get("cdrom"); + + // Try to parse it as an int + char *endPos; + int drive = strtol(cdrom.c_str(), &endPos, 0); + + // If not an integer, treat as a drive path + if (endPos == cdrom.c_str()) + return openCD(cdrom); + + if (drive < 0) + return false; + + return openCD(drive); } + |