aboutsummaryrefslogtreecommitdiff
path: root/src/Storage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Storage.cpp')
-rw-r--r--src/Storage.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Storage.cpp b/src/Storage.cpp
index 6a98267..85a150c 100644
--- a/src/Storage.cpp
+++ b/src/Storage.cpp
@@ -259,4 +259,22 @@ namespace QuickMedia {
return false;
}
+
+ std::string file_size_to_human_readable_string(size_t bytes) {
+ double kb = (double)bytes / 1024.0;
+ double mb = (double)bytes / 1024.0 / 1024.0;
+ double gb = (double)bytes / 1024.0 / 1024.0 / 1024.0;
+ char result[32];
+
+ if(gb >= 1.0)
+ snprintf(result, sizeof(result), "%.1f GiB", gb);
+ else if(mb >= 1.0)
+ snprintf(result, sizeof(result), "%.1f MiB", mb);
+ else if(kb >= 1.0)
+ snprintf(result, sizeof(result), "%.1f KiB", kb);
+ else
+ snprintf(result, sizeof(result), "%zu bytes", bytes);
+
+ return result;
+ }
}