summaryrefslogtreecommitdiff
path: root/src/fileload.h
diff options
context:
space:
mode:
authorTreeki <treeki@gmail.com>2011-03-12 23:17:12 +0100
committerTreeki <treeki@gmail.com>2011-03-12 23:17:12 +0100
commit7d4e4c0b34a613dd3c0220475ae4e448197522c1 (patch)
tree4f5cee367de3fdef4f9a7c84af59ffe76a2bb1c3 /src/fileload.h
downloadkamek-7d4e4c0b34a613dd3c0220475ae4e448197522c1.tar.gz
kamek-7d4e4c0b34a613dd3c0220475ae4e448197522c1.zip
initial commit. now I can start playing with stuff!
Diffstat (limited to '')
-rw-r--r--src/fileload.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/fileload.h b/src/fileload.h
new file mode 100644
index 0000000..5dcdb2b
--- /dev/null
+++ b/src/fileload.h
@@ -0,0 +1,74 @@
+#ifndef __NEWER_FILELOAD_H
+#define __NEWER_FILELOAD_H
+
+#include <common.h>
+
+struct FileHandle {
+ void *filePtr;
+ int length;
+};
+
+struct DVDHandle {
+ int unk1; // 00
+ int unk2; // 04
+ int unk3; // 08
+ int unk4; // 0C
+ int unk5; // 10
+ int unk6; // 14
+ int unk7; // 18
+ int unk8; // 1C
+ int unk9; // 20
+ int unk10; // 24
+ int unk11; // 28
+ int unk12; // 2C
+ int address; // 30
+ int length; // 34
+ int unk13; // 38
+};
+
+
+int DVDConvertPathToEntrynum(const char *path);
+bool DVDFastOpen(int entrynum, DVDHandle *handle);
+int DVDReadPrio(DVDHandle *handle, void *buffer, int length, int offset, int unk);
+bool DVDClose(DVDHandle *handle);
+
+// EGG::Heap
+void *EGG__Heap__alloc(unsigned long size, int unk, void *heap);
+void EGG__Heap__free(void *ptr, void *heap);
+
+void *LoadFile(FileHandle *handle, const char *name);
+void *LoadCompressedFile(FileHandle *handle, const char *name);
+bool FreeFile(FileHandle *handle);
+
+void inline *GetArchiveHeap() {
+ return ArchiveHeap;
+
+}
+
+
+// C++ interface
+class File {
+public:
+ File();
+ ~File();
+
+ bool open(const char *filename);
+ void close();
+
+ bool openCompressed(const char *filename);
+
+ bool isOpen();
+
+ void *ptr();
+ u32 length();
+
+private:
+ FileHandle m_handle;
+ bool m_loaded;
+};
+
+
+// Todo: input stream maybe?
+
+#endif
+