#include #include #include #include "savedata.h" #include #include #include #include //プロダクトコード //結果は PrdCord に格納 bool SaveData::GetPrdCode() { PrdCode[0] = 0;//clear s32 numPrograms; nn::ProgramId programId; LastNnResult = nn::am::InitializeForLocalImporter(); // LastNnResult = nn::am::InitializeForSystemMenu(); if (LastNnResult.IsFailure()){ nn::am::FinalizeForLocalImporter(); // nn::am::FinalizeForSystemMenu(); return false; } LastNnResult = nn::am::GetProgramList(&numPrograms, &programId, 1, nn::fs::MEDIA_TYPE_CTRCARD); if (LastNnResult.IsFailure()){ nn::am::FinalizeForLocalImporter(); //nn::am::FinalizeForSystemMenu(); return false; } LastNnResult = nn::am::GetProductCode( (nn::ProductCode*)&PrdCode,nn::fs::MEDIA_TYPE_CTRCARD,programId); nn::am::FinalizeForLocalImporter(); //nn::am::FinalizeForSystemMenu(); PrdCode[sizeof(nn::ProductCode)] = 0;//表示時のオーバラン対策 return LastNnResult.IsSuccess(); } //セーブ作成、成功時はマウント状態 myResult SaveData::Format(tArcInfo *pinfo) { if ( IsMounted )return RESULT_ALREADY_MOUNT; LastNnResult = nn::fs::FormatCtrCardSaveData(pinfo->FileEntry,pinfo->DirEntry,pinfo->Dup); if (LastNnResult.IsFailure())return RESULT_FAIL_FORMAT; if ( Mount() != RESULT_OK )return RESULT_FAIL_MOUNT; IsMounted = true; return RESULT_OK; } //コミット bool SaveData::Commit() { LastNnResult=nn::fs::CommitSaveData(devName); return LastNnResult.IsSuccess(); } //マウント bool SaveData::MountCore() { //リストア先の場合、コール元でチェック(エラーによってはフォーマットすれば使える) LastNnResult = nn::fs::MountCtrCardSaveDataForCheck(devName); return LastNnResult.IsSuccess(); } //フォーマット情報 void SaveData::GetFormatInfoCore(tArcInfo *ifo) { LastNnResult = nn::fs::GetCtrCardSaveDataFormatInfo(&ifo->FileEntry,&ifo->DirEntry,&ifo->Dup); } //コンストラクタ SaveData::SaveData() { PrdCode[0] = 0; strcpy(devName,"data:"); SetRootPath(L"data:"); }