| 22 | } |
| 23 | |
| 24 | void GetValidDrive(std::string& drive) |
| 25 | { |
| 26 | if (drive.empty() || GetDriveTypeA(drive.c_str()) != DRIVE_CDROM) |
| 27 | { |
| 28 | auto drives = GetOpticalDriveList(); |
| 29 | if (drives.empty()) |
| 30 | { |
| 31 | drive.clear(); |
| 32 | return; |
| 33 | } |
| 34 | drive = drives.front(); |
| 35 | } |
| 36 | |
| 37 | printf(" * CDVD: Opening drive '%s'...\n", drive.data()); |
| 38 | |
| 39 | // The drive string has the form "X:\", but to open the drive, the string |
| 40 | // has to be in the form "\\.\X:" |
| 41 | drive.pop_back(); |
| 42 | drive.insert(0, "\\\\.\\"); |
| 43 | } |