libobs: Use macOS specific APIs to report free disk space

(cherry picked from commit 4a765d3bf0)
This commit is contained in:
PatTheMav
2023-12-04 15:17:54 -05:00
committed by Ryan Foster
parent 28d9f92f82
commit f0c343ec24
2 changed files with 29 additions and 0 deletions
+25
View File
@@ -358,6 +358,31 @@ uint64_t os_get_sys_free_size(void)
return vmstat.free_count * vm_page_size;
}
int64_t os_get_free_space(const char *path)
{
if (path) {
NSURL *fileURL = [NSURL fileURLWithPath:@(path)];
NSDictionary *values = [fileURL resourceValuesForKeys:@[NSURLVolumeAvailableCapacityForOpportunisticUsageKey]
error:nil];
NSNumber *availableSpace = values[NSURLVolumeAvailableCapacityForOpportunisticUsageKey];
if (availableSpace) {
return availableSpace.longValue;
}
}
return 0;
}
uint64_t os_get_free_disk_space(const char *dir)
{
int64_t free_space = os_get_free_space(dir);
return (uint64_t) free_space;
}
static uint64_t total_memory = 0;
static bool total_memory_initialized = false;
+4
View File
@@ -571,6 +571,7 @@ void os_closedir(os_dir_t *dir)
}
}
#ifndef __APPLE__
int64_t os_get_free_space(const char *path)
{
struct statvfs info;
@@ -581,6 +582,7 @@ int64_t os_get_free_space(const char *path)
return ret;
}
#endif
struct posix_glob_info {
struct os_glob_info base;
@@ -1136,6 +1138,7 @@ uint64_t os_get_sys_total_size(void)
}
#endif
#ifndef __APPLE__
uint64_t os_get_free_disk_space(const char *dir)
{
struct statvfs info;
@@ -1144,6 +1147,7 @@ uint64_t os_get_free_disk_space(const char *dir)
return (uint64_t)info.f_frsize * (uint64_t)info.f_bavail;
}
#endif
char *os_generate_uuid(void)
{