mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
CARDBOARD用APIで共有拡張セーブデータを出力するように git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@475 385bec56-5757-e545-9c3a-d8741f4650f1
68 lines
2.7 KiB
C++
68 lines
2.7 KiB
C++
/*---------------------------------------------------------------------------*
|
|
Project: Horizon
|
|
File: FileTransfer.h
|
|
|
|
Copyright 2009 Nintendo. All rights reserved.
|
|
|
|
These coded instructions, statements, and computer programs contain
|
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
|
Company Ltd., and are protected by Federal copyright law. They may
|
|
not be disclosed to third parties or copied or duplicated in any form,
|
|
in whole or in part, without the prior written consent of Nintendo.
|
|
|
|
$Rev$
|
|
*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef FILETRANSFER_H_
|
|
#define FILETRANSFER_H_
|
|
|
|
#include <nn.h>
|
|
#include <string>
|
|
#include <sstream>
|
|
#include "common_Types.h"
|
|
|
|
namespace common
|
|
{
|
|
|
|
// currentDirectory以下のファイル数、ファイルサイズを再帰的に計算する
|
|
nn::Result CalculateFileNum(std::wstring currentDirectory, u32& fileNum, s64& fileSize);
|
|
|
|
// 単一のディレクトリを作成する
|
|
// アーカイブはマウント済みにしておく
|
|
bool ExportTwlSaveDirectory(const wchar_t* dirPath, nn::fs::FileOutputStream* list,
|
|
nn::crypto::Sha256Context* listContext);
|
|
|
|
// 単一のファイルをコピーする
|
|
// アーカイブはマウント済みにしておく
|
|
bool ExportTwlSaveFile(const wchar_t* from_path, const wchar_t* to_path, void* buf, const size_t bufSize,
|
|
nn::fs::FileOutputStream* list, nn::crypto::Sha256Context* listContext);
|
|
|
|
// ディレクトリ間のコピー
|
|
// アーカイブ越しのコピーが可能
|
|
// アーカイブにマウントした状態で呼び出す必要あり
|
|
// 書き込み先のディレクトリはあらかじめ消去しておくこと。
|
|
// 引数はスラッシュ付き
|
|
// TODO:分割して短くする
|
|
bool CopyDirectory(ImportDataList* fileList, const wchar_t * from_path, const wchar_t * to_path, void* buf,
|
|
const size_t bufSize, bool encode, nn::fs::FileOutputStream* list, nn::crypto::Sha256Context* listContext);
|
|
|
|
// ファイル転送の進捗を取得する
|
|
// InitializeTransferProgress で設定した値を100とする割合が返される
|
|
u32 GetProgress();
|
|
|
|
// ファイル転送の目標値を設定する
|
|
void InitializeTransferProgress(u64 totalSize);
|
|
|
|
// wchar_t* を char* に変換する。
|
|
// 内部のバッファを使用するためスレッドアンセーフ
|
|
const char* GetCharStr(const wchar_t* path);
|
|
|
|
void AddPkcsPadding(u8* paddingSize, void* buf, size_t bufSize, s32* readSize);
|
|
|
|
// ディレクトリ以下のファイルサイズを計算する
|
|
nn::Result CalculateFileSizeRecursively(std::wstring currentDirectory, s64& fileSize);
|
|
|
|
}
|
|
|
|
#endif /* FILETRANSFER_H_ */
|