d724c20382cf7efd5baf6fd619069d839b0d864e
[vg.git] / vg_steam_remote_storage.h
1 #ifndef VG_STEAM_REMOTE_STORAGE_H
2 #define VG_STEAM_REMOTE_STORAGE_H
3
4 #include "vg_steam.h"
5
6 const u32 k_unMaxCloudFileChunkSize = 100 * 1024 * 1024;
7
8 #if defined( VALVE_CALLBACK_PACK_SMALL )
9 #pragma pack( push, 4 )
10 #elif defined( VALVE_CALLBACK_PACK_LARGE )
11 #pragma pack( push, 8 )
12 #else
13 #error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx
14 #endif
15 typedef struct SteamParamStringArray_t SteamParamStringArray_t;
16 struct SteamParamStringArray_t{
17 const char **m_ppStrings;
18 i32 m_nNumStrings;
19 };
20 #pragma pack( pop )
21
22 /* A handle to a piece of user generated content */
23 typedef void ISteamRemoteStorage;
24 typedef u64 UGCHandle_t;
25 typedef u64 PublishedFileUpdateHandle_t;
26 typedef u64 PublishedFileId_t;
27 const PublishedFileId_t k_PublishedFileIdInvalid = 0;
28 const UGCHandle_t k_UGCHandleInvalid = 0xffffffffffffffffull;
29 const PublishedFileUpdateHandle_t
30 k_PublishedFileUpdateHandleInvalid = 0xffffffffffffffffull;
31
32 /* Handle for writing to Steam Cloud */
33 typedef u64 UGCFileWriteStreamHandle_t;
34 const UGCFileWriteStreamHandle_t
35 k_UGCFileStreamHandleInvalid = 0xffffffffffffffffull;
36
37 enum{ k_cchPublishedDocumentTitleMax = 128 + 1 };
38 enum{ k_cchPublishedDocumentDescriptionMax = 8000 };
39 enum{ k_cchPublishedDocumentChangeDescriptionMax = 8000 };
40 enum{ k_unEnumeratePublishedFilesMaxResults = 50 };
41 enum{ k_cchTagListMax = 1024 + 1 };
42 enum{ k_cchFilenameMax = 260 };
43 enum{ k_cchPublishedFileURLMax = 256 };
44
45 typedef enum ERemoteStoragePlatform ERemoteStoragePlatform;
46 enum ERemoteStoragePlatform{
47 k_ERemoteStoragePlatformNone = 0,
48 k_ERemoteStoragePlatformWindows = (1 << 0),
49 k_ERemoteStoragePlatformOSX = (1 << 1),
50 k_ERemoteStoragePlatformPS3 = (1 << 2),
51 k_ERemoteStoragePlatformLinux = (1 << 3),
52 k_ERemoteStoragePlatformSwitch = (1 << 4),
53 k_ERemoteStoragePlatformAndroid = (1 << 5),
54 k_ERemoteStoragePlatformIOS = (1 << 6),
55
56 /* NB we get one more before we need to widen some things */
57 k_ERemoteStoragePlatformAll = 0xffffffff
58 };
59
60 typedef enum ERemoteStoragePublishedFileVisibility
61 ERemoteStoragePublishedFileVisibility;
62 enum ERemoteStoragePublishedFileVisibility{
63 k_ERemoteStoragePublishedFileVisibilityPublic = 0,
64 k_ERemoteStoragePublishedFileVisibilityFriendsOnly = 1,
65 k_ERemoteStoragePublishedFileVisibilityPrivate = 2,
66 k_ERemoteStoragePublishedFileVisibilityUnlisted = 3,
67 };
68
69
70 typedef enum EWorkshopFileType EWorkshopFileType;
71 enum EWorkshopFileType{
72 k_EWorkshopFileTypeFirst = 0,
73 k_EWorkshopFileTypeCommunity = 0,
74 k_EWorkshopFileTypeMicrotransaction = 1,
75 k_EWorkshopFileTypeCollection = 2,
76 k_EWorkshopFileTypeArt = 3,
77 k_EWorkshopFileTypeVideo = 4,
78 k_EWorkshopFileTypeScreenshot = 5,
79 k_EWorkshopFileTypeGame = 6,
80 k_EWorkshopFileTypeSoftware = 7,
81 k_EWorkshopFileTypeConcept = 8,
82 k_EWorkshopFileTypeWebGuide = 9,
83 k_EWorkshopFileTypeIntegratedGuide = 10,
84 k_EWorkshopFileTypeMerch = 11,
85 k_EWorkshopFileTypeControllerBinding = 12,
86 k_EWorkshopFileTypeSteamworksAccessInvite = 13,
87 k_EWorkshopFileTypeSteamVideo = 14,
88 k_EWorkshopFileTypeGameManagedItem = 15,
89 k_EWorkshopFileTypeMax = 16
90 };
91
92 typedef enum EWorkshopVote EWorkshopVote;
93 enum EWorkshopVote{
94 k_EWorkshopVoteUnvoted = 0,
95 k_EWorkshopVoteFor = 1,
96 k_EWorkshopVoteAgainst = 2,
97 k_EWorkshopVoteLater = 3,
98 };
99
100 typedef enum EWorkshopFileAction EWorkshopFileAction;
101 enum EWorkshopFileAction{
102 k_EWorkshopFileActionPlayed = 0,
103 k_EWorkshopFileActionCompleted = 1,
104 };
105
106 typedef enum EWorkshopEnumerationType EWorkshopEnumerationType;
107 enum EWorkshopEnumerationType{
108 k_EWorkshopEnumerationTypeRankedByVote = 0,
109 k_EWorkshopEnumerationTypeRecent = 1,
110 k_EWorkshopEnumerationTypeTrending = 2,
111 k_EWorkshopEnumerationTypeFavoritesOfFriends = 3,
112 k_EWorkshopEnumerationTypeVotedByFriends = 4,
113 k_EWorkshopEnumerationTypeContentByFriends = 5,
114 k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6,
115 };
116
117 typedef enum EWorkshopVideoProvider EWorkshopVideoProvider;
118 enum EWorkshopVideoProvider{
119 k_EWorkshopVideoProviderNone = 0,
120 k_EWorkshopVideoProviderYoutube = 1
121 };
122
123 typedef enum EUGCReadAction EUGCReadAction;
124 enum EUGCReadAction{
125 k_EUGCRead_ContinueReadingUntilFinished = 0,
126 k_EUGCRead_ContinueReading = 1,
127 k_EUGCRead_Close = 2,
128 };
129
130 typedef enum ERemoteStorageLocalFileChange ERemoteStorageLocalFileChange;
131 enum ERemoteStorageLocalFileChange{
132 k_ERemoteStorageLocalFileChange_Invalid = 0,
133 k_ERemoteStorageLocalFileChange_FileUpdated = 1,
134 k_ERemoteStorageLocalFileChange_FileDeleted = 2,
135 };
136
137 typedef enum ERemoteStorageFilePathType ERemoteStorageFilePathType;
138 enum ERemoteStorageFilePathType{
139 k_ERemoteStorageFilePathType_Invalid = 0,
140 k_ERemoteStorageFilePathType_Absolute = 1,
141 k_ERemoteStorageFilePathType_APIFilename = 2,
142 };
143
144 #define STEAMREMOTESTORAGE_INTERFACE_VERSION \
145 "STEAMREMOTESTORAGE_INTERFACE_VERSION016"
146
147 #if defined( VALVE_CALLBACK_PACK_SMALL )
148 #pragma pack( push, 4 )
149 #elif defined( VALVE_CALLBACK_PACK_LARGE )
150 #pragma pack( push, 8 )
151 #else
152 #error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx
153 #endif
154
155 typedef struct RemoteStorageFileShareResult_t RemoteStorageFileShareResult_t;
156 struct RemoteStorageFileShareResult_t{
157 EResult m_eResult;
158 UGCHandle_t m_hFile;
159 char m_rgchFilename[k_cchFilenameMax];
160 };
161 enum { k_iRemoteStorageFileShareResult = k_iSteamRemoteStorageCallbacks + 7 };
162
163 typedef struct RemoteStoragePublishFileResult_t
164 RemoteStoragePublishFileResult_t;
165 struct RemoteStoragePublishFileResult_t{
166 EResult m_eResult;
167 PublishedFileId_t m_nPublishedFileId;
168 steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
169 };
170 enum { k_iRemoteStoragePublushFileResult = k_iSteamRemoteStorageCallbacks + 9 };
171
172 typedef struct RemoteStorageDeletePublishedFileResult_t
173 RemoteStorageDeletePublishedFileResult_t;
174 struct RemoteStorageDeletePublishedFileResult_t{
175 EResult m_eResult;
176 PublishedFileId_t m_nPublishedFileId;
177 };
178 enum { k_iRemoteStorageDeletePublishedFileResult =
179 k_iSteamRemoteStorageCallbacks + 11 };
180
181 typedef struct RemoteStorageEnumerateUserPublishedFilesResult_t
182 RemoteStorageEnumerateUserPublishedFilesResult_t;
183 struct RemoteStorageEnumerateUserPublishedFilesResult_t{
184 EResult m_eResult;
185 i32 m_nResultsReturned;
186 i32 m_nTotalResultCount;
187 PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults];
188 };
189 enum { k_iRemoteStorageEnumerateUserPublishedFilesResult =
190 k_iSteamRemoteStorageCallbacks + 12 };
191
192 typedef struct RemoteStorageSubscribePublishedFileResult_t
193 RemoteStorageSubscribePublishedFileResult_t;
194 struct RemoteStorageSubscribePublishedFileResult_t{
195 EResult m_eResult;
196 PublishedFileId_t m_nPublishedFileId;
197 };
198 enum { k_iRemoteStorageSubscribePublishedFileResult =
199 k_iSteamRemoteStorageCallbacks + 13 };
200
201
202 typedef struct RemoteStorageEnumerateUserSubscribedFilesResult_t
203 RemoteStorageEnumerateUserSubscribedFilesResult_t;
204 struct RemoteStorageEnumerateUserSubscribedFilesResult_t{
205 EResult m_eResult;
206 i32 m_nResultsReturned;
207 i32 m_nTotalResultCount;
208 PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults];
209 u32 m_rgRTimeSubscribed[ k_unEnumeratePublishedFilesMaxResults ];
210 };
211 enum { k_iRemoteStorageEnumerateUserSubscribedFilesResult =
212 k_iSteamRemoteStorageCallbacks + 14 };
213
214 typedef struct RemoteStorageUnsubscribePublishedFileResult_t
215 RemoteStorageUnsubscribePublishedFileResult_t;
216 struct RemoteStorageUnsubscribePublishedFileResult_t{
217 EResult m_eResult;
218 PublishedFileId_t m_nPublishedFileId;
219 };
220 enum { k_iRemoteStorageUnsubscribePublishedFileResult =
221 k_iSteamRemoteStorageCallbacks + 15 };
222
223 typedef struct RemoteStorageUpdatePublishedFileResult_t
224 RemoteStorageUpdatePublishedFileResult_t;
225 struct RemoteStorageUpdatePublishedFileResult_t{
226 EResult m_eResult;
227 PublishedFileId_t m_nPublishedFileId;
228 steamapi_bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
229 };
230 enum { k_iRemoteStorageUpdatePublishedFileResult =
231 k_iSteamRemoteStorageCallbacks + 16 };
232
233
234 typedef struct RemoteStorageDownloadUGCResult_t
235 RemoteStorageDownloadUGCResult_t;
236 struct RemoteStorageDownloadUGCResult_t{
237 EResult m_eResult;
238 UGCHandle_t m_hFile;
239 AppId_t m_nAppID;
240 i32 m_nSizeInBytes;
241 char m_pchFileName[k_cchFilenameMax];
242 u64 m_ulSteamIDOwner;
243 };
244 enum { k_iRemoteStorageDownloadUGCResult =
245 k_iSteamRemoteStorageCallbacks + 17 };
246
247
248 typedef struct RemoteStorageGetPublishedFileDetailsResult_t
249 RemoteStorageGetPublishedFileDetailsResult_t;
250 struct RemoteStorageGetPublishedFileDetailsResult_t{
251 EResult m_eResult;
252 PublishedFileId_t m_nPublishedFileId;
253 AppId_t m_nCreatorAppID;
254 AppId_t m_nConsumerAppID;
255 char m_rgchTitle[k_cchPublishedDocumentTitleMax];
256 char m_rgchDescription[k_cchPublishedDocumentDescriptionMax];
257 UGCHandle_t m_hFile;
258 UGCHandle_t m_hPreviewFile;
259 u64 m_ulSteamIDOwner;
260 u32 m_rtimeCreated;
261 u32 m_rtimeUpdated;
262 ERemoteStoragePublishedFileVisibility m_eVisibility;
263 steamapi_bool m_bBanned;
264 char m_rgchTags[k_cchTagListMax];
265 steamapi_bool m_bTagsTruncated;
266 char m_pchFileName[k_cchFilenameMax];
267 i32 m_nFileSize;
268 i32 m_nPreviewFileSize;
269 char m_rgchURL[k_cchPublishedFileURLMax];
270 EWorkshopFileType m_eFileType;
271 steamapi_bool m_bAcceptedForUse;
272 };
273 enum { k_iRemoteStorageGetPublishedFileDetailsResult =
274 k_iSteamRemoteStorageCallbacks + 18 };
275
276 typedef struct RemoteStorageEnumerateWorkshopFilesResult_t
277 RemoteStorageEnumerateWorkshopFilesResult_t;
278 struct RemoteStorageEnumerateWorkshopFilesResult_t{
279 EResult m_eResult;
280 i32 m_nResultsReturned;
281 i32 m_nTotalResultCount;
282 PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults];
283 float m_rgScore[ k_unEnumeratePublishedFilesMaxResults ];
284 AppId_t m_nAppId;
285 u32 m_unStartIndex;
286 };
287 enum { k_iRemoteStorageEnumerateWorkshopFilesResult_t =
288 k_iSteamRemoteStorageCallbacks + 19 };
289
290
291 typedef struct RemoteStorageGetPublishedItemVoteDetailsResult_t
292 RemoteStorageGetPublishedItemVoteDetailsResult_t;
293 struct RemoteStorageGetPublishedItemVoteDetailsResult_t{
294 EResult m_eResult;
295 PublishedFileId_t m_unPublishedFileId;
296 i32 m_nVotesFor;
297 i32 m_nVotesAgainst;
298 i32 m_nReports;
299 float m_fScore;
300 };
301 enum { k_iRemoteStorageGetPublishedItemVoteDetailsResult_t =
302 k_iSteamRemoteStorageCallbacks + 20 };
303
304
305 typedef struct RemoteStoragePublishedFileSubscribed_t
306 RemoteStoragePublishedFileSubscribed_t;
307 struct RemoteStoragePublishedFileSubscribed_t{
308 PublishedFileId_t m_nPublishedFileId;
309 AppId_t m_nAppID;
310 };
311 enum { k_iRemoteStoragePublishedFileSubscribed_t =
312 k_iSteamRemoteStorageCallbacks + 21 };
313
314 typedef struct RemoteStoragePublishedFileUnsubscribed_t
315 RemoteStoragePublishedFileUnsubscribed_t;
316 struct RemoteStoragePublishedFileUnsubscribed_t{
317 PublishedFileId_t m_nPublishedFileId;
318 AppId_t m_nAppID;
319 };
320 enum { k_iRemoteStoragePublishedFileUnsubscribed_t =
321 k_iSteamRemoteStorageCallbacks + 22 };
322
323
324 typedef struct RemoteStoragePublishedFileDeleted_t
325 RemoteStoragePublishedFileDeleted_t;
326 struct RemoteStoragePublishedFileDeleted_t{
327 PublishedFileId_t m_nPublishedFileId;
328 AppId_t m_nAppID;
329 };
330 enum { k_iRemoteStoragePublishedFileDeleted_t =
331 k_iSteamRemoteStorageCallbacks + 23 };
332
333 typedef struct RemoteStorageUpdateUserPublishedItemVoteResult_t
334 RemoteStorageUpdateUserPublishedItemVoteResult_t;
335 struct RemoteStorageUpdateUserPublishedItemVoteResult_t{
336 EResult m_eResult;
337 PublishedFileId_t m_nPublishedFileId;
338 };
339 enum { k_iRemoteStorageUpdateUserPublishedItemVoteResult_t =
340 k_iSteamRemoteStorageCallbacks + 24 };
341
342 typedef struct RemoteStorageUserVoteDetails_t RemoteStorageUserVoteDetails_t;
343 struct RemoteStorageUserVoteDetails_t{
344 EResult m_eResult;
345 PublishedFileId_t m_nPublishedFileId;
346 EWorkshopVote m_eVote;
347 };
348 enum { k_iRemoteStorageUserVoteDetails_t =
349 k_iSteamRemoteStorageCallbacks + 25 };
350
351 typedef struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t
352 RemoteStorageEnumerateUserSharedWorkshopFilesResult_t;
353 struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t{
354 EResult m_eResult;
355 i32 m_nResultsReturned;
356 i32 m_nTotalResultCount;
357 PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults];
358 };
359 enum { k_iRemoteStorageEnumerateUserSharedWorkshopFilesResult_t =
360 k_iSteamRemoteStorageCallbacks + 26 };
361
362 typedef struct RemoteStorageSetUserPublishedFileActionResult_t
363 RemoteStorageSetUserPublishedFileActionResult_t;
364 struct RemoteStorageSetUserPublishedFileActionResult_t{
365 EResult m_eResult;
366 PublishedFileId_t m_nPublishedFileId;
367 EWorkshopFileAction m_eAction;
368 };
369 enum { k_iRemoteStorageSetUserPublishedFileActionResult_t =
370 k_iSteamRemoteStorageCallbacks + 27 };
371
372 typedef struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t
373 RemoteStorageEnumeratePublishedFilesByUserActionResult_t;
374 struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t{
375 EResult m_eResult;
376 EWorkshopFileAction m_eAction;
377 i32 m_nResultsReturned;
378 i32 m_nTotalResultCount;
379 PublishedFileId_t m_rgPublishedFileId[k_unEnumeratePublishedFilesMaxResults];
380 u32 m_rgRTimeUpdated[ k_unEnumeratePublishedFilesMaxResults ];
381 };
382 enum { k_iRemoteStorageEnumeratePublishedFilesByUserActionResult_t =
383 k_iSteamRemoteStorageCallbacks + 28 };
384
385 typedef struct RemoteStoragePublishFileProgress_t
386 RemoteStoragePublishFileProgress_t;
387 struct RemoteStoragePublishFileProgress_t{
388 double m_dPercentFile;
389 steamapi_bool m_bPreview;
390 };
391 enum { k_iRemoteStoragePublishFileProgress_t =
392 k_iSteamRemoteStorageCallbacks + 29 };
393
394 typedef struct RemoteStoragePublishedFileUpdated_t
395 RemoteStoragePublishedFileUpdated_t;
396 struct RemoteStoragePublishedFileUpdated_t{
397 PublishedFileId_t m_nPublishedFileId;
398 AppId_t m_nAppID;
399 u64 m_ulUnused;
400 };
401 enum { k_iRemoteStoragePublishedFileUpdated_t =
402 k_iSteamRemoteStorageCallbacks + 30 };
403
404 typedef struct RemoteStorageFileWriteAsyncComplete_t
405 RemoteStorageFileWriteAsyncComplete_t;
406 struct RemoteStorageFileWriteAsyncComplete_t{
407 EResult m_eResult;
408 };
409 enum { k_iRemoteStorageFileWriteAsyncComplete_t =
410 k_iSteamRemoteStorageCallbacks + 31 };
411
412 typedef struct RemoteStorageFileReadAsyncComplete_t
413 RemoteStorageFileReadAsyncComplete_t;
414 struct RemoteStorageFileReadAsyncComplete_t{
415 SteamAPICall_t m_hFileReadAsync;
416 EResult m_eResult;
417 u32 m_nOffset;
418 u32 m_cubRead;
419 };
420 enum { k_iRemoteStorageFileReadAsyncComplete_t =
421 k_iSteamRemoteStorageCallbacks + 32 };
422
423 #pragma pack( pop )
424
425 ISteamRemoteStorage *SteamAPI_SteamRemoteStorage_v016();
426 ISteamRemoteStorage *SteamAPI_SteamRemoteStorage(){
427 return SteamAPI_SteamRemoteStorage_v016();
428 }
429
430 steamapi_bool SteamAPI_ISteamRemoteStorage_FileWrite( ISteamRemoteStorage* self,
431 const char * pchFile, const void * pvData, i32 cubData );
432 i32 SteamAPI_ISteamRemoteStorage_FileRead( ISteamRemoteStorage* self,
433 const char * pchFile, void * pvData, i32 cubDataToRead );
434 SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileWriteAsync(
435 ISteamRemoteStorage* self, const char * pchFile, const void * pvData,
436 u32 cubData );
437 SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileReadAsync(
438 ISteamRemoteStorage* self, const char * pchFile, u32 nOffset,
439 u32 cubToRead );
440 steamapi_bool SteamAPI_ISteamRemoteStorage_FileReadAsyncComplete(
441 ISteamRemoteStorage* self, SteamAPICall_t hReadCall, void * pvBuffer,
442 u32 cubToRead );
443 steamapi_bool SteamAPI_ISteamRemoteStorage_FileForget(
444 ISteamRemoteStorage *self, const char * pchFile );
445 steamapi_bool SteamAPI_ISteamRemoteStorage_FileDelete(
446 ISteamRemoteStorage *self, const char * pchFile );
447 SteamAPICall_t SteamAPI_ISteamRemoteStorage_FileShare(
448 ISteamRemoteStorage* self, const char * pchFile );
449 steamapi_bool SteamAPI_ISteamRemoteStorage_SetSyncPlatforms(
450 ISteamRemoteStorage* self, const char * pchFile,
451 ERemoteStoragePlatform eRemoteStoragePlatform );
452 UGCFileWriteStreamHandle_t SteamAPI_ISteamRemoteStorage_FileWriteStreamOpen(
453 ISteamRemoteStorage* self, const char * pchFile );
454 steamapi_bool SteamAPI_ISteamRemoteStorage_FileWriteStreamWriteChunk(
455 ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle,
456 const void * pvData, i32 cubData );
457 steamapi_bool SteamAPI_ISteamRemoteStorage_FileWriteStreamClose(
458 ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle );
459 steamapi_bool SteamAPI_ISteamRemoteStorage_FileWriteStreamCancel(
460 ISteamRemoteStorage* self, UGCFileWriteStreamHandle_t writeHandle );
461 steamapi_bool SteamAPI_ISteamRemoteStorage_FileExists(
462 ISteamRemoteStorage* self, const char * pchFile );
463 steamapi_bool SteamAPI_ISteamRemoteStorage_FilePersisted(
464 ISteamRemoteStorage* self, const char * pchFile );
465 i32 SteamAPI_ISteamRemoteStorage_GetFileSize( ISteamRemoteStorage* self,
466 const char * pchFile );
467 i64 SteamAPI_ISteamRemoteStorage_GetFileTimestamp( ISteamRemoteStorage* self,
468 const char * pchFile );
469 ERemoteStoragePlatform SteamAPI_ISteamRemoteStorage_GetSyncPlatforms(
470 ISteamRemoteStorage* self, const char * pchFile );
471 i32 SteamAPI_ISteamRemoteStorage_GetFileCount( ISteamRemoteStorage* self );
472 const char * SteamAPI_ISteamRemoteStorage_GetFileNameAndSize(
473 ISteamRemoteStorage* self, int iFile, i32 * pnFileSizeInBytes );
474 steamapi_bool SteamAPI_ISteamRemoteStorage_GetQuota( ISteamRemoteStorage* self,
475 u64 * pnTotalBytes, u64 * puAvailableBytes );
476 steamapi_bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForAccount(
477 ISteamRemoteStorage* self );
478 steamapi_bool SteamAPI_ISteamRemoteStorage_IsCloudEnabledForApp(
479 ISteamRemoteStorage* self );
480 void SteamAPI_ISteamRemoteStorage_SetCloudEnabledForApp(
481 ISteamRemoteStorage* self, steamapi_bool bEnabled );
482 SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownload(
483 ISteamRemoteStorage* self, UGCHandle_t hContent, u32 unPriority );
484 steamapi_bool SteamAPI_ISteamRemoteStorage_GetUGCDownloadProgress(
485 ISteamRemoteStorage* self, UGCHandle_t hContent, i32 * pnBytesDownloaded,
486 i32 * pnBytesExpected );
487 steamapi_bool SteamAPI_ISteamRemoteStorage_GetUGCDetails(
488 ISteamRemoteStorage* self,
489 UGCHandle_t hContent, AppId_t * pnAppID, char ** ppchName,
490 i32 * pnFileSizeInBytes, CSteamID * pSteamIDOwner );
491 i32 SteamAPI_ISteamRemoteStorage_UGCRead( ISteamRemoteStorage* self,
492 UGCHandle_t hContent, void * pvData, i32 cubDataToRead, u32 cOffset,
493 EUGCReadAction eAction );
494 i32 SteamAPI_ISteamRemoteStorage_GetCachedUGCCount( ISteamRemoteStorage* self );
495 UGCHandle_t SteamAPI_ISteamRemoteStorage_GetCachedUGCHandle(
496 ISteamRemoteStorage* self, i32 iCachedContent );
497 SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishWorkshopFile(
498 ISteamRemoteStorage* self, const char * pchFile,
499 const char * pchPreviewFile, AppId_t nConsumerAppId,
500 const char * pchTitle, const char * pchDescription,
501 ERemoteStoragePublishedFileVisibility eVisibility,
502 SteamParamStringArray_t * pTags, EWorkshopFileType eWorkshopFileType );
503 PublishedFileUpdateHandle_t
504 SteamAPI_ISteamRemoteStorage_CreatePublishedFileUpdateRequest(
505 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId );
506 steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileFile(
507 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
508 const char * pchFile );
509 steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFilePreviewFile(
510 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
511 const char * pchPreviewFile );
512 steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTitle(
513 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
514 const char * pchTitle );
515 steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileDescription(
516 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
517 const char * pchDescription );
518 steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileVisibility(
519 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
520 ERemoteStoragePublishedFileVisibility eVisibility );
521 steamapi_bool SteamAPI_ISteamRemoteStorage_UpdatePublishedFileTags(
522 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
523 SteamParamStringArray_t * pTags );
524 SteamAPICall_t SteamAPI_ISteamRemoteStorage_CommitPublishedFileUpdate(
525 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle );
526 SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedFileDetails(
527 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId,
528 u32 unMaxSecondsOld );
529 SteamAPICall_t SteamAPI_ISteamRemoteStorage_DeletePublishedFile(
530 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId );
531 SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserPublishedFiles(
532 ISteamRemoteStorage* self, u32 unStartIndex );
533 SteamAPICall_t SteamAPI_ISteamRemoteStorage_SubscribePublishedFile(
534 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId );
535 SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSubscribedFiles(
536 ISteamRemoteStorage* self, u32 unStartIndex );
537 SteamAPICall_t SteamAPI_ISteamRemoteStorage_UnsubscribePublishedFile(
538 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId );
539 steamapi_bool
540 SteamAPI_ISteamRemoteStorage_UpdatePublishedFileSetChangeDescription(
541 ISteamRemoteStorage* self, PublishedFileUpdateHandle_t updateHandle,
542 const char * pchChangeDescription );
543 SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetPublishedItemVoteDetails(
544 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId );
545 SteamAPICall_t SteamAPI_ISteamRemoteStorage_UpdateUserPublishedItemVote(
546 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId,
547 steamapi_bool bVoteUp );
548 SteamAPICall_t SteamAPI_ISteamRemoteStorage_GetUserPublishedItemVoteDetails(
549 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId );
550 SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(
551 ISteamRemoteStorage* self, u64_steamid steamId, u32 unStartIndex,
552 SteamParamStringArray_t * pRequiredTags,
553 SteamParamStringArray_t * pExcludedTags );
554 SteamAPICall_t SteamAPI_ISteamRemoteStorage_PublishVideo(
555 ISteamRemoteStorage* self, EWorkshopVideoProvider eVideoProvider,
556 const char * pchVideoAccount, const char * pchVideoIdentifier,
557 const char * pchPreviewFile, AppId_t nConsumerAppId,
558 const char * pchTitle, const char * pchDescription,
559 ERemoteStoragePublishedFileVisibility eVisibility,
560 SteamParamStringArray_t * pTags );
561 SteamAPICall_t SteamAPI_ISteamRemoteStorage_SetUserPublishedFileAction(
562 ISteamRemoteStorage* self, PublishedFileId_t unPublishedFileId,
563 EWorkshopFileAction eAction );
564 SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedFilesByUserAction(
565 ISteamRemoteStorage* self, EWorkshopFileAction eAction,
566 u32 unStartIndex );
567 SteamAPICall_t SteamAPI_ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(
568 ISteamRemoteStorage* self, EWorkshopEnumerationType eEnumerationType,
569 u32 unStartIndex, u32 unCount, u32 unDays,
570 SteamParamStringArray_t * pTags, SteamParamStringArray_t * pUserTags );
571 SteamAPICall_t SteamAPI_ISteamRemoteStorage_UGCDownloadToLocation(
572 ISteamRemoteStorage* self, UGCHandle_t hContent,
573 const char * pchLocation, u32 unPriority );
574 i32 SteamAPI_ISteamRemoteStorage_GetLocalFileChangeCount(
575 ISteamRemoteStorage* self );
576 const char * SteamAPI_ISteamRemoteStorage_GetLocalFileChange(
577 ISteamRemoteStorage* self, int iFile,
578 ERemoteStorageLocalFileChange * pEChangeType,
579 ERemoteStorageFilePathType * pEFilePathType );
580 steamapi_bool SteamAPI_ISteamRemoteStorage_BeginFileWriteBatch(
581 ISteamRemoteStorage *self );
582 steamapi_bool SteamAPI_ISteamRemoteStorage_EndFileWriteBatch(
583 ISteamRemoteStorage *self );
584
585 #endif /* VG_STEAM_REMOTE_STORAGE_H */