X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg_steam_remote_storage.h;h=d724c20382cf7efd5baf6fd619069d839b0d864e;hb=HEAD;hp=7d92cce07dc4b680b0922e7f93af9ca59e2463cb;hpb=ffd724233b7a3cb89d0d5d253ba4c475d87c76e2;p=vg.git diff --git a/vg_steam_remote_storage.h b/vg_steam_remote_storage.h index 7d92cce..c7980e2 100644 --- a/vg_steam_remote_storage.h +++ b/vg_steam_remote_storage.h @@ -1,9 +1,7 @@ -#ifndef VG_STEAM_REMOTE_STORAGE_H -#define VG_STEAM_REMOTE_STORAGE_H +#pragma once +#include "vg_steam.h" -#include "vg/vg_steam.h" - -const u32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; +static const u32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024; #if defined( VALVE_CALLBACK_PACK_SMALL ) #pragma pack( push, 4 ) @@ -20,17 +18,18 @@ struct SteamParamStringArray_t{ #pragma pack( pop ) /* A handle to a piece of user generated content */ +typedef void ISteamRemoteStorage; typedef u64 UGCHandle_t; typedef u64 PublishedFileUpdateHandle_t; typedef u64 PublishedFileId_t; -const PublishedFileId_t k_PublishedFileIdInvalid = 0; -const UGCHandle_t k_UGCHandleInvalid = 0xffffffffffffffffull; -const PublishedFileUpdateHandle_t +static const PublishedFileId_t k_PublishedFileIdInvalid = 0; +static const UGCHandle_t k_UGCHandleInvalid = 0xffffffffffffffffull; +static const PublishedFileUpdateHandle_t k_PublishedFileUpdateHandleInvalid = 0xffffffffffffffffull; /* Handle for writing to Steam Cloud */ typedef u64 UGCFileWriteStreamHandle_t; -const UGCFileWriteStreamHandle_t +static const UGCFileWriteStreamHandle_t k_UGCFileStreamHandleInvalid = 0xffffffffffffffffull; enum{ k_cchPublishedDocumentTitleMax = 128 + 1 }; @@ -164,7 +163,7 @@ typedef struct RemoteStoragePublishFileResult_t struct RemoteStoragePublishFileResult_t{ EResult m_eResult; PublishedFileId_t m_nPublishedFileId; - int m_bUserNeedsToAcceptWorkshopLegalAgreement; + steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement; }; enum { k_iRemoteStoragePublushFileResult = k_iSteamRemoteStorageCallbacks + 9 }; @@ -204,7 +203,7 @@ struct RemoteStorageEnumerateUserSubscribedFilesResult_t{ EResult m_eResult; i32 m_nResultsReturned; i32 m_nTotalResultCount; - PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults]; u32 m_rgRTimeSubscribed[ k_unEnumeratePublishedFilesMaxResults ]; }; enum { k_iRemoteStorageEnumerateUserSubscribedFilesResult = @@ -224,7 +223,7 @@ typedef struct RemoteStorageUpdatePublishedFileResult_t struct RemoteStorageUpdatePublishedFileResult_t{ EResult m_eResult; PublishedFileId_t m_nPublishedFileId; - int m_bUserNeedsToAcceptWorkshopLegalAgreement; + steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement; }; enum { k_iRemoteStorageUpdatePublishedFileResult = k_iSteamRemoteStorageCallbacks + 16 }; @@ -259,15 +258,15 @@ struct RemoteStorageGetPublishedFileDetailsResult_t{ u32 m_rtimeCreated; u32 m_rtimeUpdated; ERemoteStoragePublishedFileVisibility m_eVisibility; - int m_bBanned; + steamapi_bool m_bBanned; char m_rgchTags[k_cchTagListMax]; - int m_bTagsTruncated; + steamapi_bool m_bTagsTruncated; char m_pchFileName[k_cchFilenameMax]; i32 m_nFileSize; i32 m_nPreviewFileSize; char m_rgchURL[k_cchPublishedFileURLMax]; EWorkshopFileType m_eFileType; - int m_bAcceptedForUse; + steamapi_bool m_bAcceptedForUse; }; enum { k_iRemoteStorageGetPublishedFileDetailsResult = k_iSteamRemoteStorageCallbacks + 18 }; @@ -278,7 +277,7 @@ struct RemoteStorageEnumerateWorkshopFilesResult_t{ EResult m_eResult; i32 m_nResultsReturned; i32 m_nTotalResultCount; - PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults]; float m_rgScore[ k_unEnumeratePublishedFilesMaxResults ]; AppId_t m_nAppId; u32 m_unStartIndex; @@ -375,7 +374,7 @@ struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t{ EWorkshopFileAction m_eAction; i32 m_nResultsReturned; i32 m_nTotalResultCount; - PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults]; u32 m_rgRTimeUpdated[ k_unEnumeratePublishedFilesMaxResults ]; }; enum { k_iRemoteStorageEnumeratePublishedFilesByUserActionResult_t = @@ -385,7 +384,7 @@ typedef struct RemoteStoragePublishFileProgress_t RemoteStoragePublishFileProgress_t; struct RemoteStoragePublishFileProgress_t{ double m_dPercentFile; - int m_bPreview; + steamapi_bool m_bPreview; }; enum { k_iRemoteStoragePublishFileProgress_t = k_iSteamRemoteStorageCallbacks + 29 }; @@ -421,4 +420,163 @@ enum { k_iRemoteStorageFileReadAsyncComplete_t = #pragma pack( pop ) -#endif /* VG_STEAM_REMOTE_STORAGE_H */ +ISteamRemoteStorage *SteamAPI_SteamRemoteStorage_v016(); +static inline ISteamRemoteStorage *SteamAPI_SteamRemoteStorage() +{ + return SteamAPI_SteamRemoteStorage_v016(); +} + +steamapi_bool SteamAPI_ISteamRemoteStorage_FileWrite( ISteamRemoteStorage* self, + const char * pchFile, const void * pvData, i32 cubData ); +i32 SteamAPI_ISteamRemoteStorage_FileRead( ISteamRemoteStorage* self, + const char * pchFile, void * pvData, i32 cubDataToRead ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync( + ISteamRemoteStorage* self, const char * pchFile, const void * pvData, + u32 cubData ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync( + ISteamRemoteStorage* self, const char * pchFile, u32 nOffset, + u32 cubToRead ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete( + ISteamRemoteStorage* self, SteamAPICall_t hReadCall, void * pvBuffer, + u32 cubToRead ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileForget( + ISteamRemoteStorage *self, const char * pchFile ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileDelete( + ISteamRemoteStorage *self, const char * pchFile ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare( + ISteamRemoteStorage* self, const char * pchFile ); +steamapi_bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms( + ISteamRemoteStorage* self, const char * pchFile, + ERemoteStoragePlatform eRemoteStoragePlatform ); +UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen( + ISteamRemoteStorage* self, const char * pchFile ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk( + ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle, + const void * pvData, i32 cubData ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose( + ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel( + ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FileExists( + ISteamRemoteStorage* self, const char * pchFile ); +steamapi_bool SteamAPI_ISteamRemoteStorage_FilePersisted( + ISteamRemoteStorage* self, const char * pchFile ); +i32 SteamAPI_ISteamRemoteStorage_GetFileSize( ISteamRemoteStorage* self, + const char * pchFile ); +i64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp( ISteamRemoteStorage* self, + const char * pchFile ); +ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms( + ISteamRemoteStorage* self, const char * pchFile ); +i32 SteamAPI_ISteamRemoteStorage_GetFileCount( ISteamRemoteStorage* self ); +const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize( + ISteamRemoteStorage* self, int iFile, i32 * pnFileSizeInBytes ); +steamapi_bool SteamAPI_ISteamRemoteStorage_GetQuota( ISteamRemoteStorage* self, + u64 * pnTotalBytes, u64 * puAvailableBytes ); +steamapi_bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount( + ISteamRemoteStorage* self ); +steamapi_bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp( + ISteamRemoteStorage* self ); +void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp( + ISteamRemoteStorage* self, steamapi_bool bEnabled ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload( + ISteamRemoteStorage* self, UGCHandle_t hContent, u32 unPriority ); +steamapi_bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress( + ISteamRemoteStorage* self, UGCHandle_t hContent, i32 * pnBytesDownloaded, + i32 * pnBytesExpected ); +steamapi_bool SteamAPI_ISteamRemoteStorage_GetUGCDetails( + ISteamRemoteStorage* self, + UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName, + i32 * pnFileSizeInBytes, CSteamID * pSteamIDOwner ); +i32 SteamAPI_ISteamRemoteStorage_UGCRead( ISteamRemoteStorage* self, + UGCHandle_t hContent, void * pvData, i32 cubDataToRead, u32 cOffset, + EUGCReadAction eAction ); +i32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount( ISteamRemoteStorage* self ); +UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle( + ISteamRemoteStorage* self, i32 iCachedContent ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile( + ISteamRemoteStorage* self, const char * pchFile, + const char * pchPreviewFile, AppId_t nConsumerAppId, + const char * pchTitle, const char * pchDescription, + ERemoteStoragePublishedFileVisibility eVisibility, + SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType ); +PublishedFileUpdateHandle_t +SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + const char * pchFile ); +steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + const char * pchPreviewFile ); +steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + const char * pchTitle ); +steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + const char * pchDescription ); +steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + ERemoteStoragePublishedFileVisibility eVisibility ); +steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + SteamParamStringArray_t * pTags ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, + u32 unMaxSecondsOld ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles( + ISteamRemoteStorage* self, u32 unStartIndex ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles( + ISteamRemoteStorage* self, u32 unStartIndex ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +steamapi_bool +SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription( + ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle, + const char * pchChangeDescription ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, + steamapi_bool bVoteUp ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles( + ISteamRemoteStorage* self, u64_steamid steamId, u32 unStartIndex, + SteamParamStringArray_t * pRequiredTags, + SteamParamStringArray_t * pExcludedTags ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo( + ISteamRemoteStorage* self, EWorkshopVideoProvider eVideoProvider, + const char * pchVideoAccount, const char * pchVideoIdentifier, + const char * pchPreviewFile, AppId_t nConsumerAppId, + const char * pchTitle, const char * pchDescription, + ERemoteStoragePublishedFileVisibility eVisibility, + SteamParamStringArray_t * pTags ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction( + ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId, + EWorkshopFileAction eAction ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction( + ISteamRemoteStorage* self, EWorkshopFileAction eAction, + u32 unStartIndex ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles( + ISteamRemoteStorage* self, EWorkshopEnumerationType eEnumerationType, + u32 unStartIndex, u32 unCount, u32 unDays, + SteamParamStringArray_t * pTags, SteamParamStringArray_t * pUserTags ); +SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation( + ISteamRemoteStorage* self, UGCHandle_t hContent, + const char * pchLocation, u32 unPriority ); +i32 SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount( + ISteamRemoteStorage* self ); +const char * SteamAPI_ISteamRemoteStorage_GetLocalFileChange( + ISteamRemoteStorage* self, int iFile, + ERemoteStorageLocalFileChange * pEChangeType, + ERemoteStorageFilePathType * pEFilePathType ); +steamapi_bool SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch( + ISteamRemoteStorage *self ); +steamapi_bool SteamAPI_ISteamRemoteStorage_EndFileWriteBatch( + ISteamRemoteStorage *self );