From 76ee2fd43f361d2fbd633b16bca11ff3916fead6 Mon Sep 17 00:00:00 2001 From: Alex Gourley Date: Fri, 5 Mar 2021 13:10:25 -0800 Subject: [PATCH 1/2] adding tvos support --- tvOS/DiskUtils.mm | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 tvOS/DiskUtils.mm diff --git a/tvOS/DiskUtils.mm b/tvOS/DiskUtils.mm new file mode 100755 index 0000000..89682cd --- /dev/null +++ b/tvOS/DiskUtils.mm @@ -0,0 +1,56 @@ +extern "C" +{ + uint64_t getAvailableDiskSpace () { + uint64_t totalFreeSpace; + NSError *error = nil; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; + + if (dictionary) { + NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; + NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; + totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; + } else { + NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); + } + + return (uint64_t)(totalFreeSpace/1024ll)/1024ll; + } + + uint64_t getTotalDiskSpace (){ + uint64_t totalSpace = 0; + NSError *error = nil; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; + + if (dictionary) { + NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; + NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; + totalSpace = [fileSystemSizeInBytes unsignedLongLongValue]; + } else { + NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); + } + + return (uint64_t)(totalSpace/1024ll)/1024ll; + } + + uint64_t getBusyDiskSpace (){ + uint64_t totalSpace = 0; + uint64_t totalFreeSpace = 0; + NSError *error = nil; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; + + if (dictionary) { + NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; + NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; + totalSpace = [fileSystemSizeInBytes unsignedLongLongValue]; + totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; + } else { + NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); + } + + return (uint64_t)((totalSpace-totalFreeSpace)/1024ll)/1024ll; + } +} + From f983de314824edaf7327c87e64c593157d65c6fe Mon Sep 17 00:00:00 2001 From: Alex Gourley Date: Fri, 5 Mar 2021 13:23:45 -0800 Subject: [PATCH 2/2] Moving iOS/tvOS libs into unity project instead of top level --- .../Plugins/DiskUtils/iOS/DiskUtils.mm | 34 +++++--- .../Plugins/DiskUtils/iOS/DiskUtils.mm.meta | 73 +++++++++++++++-- .../Plugins/DiskUtils/tvOS.meta | 8 ++ .../Plugins/DiskUtils/tvOS}/DiskUtils.mm | 0 .../Plugins/DiskUtils/tvOS/DiskUtils.mm.meta | 82 +++++++++++++++++++ iOS/DiskUtils.mm | 68 --------------- 6 files changed, 179 insertions(+), 86 deletions(-) create mode 100644 Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS.meta rename {tvOS => Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS}/DiskUtils.mm (100%) create mode 100644 Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS/DiskUtils.mm.meta delete mode 100644 iOS/DiskUtils.mm diff --git a/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm index e28f690..b352324 100644 --- a/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm +++ b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm @@ -1,19 +1,31 @@ extern "C" { - uint64_t getAvailableDiskSpace (){ + uint64_t getAvailableDiskSpace () { uint64_t totalFreeSpace = 0; - NSError *error = nil; - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; - - if (dictionary) { - NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; - NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; - totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; + if (@available(iOS 11.0, *)) { + NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:NSHomeDirectory()]; + NSError *error = nil; + NSDictionary *results = [fileURL resourceValuesForKeys:@[NSURLVolumeAvailableCapacityForImportantUsageKey] error:&error]; + if (!results) { + NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); + } else { + NSLog(@"Available capacity for important usage: %@", results[NSURLVolumeAvailableCapacityForImportantUsageKey]); + totalFreeSpace = ((NSString *)results[NSURLVolumeAvailableCapacityForImportantUsageKey]).longLongValue; + } } else { - NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); + NSError *error = nil; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; + + if (dictionary) { + NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; + NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; + totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; + } else { + NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); + } + } - return (uint64_t)(totalFreeSpace/1024ll)/1024ll; } diff --git a/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm.meta b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm.meta index 8cb112b..77b6afa 100644 --- a/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm.meta +++ b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/iOS/DiskUtils.mm.meta @@ -1,23 +1,82 @@ fileFormatVersion: 2 guid: f172f888ca5ba41a6addc3c333d78747 -timeCreated: 1465549579 -licenseType: Pro PluginImporter: - serializedVersion: 1 + externalObjects: {} + serializedVersion: 2 iconMap: {} executionOrder: {} + defineConstraints: [] isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 platformData: - Any: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + Exclude iOS: 0 + Exclude tvOS: 1 + - first: + Any: + second: enabled: 0 settings: {} - Editor: + - first: + Editor: Editor + second: enabled: 0 settings: + CPU: AnyCPU DefaultValueInitialized: true - iOS: + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + iPhone: iOS + second: enabled: 1 - settings: {} + settings: + AddToEmbeddedBinaries: false + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + - first: + tvOS: tvOS + second: + enabled: 0 + settings: + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: userData: assetBundleName: assetBundleVariant: diff --git a/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS.meta b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS.meta new file mode 100644 index 0000000..fb1eb0b --- /dev/null +++ b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1964cf866c7ad4520926de7e66e1803b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/tvOS/DiskUtils.mm b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS/DiskUtils.mm similarity index 100% rename from tvOS/DiskUtils.mm rename to Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS/DiskUtils.mm diff --git a/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS/DiskUtils.mm.meta b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS/DiskUtils.mm.meta new file mode 100644 index 0000000..03eb847 --- /dev/null +++ b/Unity/Assets/SimpleDiskUtils/Plugins/DiskUtils/tvOS/DiskUtils.mm.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 428f081802e274819bc1fa3714156c31 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + Exclude iOS: 1 + Exclude tvOS: 0 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + iPhone: iOS + second: + enabled: 0 + settings: + AddToEmbeddedBinaries: false + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + - first: + tvOS: tvOS + second: + enabled: 1 + settings: + CPU: AnyCPU + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/iOS/DiskUtils.mm b/iOS/DiskUtils.mm deleted file mode 100644 index b352324..0000000 --- a/iOS/DiskUtils.mm +++ /dev/null @@ -1,68 +0,0 @@ -extern "C" -{ - uint64_t getAvailableDiskSpace () { - uint64_t totalFreeSpace = 0; - if (@available(iOS 11.0, *)) { - NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:NSHomeDirectory()]; - NSError *error = nil; - NSDictionary *results = [fileURL resourceValuesForKeys:@[NSURLVolumeAvailableCapacityForImportantUsageKey] error:&error]; - if (!results) { - NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); - } else { - NSLog(@"Available capacity for important usage: %@", results[NSURLVolumeAvailableCapacityForImportantUsageKey]); - totalFreeSpace = ((NSString *)results[NSURLVolumeAvailableCapacityForImportantUsageKey]).longLongValue; - } - } else { - NSError *error = nil; - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; - - if (dictionary) { - NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; - NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; - totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; - } else { - NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); - } - - } - return (uint64_t)(totalFreeSpace/1024ll)/1024ll; - } - - uint64_t getTotalDiskSpace (){ - uint64_t totalSpace = 0; - NSError *error = nil; - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; - - if (dictionary) { - NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; - NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; - totalSpace = [fileSystemSizeInBytes unsignedLongLongValue]; - } else { - NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); - } - - return (uint64_t)(totalSpace/1024ll)/1024ll; - } - - uint64_t getBusyDiskSpace (){ - uint64_t totalSpace = 0; - uint64_t totalFreeSpace = 0; - NSError *error = nil; - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; - - if (dictionary) { - NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize]; - NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; - totalSpace = [fileSystemSizeInBytes unsignedLongLongValue]; - totalFreeSpace = [freeFileSystemSizeInBytes unsignedLongLongValue]; - } else { - NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %ld", [error domain], (long)[error code]); - } - - return (uint64_t)((totalSpace-totalFreeSpace)/1024ll)/1024ll; - } -} -