aboutsummaryrefslogtreecommitdiff
path: root/backends/audiocd/default/default-audiocd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/audiocd/default/default-audiocd.cpp')
-rw-r--r--backends/audiocd/default/default-audiocd.cpp16
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);
}
+