From fd341f6a9d47366efb15c5e70c05b6022fef97c9 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Wed, 20 Dec 2023 23:40:07 +1000 Subject: [PATCH] dep/libchdr: Add chd_get_compressed_size() --- dep/libchdr/include/libchdr/chd.h | 4 +++- dep/libchdr/src/libchdr_chd.c | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dep/libchdr/include/libchdr/chd.h b/dep/libchdr/include/libchdr/chd.h index 0beed4903..4c95439ad 100644 --- a/dep/libchdr/include/libchdr/chd.h +++ b/dep/libchdr/include/libchdr/chd.h @@ -389,11 +389,13 @@ CHD_EXPORT void chd_close(chd_file *chd); /* return the associated core_file */ CHD_EXPORT core_file *chd_core_file(chd_file *chd); +/* return the overall size of a CHD, and any of its parents */ +CHD_EXPORT UINT64 chd_get_compressed_size(chd_file* chd); + /* return an error string for the given CHD error */ CHD_EXPORT const char *chd_error_string(chd_error err); - /* ----- CHD header management ----- */ /* return a pointer to the extracted CHD header data */ diff --git a/dep/libchdr/src/libchdr_chd.c b/dep/libchdr/src/libchdr_chd.c index 8c65d7459..65f1415bf 100644 --- a/dep/libchdr/src/libchdr_chd.c +++ b/dep/libchdr/src/libchdr_chd.c @@ -1952,6 +1952,14 @@ CHD_EXPORT core_file *chd_core_file(chd_file *chd) return chd->file; } +CHD_EXPORT UINT64 chd_get_compressed_size(chd_file *chd) +{ + UINT64 size = chd->file->fsize(chd->file); + if (chd->parent) + size += chd_get_compressed_size(chd->parent); + return size; +} + /*------------------------------------------------- chd_error_string - return an error string for the given CHD error