aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/PS3/Network/SonyRemoteStorage_PS3.h
blob: ffbc57b0bd3d7cac74000cc8a7193059bce49822 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#pragma once 


#include "Common\Network\Sony\sceRemoteStorage\header\sceRemoteStorage.h"

class SonyRemoteStorage_PS3 : public SonyRemoteStorage
{
public:


	virtual bool init(CallbackFunc cb, LPVOID lpParam);

	virtual bool getRemoteFileInfo(SceRemoteStorageStatus* pInfo, CallbackFunc cb, LPVOID lpParam);
	virtual bool getData(const char* remotePath, const char* localPath, CallbackFunc cb, LPVOID lpParam);

	virtual void abort();
	virtual bool setDataInternal();

	bool isWaitingForTicket() { return m_waitingForTicket; }
	void npauthhandler(int event, int result, void *arg);

	void SetSecureID(char* id) { memcpy(m_secureFileId, id, CELL_SAVEDATA_SECUREFILEID_SIZE); }

	void CompressSaveData();
	bool dataCompressDone() { return (m_compressedSaveState == e_state_Idle);}
private:
	int reqId;
	void * psnTicket;
	size_t psnTicketSize;
	bool m_waitingForTicket;
	bool initialized;
	SceRemoteStorageStatus* outputGetStatus;
	SceRemoteStorageData outputGetData;

	enum CompressSaveState
	{
		e_state_LoadingSave, 
		e_state_CompressedSave, 
		e_state_SavingSave,
		e_state_Idle
	};

	CompressSaveState m_compressedSaveState;
	char m_secureFileId[CELL_SAVEDATA_SECUREFILEID_SIZE];

	int32_t m_lastErrorCode;
	int m_getDataProgress;
	int m_setDataProgress;
	char m_saveFilename[SCE_REMOTE_STORAGE_DATA_NAME_MAX_LEN];
	char m_saveFileDesc[SCE_REMOTE_STORAGE_DATA_DESCRIPTION_MAX_LEN];
	char m_remoteFilename[SCE_REMOTE_STORAGE_DATA_NAME_MAX_LEN];
	int initPreconditions();
	static void staticInternalCallback(const SceRemoteStorageEvent event, int32_t retCode, void * userData);
	void internalCallback(const SceRemoteStorageEvent event, int32_t retCode);

	virtual void runCallback();


	static int SaveCompressCallback(LPVOID lpParam,bool bRes);
	static int LoadCompressCallback(void *pParam,bool bIsCorrupt, bool bIsOwner);


};