]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/Android/CAndroidAssetFileArchive.h
7d7ab3515f0afde16bfbab888c70aec6c6a51043
[irrlicht.git] / source / Irrlicht / Android / CAndroidAssetFileArchive.h
1 // Copyright (C) 2012 Joerg Henrichs\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #ifndef __C_ANDROID_ASSET_FILE_ARCHIVE_H_INCLUDED__\r
6 #define __C_ANDROID_ASSET_FILE_ARCHIVE_H_INCLUDED__\r
7 \r
8 \r
9 #include "IrrCompileConfig.h"\r
10 \r
11 #ifdef  _IRR_COMPILE_ANDROID_ASSET_READER_\r
12 \r
13 \r
14 #include "IReadFile.h"\r
15 #include "IFileArchive.h"\r
16 #include "CFileList.h"\r
17 \r
18 #include <android/native_activity.h>\r
19 \r
20 namespace irr\r
21 {\r
22 namespace io\r
23 {\r
24 \r
25 /*!\r
26         Android asset file system written August 2012 by J.Henrichs (later reworked by others).\r
27 */\r
28         class CAndroidAssetFileArchive : public virtual IFileArchive,\r
29                                           virtual CFileList\r
30         {\r
31     public:\r
32 \r
33                 //! constructor\r
34                 CAndroidAssetFileArchive(AAssetManager *assetManager, bool ignoreCase, bool ignorePaths);\r
35 \r
36                 //! destructor\r
37                 virtual ~CAndroidAssetFileArchive();\r
38 \r
39                 //! opens a file by file name\r
40                 virtual IReadFile* createAndOpenFile(const io::path& filename);\r
41 \r
42                 //! opens a file by index\r
43                 virtual IReadFile* createAndOpenFile(u32 index);\r
44 \r
45                 //! returns the list of files\r
46                 virtual const IFileList* getFileList() const;\r
47 \r
48                 //! get the archive type\r
49                 virtual E_FILE_ARCHIVE_TYPE getType() const;\r
50 \r
51                 //! Add a directory to read files from. Since the Android \r
52                 //! API does not return names of directories, they need to\r
53                 //! be added manually.\r
54                 virtual void addDirectoryToFileList(const io::path &filename);\r
55 \r
56                 //! return the name (id) of the file Archive\r
57                 const io::path& getArchiveName() const override {return Path;}\r
58 \r
59         protected:\r
60                 //! Android's asset manager\r
61                 AAssetManager *AssetManager;\r
62 \r
63     };   // CAndroidAssetFileArchive\r
64 \r
65 } // end namespace io\r
66 } // end namespace irr\r
67 \r
68 #endif //   _IRR_COMPILE_ANDROID_ASSET_READER_\r
69 #endif //  __C_ANDROID_ASSET_READER_H_INCLUDED__\r
70 \r