aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/file_sys/directory_sdmc.h
diff options
context:
space:
mode:
authorGravatar Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>2014-09-12 00:46:42 +0200
committerGravatar Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>2014-09-17 14:35:46 +0000
commit33b0d1081e27b83408786e83ff7d13a4a2acb45c (patch)
tree5f0369be0738f053d46bc1782170e3d1b26616a6 /src/core/file_sys/directory_sdmc.h
parent19d04f3abe4427b38a04a60080f52fdf5b9ee7fe (diff)
Core: Add a Directory object, with both a stub and a passthrough implementations.
Diffstat (limited to 'src/core/file_sys/directory_sdmc.h')
-rw-r--r--src/core/file_sys/directory_sdmc.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/file_sys/directory_sdmc.h b/src/core/file_sys/directory_sdmc.h
new file mode 100644
index 00000000..0bc6c9ef
--- /dev/null
+++ b/src/core/file_sys/directory_sdmc.h
@@ -0,0 +1,45 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "common/common_types.h"
+#include "common/file_util.h"
+
+#include "core/file_sys/directory.h"
+#include "core/file_sys/archive_sdmc.h"
+#include "core/loader/loader.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// FileSys namespace
+
+namespace FileSys {
+
+class Directory_SDMC final : public Directory {
+public:
+ Directory_SDMC();
+ Directory_SDMC(const Archive_SDMC* archive, const std::string& path);
+ ~Directory_SDMC() override;
+
+ /**
+ * List files contained in the directory
+ * @param count Number of entries to return at once in entries
+ * @param entries Buffer to read data into
+ * @return Number of entries listed
+ */
+ u32 Read(const u32 count, Entry* entries) override;
+
+ /**
+ * Close the directory
+ * @return true if the directory closed correctly
+ */
+ bool Close() const override;
+
+private:
+ u32 entry_count;
+ u32 current_entry;
+ FileUtil::FSTEntry entry;
+};
+
+} // namespace FileSys