Implemented DirAccess get_drive and get_drive_count for OS X

This commit is contained in:
Marcelo 2017-09-09 13:21:43 -03:00 committed by Marcelo Fernandez
parent d1cb73b47a
commit fb871b5ada
2 changed files with 20 additions and 1 deletions

View file

@ -46,6 +46,9 @@
class DirAccessOSX : public DirAccessUnix {
protected:
virtual String fix_unicode_name(const char *p_name) const;
virtual int get_drive_count();
virtual String get_drive(int p_drive);
};
#endif //UNIX ENABLED

View file

@ -33,7 +33,8 @@
#include <errno.h>
#include <Foundation/NSString.h>
#include <AppKit/NSWorkspace.h>
#include <Foundation/Foundation.h>
String DirAccessOSX::fix_unicode_name(const char *p_name) const {
@ -45,4 +46,19 @@ String DirAccessOSX::fix_unicode_name(const char *p_name) const {
return fname;
}
int DirAccessOSX::get_drive_count() {
NSArray *vols = [[NSWorkspace sharedWorkspace] mountedLocalVolumePaths];
return [vols count];
}
String DirAccessOSX::get_drive(int p_drive) {
NSArray *vols = [[NSWorkspace sharedWorkspace] mountedLocalVolumePaths];
int count = [vols count];
ERR_FAIL_INDEX_V(p_drive, count, "");
NSString *path = vols[p_drive];
return String([path UTF8String]);
}
#endif //posix_enabled