19#ifndef RAGEPHOTO_C_HPP
20#define RAGEPHOTO_C_HPP
27namespace ragephoto_c {
92 GTA5 = RAGEPHOTO_FORMAT_GTA5,
93 RDR2 = RAGEPHOTO_FORMAT_RDR2,
101 instance = ragephoto_open();
103 throw std::runtime_error(
"ragephoto_t instance can't be allocated");
106 ragephoto_close(instance);
110 ragephoto_addparser(instance, rp_parser);
114 ragephotodata_clear(rp_data);
118 ragephoto_clear(instance);
122 return ragephoto_getphotodata(instance);
133 return ragephoto_load(instance,
data, size);
139 return ragephoto_load(instance,
data.data(),
data.size());
145 return ragephoto_loadfile(instance, filename);
149 return ragephoto_error(instance);
153 return ragephoto_getphotoformat(instance);
156 const std::string
jpeg()
const {
157 const char *
jpegData = ragephoto_getphotojpeg(instance);
159 return std::string(
jpegData, ragephoto_getphotosize(instance));
161 return std::string();
163#if (__cplusplus >= 201703L)
166 const char *
jpegData = ragephoto_getphotojpeg(instance);
168 return std::string_view(
jpegData, ragephoto_getphotosize(instance));
170 return std::string_view();
175 return ragephoto_getphotojpeg(instance);
183 return ragephotodata_getphotosign(rp_data);
187 return ragephoto_getphotosignf(instance, photoFormat);
191 return ragephoto_getphotosign(instance);
195 return ragephoto_getphotosize(instance);
199 return ragephoto_getphotodesc(instance);
203 return ragephoto_getphotoheader(instance);
207 return ragephoto_getphotojson(instance);
211 return ragephoto_getphototitle(instance);
215 return ragephoto_version();
223 return ragephotodata_save(rp_data, rp_parser,
data);
230 return ragephoto_savef(instance,
data, photoFormat);
236 return ragephoto_save(instance,
data);
242 const std::string
save(uint32_t photoFormat,
bool *ok =
nullptr) {
244 const size_t size = ragephoto_getsavesizef(instance, photoFormat);
251 const bool saved = ragephoto_savef(instance, &sdata[0], photoFormat);
259 const std::string
save(
bool *ok =
nullptr) {
260 return save(ragephoto_getphotoformat(instance), ok);
263 bool saveFile(
const char *filename, uint32_t photoFormat) {
264 return ragephoto_savefilef(instance, filename, photoFormat);
268 return ragephoto_savefile(instance, filename);
276 return ragephotodata_getsavesize(rp_data, rp_parser);
280 return ragephoto_getsavesizef(instance, photoFormat);
284 return ragephoto_getsavesize(instance);
292 ragephoto_setbufferdefault(instance);
296 ragephotodata_setbufferoffsets(rp_data);
300 ragephoto_setbufferoffsets(instance);
305 return ragephoto_setphotodatac(instance, ragePhotoData);
307 return ragephoto_setphotodata(instance, ragePhotoData);
311 ragephoto_setphotodesc(instance,
description, bufferSize);
315 ragephoto_setphotoformat(instance, photoFormat);
319 ragephoto_setphotoheader2(instance,
header, headerSum, headerSum2);
326 bool setJpeg(
const char *
data, uint32_t size, uint32_t bufferSize = 0) {
327 return ragephoto_setphotojpeg(instance,
data, size, bufferSize);
334 return ragephoto_setphotojpeg(instance,
data.data(),
static_cast<uint32_t
>(
data.size()), bufferSize);
338 ragephoto_setphotojson(instance,
json, bufferSize);
342 ragephoto_setlibraryflag(flag, state);
346 ragephoto_setphototitle(instance,
title, bufferSize);
350 ragephoto_t instance;
size_t ragephotodata_getsavesizef(RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser, uint32_t photoFormat)
Definition RagePhoto.c:1035
uint64_t ragephotodata_getphotosignf(RagePhotoData *rp_data, uint32_t photoFormat)
Definition RagePhoto.c:681
void ragephotodata_setbufferdefault(RagePhotoData *rp_data)
Definition RagePhoto.c:1070
bool ragephotodata_savef(RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser, char *data, uint32_t photoFormat)
Definition RagePhoto.c:764
bool ragephotodata_load(RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser, const char *data, size_t length)
Definition RagePhoto.c:250
GTA V and RDR 2 Photo Parser (C API wrapper).
const char * json() const
Definition ragephoto_c.hpp:206
bool load(const char *data, size_t size)
Definition ragephoto_c.hpp:132
void setTitle(const char *title, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:345
static void setLibraryFlag(RagePhotoLibraryFlag flag, bool state=true)
Definition ragephoto_c.hpp:341
bool loadFile(const char *filename)
Definition ragephoto_c.hpp:144
bool save(char *data, uint32_t photoFormat)
Definition ragephoto_c.hpp:229
size_t saveSize(uint32_t photoFormat)
Definition ragephoto_c.hpp:279
uint64_t jpegSign(uint32_t photoFormat) const
Definition ragephoto_c.hpp:186
static size_t saveSize(uint32_t photoFormat, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:271
void setDescription(const char *description, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:310
static void setBufferOffsets(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:295
static const char * version()
Definition ragephoto_c.hpp:214
bool setJpeg(const char *data, uint32_t size, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:326
static uint64_t jpegSign(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:182
static void clear(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:113
void setFormat(uint32_t photoFormat)
Definition ragephoto_c.hpp:314
void setBufferDefault()
Definition ragephoto_c.hpp:291
bool save(char *data)
Definition ragephoto_c.hpp:235
uint32_t jpegSize() const
Definition ragephoto_c.hpp:194
const std::string save(uint32_t photoFormat, bool *ok=nullptr)
Definition ragephoto_c.hpp:242
bool load(const std::string &data)
Definition ragephoto_c.hpp:138
bool saveFile(const char *filename, uint32_t photoFormat)
Definition ragephoto_c.hpp:263
static void setBufferDefault(RagePhotoData *rp_data)
Definition ragephoto_c.hpp:287
const std::string_view jpeg_view() const
Definition ragephoto_c.hpp:165
size_t saveSize()
Definition ragephoto_c.hpp:283
const std::string jpeg() const
Definition ragephoto_c.hpp:156
bool setJpeg(const std::string &data, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:333
static bool load(const char *data, size_t size, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:125
void setBufferOffsets()
Definition ragephoto_c.hpp:299
SignInitials
Definition ragephoto_c.hpp:96
@ SIGTA5
Definition ragephoto_c.hpp:97
@ SIRDR2
Definition ragephoto_c.hpp:98
void setHeader(const char *header, uint32_t headerSum, uint32_t headerSum2=0)
Definition ragephoto_c.hpp:318
PhotoFormat
Definition ragephoto_c.hpp:91
@ GTA5
Definition ragephoto_c.hpp:92
@ RDR2
Definition ragephoto_c.hpp:93
const std::string save(bool *ok=nullptr)
Definition ragephoto_c.hpp:259
bool saveFile(const char *filename)
Definition ragephoto_c.hpp:267
const char * header() const
Definition ragephoto_c.hpp:202
const char * jpegData() const
Definition ragephoto_c.hpp:174
const char * description() const
Definition ragephoto_c.hpp:198
static uint64_t jpegSign(uint32_t photoFormat, RagePhotoData *rp_data)
Definition ragephoto_c.hpp:178
void setJson(const char *json, uint32_t bufferSize=0)
Definition ragephoto_c.hpp:337
int32_t error() const
Definition ragephoto_c.hpp:148
RagePhotoData * data()
Definition ragephoto_c.hpp:121
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:303
static size_t saveSize(RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:275
const char * title() const
Definition ragephoto_c.hpp:210
static bool save(char *data, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:222
void addParser(RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:109
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:190
uint32_t format() const
Definition ragephoto_c.hpp:152
static bool save(char *data, uint32_t photoFormat, RagePhotoData *rp_data, RagePhotoFormatParser *rp_parser)
Definition ragephoto_c.hpp:218
void clear()
Definition ragephoto_c.hpp:117
Definition RagePhotoTypedefs.h:31