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