Get an array of paths to available CD-ROM drives.
Defined in <physfs.h>
char ** PHYSFS_getCdRomDirs(void);(char **) Returns Null-terminated array of null-terminated strings.
The dirs returned are platform-dependent ("D:" on Win32, "/cdrom" or whatnot on Unix). Dirs are only returned if there is a disc ready and accessible in the drive. So if you've got two drives (D: and E:), and only E: has a disc in it, then that's all you get. If the user inserts a disc in D: and you call this function again, you get both drives. If, on a Unix box, the user unmounts a disc and remounts it elsewhere, the next call to this function will reflect that change.
This function refers to "CD-ROM" media, but it really means "inserted disc media," such as DVD-ROM, HD-DVD, CDRW, and Blu-Ray discs. It looks for filesystems, and as such won't report an audio CD, unless there's a mounted filesystem track on it.
The returned value is an array of strings, with a NULL entry to signify the end of the list:
char **cds = PHYSFS_getCdRomDirs();
for (char **i = cds; *i != NULL; i++) {
printf("cdrom dir [%s] is available.\n", *i);
}
PHYSFS_freeList(cds);This call may block while drives spin up. Be forewarned.
When you are done with the returned information, you may dispose of the resources by calling PHYSFS_freeList() with the returned pointer.
It is safe to call this function from any thread.
This function is available since PhysicsFS 1.0.0.