Browse Source
C API: separate C++ and C Header files .gitattributes: use cp1252 as encoding for .rc.in filestest
7 changed files with 232 additions and 188 deletions
@ -0,0 +1,215 @@ |
|||
/*****************************************************************************
|
|||
* libragephoto RAGE Photo Parser |
|||
* Copyright (C) 2021 Syping |
|||
* |
|||
* Redistribution and use in source and binary forms, with or without modification, |
|||
* are permitted provided that the following conditions are met: |
|||
* |
|||
* 1. Redistributions of source code must retain the above copyright notice, |
|||
* this list of conditions and the following disclaimer. |
|||
* |
|||
* 2. Redistributions in binary form must reproduce the above copyright notice, |
|||
* this list of conditions and the following disclaimer in the documentation |
|||
* and/or other materials provided with the distribution. |
|||
* |
|||
* This software is provided as-is, no warranties are given to you, we are not |
|||
* responsible for anything with use of the software, you are self responsible. |
|||
*****************************************************************************/ |
|||
|
|||
#ifndef RAGEPHOTOC_H |
|||
#define RAGEPHOTOC_H |
|||
|
|||
#include "libragephoto_global.h" |
|||
#include <stdint.h> |
|||
#include <stdio.h> |
|||
|
|||
#ifdef LIBRAGEPHOTO_C_NOAPI |
|||
#error "libragephoto was built without C API" |
|||
#endif // LIBRAGEPHOTO_C_NOAPI
|
|||
|
|||
#ifdef __cplusplus |
|||
extern "C" { |
|||
#endif // __cplusplus
|
|||
/** \file RagePhotoC.h */ |
|||
/** RagePhoto C++ class typedef for C API. */ |
|||
typedef void* ragephoto_t; |
|||
|
|||
/** Opens a \p ragephoto_t instance. */ |
|||
LIBRAGEPHOTO_EXPORT ragephoto_t ragephoto_open(); |
|||
|
|||
/** Resets the \p ragephoto_t instance to default values.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_clear(ragephoto_t instance); |
|||
|
|||
/** Loads a Photo from a const char*.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param data Photo data |
|||
* \param size Photo data size |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_load(ragephoto_t instance, const char *data, size_t size); |
|||
|
|||
/** Loads a Photo from a file.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param filename File to load |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_loadfile(ragephoto_t instance, const char *filename); |
|||
|
|||
/** Returns the last error occurred.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT uint8_t ragephoto_error(ragephoto_t instance); |
|||
|
|||
/** Returns the GTA V default Photo Buffer Size. */ |
|||
LIBRAGEPHOTO_EXPORT uint32_t ragephoto_defpbuf_gta5(); |
|||
|
|||
/** Returns the RDR 2 default Photo Buffer Size. */ |
|||
LIBRAGEPHOTO_EXPORT uint32_t ragephoto_defpbuf_rdr2(); |
|||
|
|||
/** Returns the GTA V Photo Format. */ |
|||
LIBRAGEPHOTO_EXPORT uint32_t ragephoto_format_gta5(); |
|||
|
|||
/** Returns the RDR 2 Photo Format. */ |
|||
LIBRAGEPHOTO_EXPORT uint32_t ragephoto_format_rdr2(); |
|||
|
|||
/** Returns the Photo description.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT const char* ragephoto_getphotodesc(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo Format (GTA V or RDR 2).
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT uint32_t ragephoto_getphotoformat(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo JPEG data.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT const char* ragephoto_getphotojpeg(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo JSON data.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT const char* ragephoto_getphotojson(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo header.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT const char* ragephoto_getphotoheader(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo JPEG data size.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT uint32_t ragephoto_getphotosize(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo title.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT const char* ragephoto_getphototitle(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo save file size.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT size_t ragephoto_getsavesize(ragephoto_t instance); |
|||
|
|||
/** Returns the Photo save file size.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param photoFormat Photo Format (GTA V or RDR 2) |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT size_t ragephoto_getsavesizef(ragephoto_t instance, uint32_t photoFormat); |
|||
|
|||
/** Saves a Photo to a char*.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param data Photo data |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_save(ragephoto_t instance, char *data); |
|||
|
|||
/** Saves a Photo to a char*.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param data Photo data |
|||
* \param photoFormat Photo Format (GTA V or RDR 2) |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_savef(ragephoto_t instance, char *data, uint32_t photoFormat); |
|||
|
|||
/** Saves a Photo to a file.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param filename File to save |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_savefile(ragephoto_t instance, const char *filename); |
|||
|
|||
/** Saves a Photo to a file.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param filename File to save |
|||
* \param photoFormat Photo Format (GTA V or RDR 2) |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_savefilef(ragephoto_t instance, const char *filename, uint32_t photoFormat); |
|||
|
|||
/** Sets all cross-format Buffer to default size.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setbufferdefault(ragephoto_t instance); |
|||
|
|||
/** Moves all Buffer offsets to correct position.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setbufferoffsets(ragephoto_t instance); |
|||
|
|||
/** Sets the Photo description.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param description Description |
|||
* \param bufferSize Description buffer size |
|||
* |
|||
* Default bufferSize: 256UL |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setphotodesc(ragephoto_t instance, const char *description, uint32_t bufferSize); |
|||
|
|||
/** Sets the Photo Format (GTA V or RDR 2).
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param photoFormat Photo Format (GTA V or RDR 2) |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setphotoformat(ragephoto_t instance, uint32_t photoFormat); |
|||
|
|||
/** Sets the Photo JPEG data.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param data JPEG data |
|||
* \param size JPEG data size |
|||
* \param bufferSize JPEG buffer size |
|||
* |
|||
* Default bufferSize: ragephoto_defpbuf_gta5() or ragephoto_defpbuf_rdr2() |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT int ragephoto_setphotojpeg(ragephoto_t instance, const char *data, uint32_t size, uint32_t bufferSize); |
|||
|
|||
/** Sets the Photo JSON data.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param json JSON data |
|||
* \param bufferSize JSON data buffer size |
|||
* |
|||
* Default bufferSize: 3072UL |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setphotojson(ragephoto_t instance, const char *json, uint32_t bufferSize); |
|||
|
|||
/** Sets the Photo header. (EXPERT ONLY) */ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setphotoheader(ragephoto_t instance, const char *header, uint32_t headerSum); |
|||
|
|||
/** Sets the Photo title.
|
|||
* \param instance \p ragephoto_t instance |
|||
* \param title Title |
|||
* \param bufferSize Title buffer size |
|||
* |
|||
* Default bufferSize: 256UL |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_setphototitle(ragephoto_t instance, const char *title, uint32_t bufferSize); |
|||
|
|||
/** Closes a \p ragephoto_t instance.
|
|||
* \param instance \p ragephoto_t instance |
|||
*/ |
|||
LIBRAGEPHOTO_EXPORT void ragephoto_close(ragephoto_t instance); |
|||
|
|||
/** Returns the library version. */ |
|||
LIBRAGEPHOTO_EXPORT const char* ragephoto_version(); |
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif // __cplusplus
|
|||
|
|||
#endif // RAGEPHOTOC_H
|
Loading…
Reference in new issue