19#ifndef RAGEPHOTO_C_HPP
20#define RAGEPHOTO_C_HPP
27namespace ragephoto_c {
92 JPEG = RAGEPHOTO_FORMAT_JPEG,
93 GTA5 = RAGEPHOTO_FORMAT_GTA5,
94 RDR2 = RAGEPHOTO_FORMAT_RDR2
102 instance = ragephoto_open();
104 throw std::runtime_error(
"ragephoto_t instance can't be allocated");
107 ragephoto_close(instance);
111 ragephoto_addparser(instance, rp_parser);
115 ragephotodata_clear(rp_data);
119 ragephoto_clear(instance);
123 return ragephoto_getphotodata(instance);
127 return ragephotodata_load(rp_data, rp_parser,
data, size);
134 return ragephoto_load(instance,
data, size);
140 return ragephoto_load(instance,
data.data(),
data.size());
146 return ragephoto_loadfile(instance, filename);
150 return ragephoto_error(instance);
154 return ragephoto_getphotoformat(instance);
157 const std::string
jpeg()
const {
158 const char *
jpegData = ragephoto_getphotojpeg(instance);
160 return std::string(
jpegData, ragephoto_getphotosize(instance));
162 return std::string();
164#if (__cplusplus >= 201703L)
167 const char *
jpegData = ragephoto_getphotojpeg(instance);
169 return std::string_view(
jpegData, ragephoto_getphotosize(instance));
171 return std::string_view();
176 return ragephoto_getphotojpeg(instance);
180 return ragephotodata_getphotosignf(rp_data, photoFormat);
184 return ragephotodata_getphotosign(rp_data);
188 return ragephoto_getphotosignf(instance, photoFormat);
192 return ragephoto_getphotosign(instance);
196 return ragephoto_getphotosize(instance);
200 return ragephoto_getphotodesc(instance);
204 return ragephoto_getphotoheader(instance);
208 return ragephoto_getphotojson(instance);
212 return ragephoto_getphototitle(instance);
216 return ragephoto_version();
220 return ragephotodata_savef(rp_data, rp_parser,
data, photoFormat);
224 return ragephotodata_save(rp_data, rp_parser,
data);
231 return ragephoto_savef(instance,
data, photoFormat);
237 return ragephoto_save(instance,
data);
243 const std::string
save(uint32_t photoFormat,
bool *ok =
nullptr) {
245 const size_t size = ragephoto_getsavesizef(instance, photoFormat);
252 const bool saved = ragephoto_savef(instance, &sdata[0], photoFormat);
260 const std::string
save(
bool *ok =
nullptr) {
261 return save(ragephoto_getphotoformat(instance), ok);
264 bool saveFile(
const char *filename, uint32_t photoFormat) {
265 return ragephoto_savefilef(instance, filename, photoFormat);
269 return ragephoto_savefile(instance, filename);
273 return ragephotodata_getsavesizef(rp_data, rp_parser, photoFormat);
277 return ragephotodata_getsavesize(rp_data, rp_parser);
281 return ragephoto_getsavesizef(instance, photoFormat);
285 return ragephoto_getsavesize(instance);
289 ragephotodata_setbufferdefault(rp_data);
293 ragephoto_setbufferdefault(instance);
297 ragephotodata_setbufferoffsets(rp_data);
301 ragephoto_setbufferoffsets(instance);
306 return ragephoto_setphotodatac(instance, ragePhotoData);
308 return ragephoto_setphotodata(instance, ragePhotoData);
312 ragephoto_setphotodesc(instance,
description, bufferSize);
316 ragephoto_setphotoformat(instance, photoFormat);
320 ragephoto_setphotoheader2(instance,
header, headerSum, headerSum2);
327 bool setJpeg(
const char *
data, uint32_t size, uint32_t bufferSize = 0) {
328 return ragephoto_setphotojpeg(instance,
data, size, bufferSize);
335 return ragephoto_setphotojpeg(instance,
data.data(),
static_cast<uint32_t
>(
data.size()), bufferSize);
339 ragephoto_setphotojson(instance,
json, bufferSize);
343 ragephoto_setlibraryflag(flag, state);
347 ragephoto_setphototitle(instance,
title, bufferSize);
351 ragephoto_t instance;
GTA V and RDR 2 Photo Parser (C API wrapper).
Definition ragephoto_c.hpp:34
const char * json() const
Definition ragephoto_c.hpp:207
bool load(const char *data, size_t size)
Definition ragephoto_c.hpp:133
void setTitle(const char *title, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:346
static void setLibraryFlag(RagePhotoLibraryFlag flag, bool state=true)
Definition ragephoto_c.hpp:342
bool loadFile(const char *filename)
Definition ragephoto_c.hpp:145
bool save(char *data, uint32_t photoFormat)
Definition ragephoto_c.hpp:230
size_t saveSize(uint32_t photoFormat)
Definition ragephoto_c.hpp:280
uint64_t jpegSign(uint32_t photoFormat) const
Definition ragephoto_c.hpp:187
static size_t saveSize(uint32_t photoFormat, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:272
void setDescription(const char *description, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:311
static void setBufferOffsets(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:296
static const char * version()
Definition ragephoto_c.hpp:215
bool setJpeg(const char *data, uint32_t size, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:327
static uint64_t jpegSign(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:183
static void clear(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:114
void setFormat(uint32_t photoFormat)
Definition ragephoto_c.hpp:315
void setBufferDefault()
Definition ragephoto_c.hpp:292
bool save(char *data)
Definition ragephoto_c.hpp:236
uint32_t jpegSize() const
Definition ragephoto_c.hpp:195
const std::string save(uint32_t photoFormat, bool *ok=nullptr)
Definition ragephoto_c.hpp:243
bool load(const std::string &data)
Definition ragephoto_c.hpp:139
bool saveFile(const char *filename, uint32_t photoFormat)
Definition ragephoto_c.hpp:264
static void setBufferDefault(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:288
const std::string_view jpeg_view() const
Definition ragephoto_c.hpp:166
size_t saveSize()
Definition ragephoto_c.hpp:284
const std::string jpeg() const
Definition ragephoto_c.hpp:157
bool setJpeg(const std::string &data, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:334
static bool load(const char *data, size_t size, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:126
void setBufferOffsets()
Definition ragephoto_c.hpp:300
SignInitials
Definition ragephoto_c.hpp:97
@ SIGTA5
Definition ragephoto_c.hpp:98
@ SIRDR2
Definition ragephoto_c.hpp:99
void setHeader(const char *header, uint32_t headerSum, uint32_t headerSum2=0)
Definition ragephoto_c.hpp:319
PhotoFormat
Definition ragephoto_c.hpp:91
@ GTA5
Definition ragephoto_c.hpp:93
@ JPEG
Definition ragephoto_c.hpp:92
@ RDR2
Definition ragephoto_c.hpp:94
const std::string save(bool *ok=nullptr)
Definition ragephoto_c.hpp:260
bool saveFile(const char *filename)
Definition ragephoto_c.hpp:268
const char * header() const
Definition ragephoto_c.hpp:203
const char * jpegData() const
Definition ragephoto_c.hpp:175
const char * description() const
Definition ragephoto_c.hpp:199
static uint64_t jpegSign(uint32_t photoFormat, RagePhotoData *rp_data)
Definition ragephoto_c.hpp:179
void setJson(const char *json, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:338
int32_t error() const
Definition ragephoto_c.hpp:149
RagePhotoData * data()
Definition ragephoto_c.hpp:122
DefaultSize
Definition ragephoto_c.hpp:37
@ DEFAULT_DESCBUFFER
Definition ragephoto_c.hpp:40
@ DEFAULT_JSONBUFFER
Definition ragephoto_c.hpp:41
@ GTA5_HEADERSIZE
Definition ragephoto_c.hpp:43
@ DEFAULT_GTA5_PHOTOBUFFER
Definition ragephoto_c.hpp:38
@ DEFAULT_TITLBUFFER
Definition ragephoto_c.hpp:42
@ RDR2_HEADERSIZE
Definition ragephoto_c.hpp:44
@ DEFAULT_RDR2_PHOTOBUFFER
Definition ragephoto_c.hpp:39
bool setData(RagePhotoData *ragePhotoData, bool takeCopy=true)
Definition ragephoto_c.hpp:304
static size_t saveSize(RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:276
const char * title() const
Definition ragephoto_c.hpp:211
static bool save(char *data, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:223
void addParser(RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:110
Error
Definition ragephoto_c.hpp:47
@ IncompleteDescBuffer
Definition ragephoto_c.hpp:55
@ JsonMallocError
Definition ragephoto_c.hpp:76
@ IncompatibleFormat
Definition ragephoto_c.hpp:53
@ IncompleteJsonBuffer
Definition ragephoto_c.hpp:62
@ IncompleteJendMarker
Definition ragephoto_c.hpp:60
@ Uninitialised
Definition ragephoto_c.hpp:88
@ UnicodeHeaderError
Definition ragephoto_c.hpp:87
@ IncompleteTitleBuffer
Definition ragephoto_c.hpp:67
@ PhotoReadError
Definition ragephoto_c.hpp:82
@ IncorrectJendMarker
Definition ragephoto_c.hpp:71
@ IncompleteJsonOffset
Definition ragephoto_c.hpp:64
@ IncorrectJsonMarker
Definition ragephoto_c.hpp:73
@ TitleReadError
Definition ragephoto_c.hpp:85
@ IncompleteDescMarker
Definition ragephoto_c.hpp:56
@ UnicodeInitError
Definition ragephoto_c.hpp:86
@ DescBufferTight
Definition ragephoto_c.hpp:48
@ HeaderMallocError
Definition ragephoto_c.hpp:52
@ IncompleteTitleMarker
Definition ragephoto_c.hpp:68
@ IncompleteTitleOffset
Definition ragephoto_c.hpp:69
@ PhotoMallocError
Definition ragephoto_c.hpp:81
@ IncompleteHeader
Definition ragephoto_c.hpp:59
@ IncompleteChecksum
Definition ragephoto_c.hpp:54
@ IncompletePhotoSize
Definition ragephoto_c.hpp:66
@ IncompleteDescOffset
Definition ragephoto_c.hpp:57
@ PhotoBufferTight
Definition ragephoto_c.hpp:80
@ DescMallocError
Definition ragephoto_c.hpp:49
@ TitleBufferTight
Definition ragephoto_c.hpp:83
@ IncorrectDescMarker
Definition ragephoto_c.hpp:70
@ IncompleteEOF
Definition ragephoto_c.hpp:58
@ IncorrectJpegMarker
Definition ragephoto_c.hpp:72
@ IncompletePhotoBuffer
Definition ragephoto_c.hpp:65
@ DescReadError
Definition ragephoto_c.hpp:50
@ JsonBufferTight
Definition ragephoto_c.hpp:75
@ TitleMallocError
Definition ragephoto_c.hpp:84
@ HeaderBufferTight
Definition ragephoto_c.hpp:51
@ IncorrectTitleMarker
Definition ragephoto_c.hpp:74
@ IncompleteJpegMarker
Definition ragephoto_c.hpp:61
@ NoError
Definition ragephoto_c.hpp:78
@ JsonReadError
Definition ragephoto_c.hpp:77
@ NoFormatIdentifier
Definition ragephoto_c.hpp:79
@ IncompleteJsonMarker
Definition ragephoto_c.hpp:63
uint64_t jpegSign() const
Definition ragephoto_c.hpp:191
uint32_t format() const
Definition ragephoto_c.hpp:153
static bool save(char *data, uint32_t photoFormat, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:219
void clear()
Definition ragephoto_c.hpp:118
Definition RagePhotoTypedefs.h:31