#pragma once // using namespace std; // #include #include "../Media/xuiscene_TransferToXboxOne.h" class CXuiCtrl4JList; class CScene_TransferToXboxOne : public CXuiSceneImpl { protected: typedef struct { WCHAR wchSaveTitle[XCONTENT_MAX_DISPLAYNAME_LENGTH]; unsigned int uiImageLength; } SLOTDATA; CXuiCtrl4JList* m_pSavesSlotList; CXuiList m_SavesSlotList; CXuiControl m_SavesSlotListTimer; XUI_BEGIN_MSG_MAP() XUI_ON_XM_INIT(OnInit) XUI_ON_XM_DESTROY(OnDestroy) XUI_ON_XM_KEYDOWN(OnKeyDown) XUI_ON_XM_NOTIFY_PRESS_EX(OnNotifyPressEx) XUI_ON_XM_NOTIFY_SELCHANGED(OnNotifySelChanged) XUI_ON_XM_NOTIFY_SET_FOCUS(OnNotifySetFocus) XUI_ON_XM_NOTIFY_KILL_FOCUS(OnNotifyKillFocus) XUI_ON_XM_TRANSITION_START(OnTransitionStart) XUI_ON_XM_FONTRENDERERCHANGE_MESSAGE(OnFontRendererChange) XUI_END_MSG_MAP() BEGIN_CONTROL_MAP() MAP_CONTROL(IDC_SavesSlotTimer, m_SavesSlotListTimer) MAP_CONTROL(IDC_SavesSlotsList, m_SavesSlotList) END_CONTROL_MAP() HRESULT OnInit(XUIMessageInit* pInitData, BOOL& bHandled); HRESULT OnDestroy(); HRESULT OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled); HRESULT OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled); HRESULT OnNavReturn(HXUIOBJ hObj, BOOL& rfHandled); HRESULT OnNotifySelChanged(HXUIOBJ hObjSource, XUINotifySelChanged* pNotifySelChangedData, BOOL& bHandled); HRESULT OnNotifySetFocus(HXUIOBJ hObjSource, XUINotifyFocus* pNotifyFocusData, BOOL& bHandled); HRESULT OnNotifyKillFocus(HXUIOBJ hObjSource, XUINotifyFocus* pNotifyFocusData, BOOL& bHandled); HRESULT OnTimer(XUIMessageTimer* pTimer, BOOL& bHandled); HRESULT OnTransitionStart(XUIMessageTransition* pTransition, BOOL& bHandled); HRESULT OnFontRendererChange(); public: // Define the class. The class name must match the ClassOverride property // set for the scene in the UI Authoring tool. XUI_IMPLEMENT_CLASS(CScene_TransferToXboxOne, L"CScene_TransferToXboxOne", XUI_CLASS_SCENE) static int TMSPPSlotListReturned(LPVOID pParam, int iPad, int iUserData, C4JStorage::PTMSPP_FILEDATA pFileData, LPCSTR szFilename); static int TMSPPWriteReturned(LPVOID pParam, int iPad, int iUserData); static int TMSPPDeleteReturned(LPVOID pParam, int iPad, int iUserData); static int UploadSaveForXboxOneThreadProc(LPVOID lpParameter); static int LoadSaveDataReturned(void* pParam, bool bContinue); private: HRESULT BuildSlotFile(int iIndexBeingUpdated, PBYTE pbImageData, DWORD dwImageBytes); bool m_bIgnoreInput; bool m_bRetrievingSaveInfo; int m_iPad; int m_MaxSlotC; int m_iX; // tooltip for clearing all slots if there are saves in them LoadMenuInitData* m_params; XCONTENT_DATA m_XContentData; PBYTE m_pbImageData; DWORD m_dwImageBytes; HXUIBRUSH m_hXuiBrush; PBYTE m_pbSlotListFile; unsigned int m_uiSlotListFileBytes; SLOTDATA* m_pSlotDataA; bool m_bWaitingForWrite; void* m_pvSaveMem; unsigned int m_uiStorageLength; bool m_bSaveDataReceived; unsigned int m_uiSlotID; };