summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/DiscExtractor.h
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-06-18 13:20:54 +0200
committerJosJuice <josjuice@gmail.com>2017-06-28 22:22:31 +0200
commit6d5199264895f007b9714d448519f5fafec00fa6 (patch)
tree411de8bdd97dd4126185ac70fa09452a535b5897 /Source/Core/DiscIO/DiscExtractor.h
parent5778e8bdba204a1c571eeaf958250f5afcfd8610 (diff)
Move ExtractDir from FilesystemPanel to DiscExtractor
Diffstat (limited to 'Source/Core/DiscIO/DiscExtractor.h')
-rw-r--r--Source/Core/DiscIO/DiscExtractor.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/DiscExtractor.h b/Source/Core/DiscIO/DiscExtractor.h
index 6061075b9f..1372f2a8cd 100644
--- a/Source/Core/DiscIO/DiscExtractor.h
+++ b/Source/Core/DiscIO/DiscExtractor.h
@@ -4,6 +4,7 @@
#pragma once
+#include <functional>
#include <optional>
#include "Common/CommonTypes.h"
@@ -20,6 +21,15 @@ bool ExportData(const Volume& volume, const Partition& partition, u64 offset, u6
const std::string& export_filename);
bool ExportFile(const Volume& volume, const Partition& partition, const FileInfo* file_info,
const std::string& export_filename);
+
+// update_progress is called once for each child (file or directory).
+// If update_progress returns true, the extraction gets cancelled.
+// filesystem_path is supposed to be the path corresponding to the directory argument.
+void ExportDirectory(const Volume& volume, const Partition partition, const FileInfo& directory,
+ bool recursive, const std::string& filesystem_path,
+ const std::string& export_folder,
+ const std::function<bool(const std::string& path)>& update_progress);
+
bool ExportApploader(const Volume& volume, const Partition& partition,
const std::string& export_filename);
std::optional<u64> GetBootDOLOffset(const Volume& volume, const Partition& partition);