0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

libobs: Use macOS specific APIs to report free disk space

(cherry picked from commit 4a765d3bf0)
This commit is contained in:
PatTheMav 2023-11-16 22:21:36 +01:00 committed by Ryan Foster
parent 28d9f92f82
commit f0c343ec24
2 changed files with 29 additions and 0 deletions

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;

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)
{