Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_INPUTOUTPUT_FILE_ASSET_H__
00009 #define __SP_INPUTOUTPUT_FILE_ASSET_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #if defined(SP_PLATFORM_ANDROID)
00015
00016
00017 #include "Base/spInputOutputFile.hpp"
00018
00019 #include <android/asset_manager.h>
00020
00021
00022 namespace sp
00023 {
00024
00025 class SoftPixelDeviceAndroid;
00026
00027 namespace audio { class OpenSLESSound; }
00028
00029 namespace io
00030 {
00031
00032
00034 class SP_EXPORT FileAsset : public File
00035 {
00036
00037 public:
00038
00039 FileAsset();
00040 ~FileAsset();
00041
00042
00043
00044 bool open(const io::stringc &Filename, const EFilePermission Permission = FILE_READWRITE);
00045 void close();
00046
00047 s32 writeBuffer(const void* Buffer, u32 Size, u32 Count = 1);
00048 s32 readBuffer(void* Buffer, u32 Size, u32 Count = 1) const;
00049
00050 void setSeek(s32 Pos, const EFileSeekTypes PosType = FILEPOS_BEGIN);
00051 s32 getSeek() const;
00052
00053 bool isEOF() const;
00054
00055 u32 getSize() const;
00056 void* getHandle();
00057
00058 bool opened() const;
00059
00060
00061
00062 static bool findFile(const io::stringc &Filename);
00063
00064 private:
00065
00066 friend class sp::SoftPixelDeviceAndroid;
00067 friend class sp::audio::OpenSLESSound;
00068
00069
00070
00071 AAsset* Asset_;
00072 mutable s32 Pos_;
00073
00074 static AAssetManager* AssetManager_;
00075
00076 };
00077
00078
00079 }
00080
00081 }
00082
00083
00084 #endif
00085
00086 #endif
00087
00088
00089
00090