ctr_Repair/trunk/CardSaveData/Mover/body/source/sub.h

76 lines
2.5 KiB
C++

#ifndef _SUB_H_
#define _SUB_H_
#include <nn.h>
#include "../../../common/savefile/membak.h"
#include "../../../common/savefile/exsave.h"
#include "../../../common/savefile/savefile.h"
#include "../../../common/savefile/savedata.h"
#include "../../../common/my_defs.h"
//セーブデータの検証データが512単位なので
#define FILEBUFF_SIZE 512
//クラス宣言
class CsmSaveFile
{
public:
char PrdCode[20];
private:
bool finalized;
s64 pos_card;//カードのリード位置
//ドライバの仕様で速度的に4バイトアラインした方がいい(SDK 0.14.23 時点)
char fileBuffer[FILEBUFF_SIZE] NN_ATTRIBUTE_ALIGN(4);
char fileBuffer2[FILEBUFF_SIZE] NN_ATTRIBUTE_ALIGN(4);
private:
SaveData savedata;
ExSave exsave;
MemBak memsave;
public:
CsmSaveFile();
~CsmSaveFile();
//void Initialize();
bool IsExist(TgtDev dev);
bool Delete(TgtDev dev);
void Finalize();
nn::Result LastNnResult(TgtDev dev);
myResult Mount(TgtDev dev);
void Unmount(TgtDev dev);
void Unmount();
myResult Create(TgtDev dev,u32 entryDir,u32 entryFile);
void ResetPath(TgtDev dev);
myResult GetPath(TgtDev dev,wchar_t *path);
bool Open(TgtDev dev,wchar_t *path);
bool OpenW(TgtDev dev,wchar_t *path,s64 size=0);
bool CreateFile(TgtDev dev,wchar_t *path,s64 size);
void Close(TgtDev dev);
void Close();
void CloseW(TgtDev dev);
s64 FileSize(TgtDev dev);
s32 Write(TgtDev dev,char *buffer,size_t size);
s32 Read(TgtDev dev,char *buffer,size_t size);
myResult Copy(TgtDev dest,TgtDev src,wchar_t *path,wchar_t *pathw = 0);
myResult OpnCpy(TgtDev dest,TgtDev src,size_t size);
myResult OpnCmp(TgtDev dest,TgtDev src,size_t size);
bool stsActive(TgtDev dev);
bool stsFormatted(TgtDev dev);
bool MakeDir(TgtDev dev,wchar_t *path,bool *mkdir);
bool DeleteFile(TgtDev dev,wchar_t *path);
bool Flush(TgtDev dev);
//Card
bool GetPrdCode();
bool GetInfo(tArcInfo *pinfo,tDcList *pDcList,size_t clsz = 0);
bool ReadBlock(char* buffer,size_t size);
myResult Format(tArcInfo *pinfo){return savedata.Format(pinfo);};
bool Commit(){return savedata.Commit();};
//SD
bool SetPos(s64 pos){return exsave.SetPosW(pos);};
};
#endif