Add CMemoryCardDriver::InitializeFileInfo, CMemoryStreamOut

Former-commit-id: b0ce4e26f1
This commit is contained in:
Henrique Gemignani Passos Lima
2022-10-11 16:41:20 +03:00
parent df01c5f965
commit c97527ba03
8 changed files with 141 additions and 25 deletions

View File

@@ -4,6 +4,9 @@
#include "string.h"
#include "types.h"
#include "Kyoto/CSimplePool.hpp"
#include "Kyoto/Streams/CMemoryStreamOut.hpp"
#include "rstl/string.hpp"
// TODO: likely comes from dolphin sdk
@@ -45,17 +48,29 @@ struct CardStat {
};
class CCardFileInfo {
uchar pad[0x114];
uchar pad[0xf4];
rstl::vector<u8> xf4_saveBuffer;
rstl::vector<u8> x104_cardBuffer;
public:
CCardFileInfo(EMemoryCardPort port, const rstl::string& name);
~CCardFileInfo();
void SetComment(const rstl::string& name);
void LockBannerToken(CAssetId bannerTxtr, CSimplePool& sp);
void LockIconToken(CAssetId iconTxtr, int speed, CSimplePool& sp);
ECardResult PumpCardTransfer();
ECardResult CreateFile();
ECardResult WriteFile();
ECardResult CloseFile();
inline CMemoryStreamOut BeginMemoryOut(uint sz) {
xf4_saveBuffer.resize(sz, '\x00');
return CMemoryStreamOut(xf4_saveBuffer.data(), sz, CMemoryStreamOut::kOS_NotOwned, sz);
}
};
CHECK_SIZEOF(CCardFileInfo, 0x114)
class CMemoryCardSys {
public: