3030#define OOPETRIS_MALLOC (s ) OOPETRIS_REALLOC(NULL, s)
3131
3232#include "./thirdparty/stb_ds.h"
33+ #include "./windows.h"
3334
3435
3536#ifdef __cplusplus
@@ -44,20 +45,22 @@ extern "C" {
4445 * @param file_path The FilePath of the potential recording file
4546 * @return bool
4647 */
47- bool oopetris_is_recording_file (const char * file_path );
48+ OOPETRIS_C_WRAPPER_EXPORTED bool oopetris_is_recording_file (const char * file_path );
4849
4950// opaque type
5051typedef struct OOPetrisAdditionalInformationImpl OOPetrisAdditionalInformation ;
5152
5253// opaque type
5354typedef struct OOPetrisAdditionalInformationFieldImpl OOPetrisAdditionalInformationField ;
5455
55- const char * * oopetris_additional_information_get_keys (OOPetrisAdditionalInformation * information );
56+ OOPETRIS_C_WRAPPER_EXPORTED const char * * oopetris_additional_information_get_keys (
57+ OOPetrisAdditionalInformation * information
58+ );
5659
5760
58- void oopetris_additional_information_keys_free (const char * * keys );
61+ OOPETRIS_C_WRAPPER_EXPORTED void oopetris_additional_information_keys_free (const char * * keys );
5962
60- const OOPetrisAdditionalInformationField *
63+ OOPETRIS_C_WRAPPER_EXPORTED const OOPetrisAdditionalInformationField *
6164oopetris_additional_information_get_field (OOPetrisAdditionalInformation * information , const char * key );
6265
6366
@@ -77,34 +80,46 @@ typedef enum {
7780} OOPetrisAdditionalInformationType ;
7881
7982
80- OOPetrisAdditionalInformationType oopetris_additional_information_field_get_type (
83+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationType
84+ oopetris_additional_information_field_get_type (const OOPetrisAdditionalInformationField * const field );
85+
86+ OOPETRIS_C_WRAPPER_EXPORTED const char * oopetris_additional_information_field_get_string (
8187 const OOPetrisAdditionalInformationField * const field
8288);
8389
84- const char * oopetris_additional_information_field_get_string ( const OOPetrisAdditionalInformationField * const field );
85-
86- float oopetris_additional_information_field_get_float ( const OOPetrisAdditionalInformationField * const field );
90+ OOPETRIS_C_WRAPPER_EXPORTED float oopetris_additional_information_field_get_float (
91+ const OOPetrisAdditionalInformationField * const field
92+ );
8793
88- double oopetris_additional_information_field_get_double (const OOPetrisAdditionalInformationField * const field );
94+ OOPETRIS_C_WRAPPER_EXPORTED double oopetris_additional_information_field_get_double (
95+ const OOPetrisAdditionalInformationField * const field
96+ );
8997
90- bool oopetris_additional_information_field_get_bool (const OOPetrisAdditionalInformationField * const field );
98+ OOPETRIS_C_WRAPPER_EXPORTED bool oopetris_additional_information_field_get_bool (
99+ const OOPetrisAdditionalInformationField * const field
100+ );
91101
92- uint8_t oopetris_additional_information_field_get_u8 (const OOPetrisAdditionalInformationField * const field );
102+ OOPETRIS_C_WRAPPER_EXPORTED uint8_t
103+ oopetris_additional_information_field_get_u8 (const OOPetrisAdditionalInformationField * const field );
93104
94- int8_t oopetris_additional_information_field_get_i8 (const OOPetrisAdditionalInformationField * const field );
105+ OOPETRIS_C_WRAPPER_EXPORTED int8_t
106+ oopetris_additional_information_field_get_i8 (const OOPetrisAdditionalInformationField * const field );
95107
96- uint32_t oopetris_additional_information_field_get_u32 (const OOPetrisAdditionalInformationField * const field );
108+ OOPETRIS_C_WRAPPER_EXPORTED uint32_t
109+ oopetris_additional_information_field_get_u32 (const OOPetrisAdditionalInformationField * const field );
97110
98111
99- int32_t oopetris_additional_information_field_get_i32 (const OOPetrisAdditionalInformationField * const field );
112+ OOPETRIS_C_WRAPPER_EXPORTED int32_t
113+ oopetris_additional_information_field_get_i32 (const OOPetrisAdditionalInformationField * const field );
100114
101- uint64_t oopetris_additional_information_field_get_u64 (const OOPetrisAdditionalInformationField * const field );
115+ OOPETRIS_C_WRAPPER_EXPORTED uint64_t
116+ oopetris_additional_information_field_get_u64 (const OOPetrisAdditionalInformationField * const field );
102117
103- int64_t oopetris_additional_information_field_get_i64 (const OOPetrisAdditionalInformationField * const field );
118+ OOPETRIS_C_WRAPPER_EXPORTED int64_t
119+ oopetris_additional_information_field_get_i64 (const OOPetrisAdditionalInformationField * const field );
104120
105- const OOPetrisAdditionalInformationField * const * oopetris_additional_information_field_get_vector (
106- const OOPetrisAdditionalInformationField * const field
107- );
121+ OOPETRIS_C_WRAPPER_EXPORTED const OOPetrisAdditionalInformationField * const *
122+ oopetris_additional_information_field_get_vector (const OOPetrisAdditionalInformationField * const field );
108123
109124
110125//TODO(): once we only support C23 (which also the compiled lib has to support ), add underlying enum type uint8_t
@@ -192,39 +207,39 @@ typedef struct OOPetrisRecordingReturnValueImpl OOPetrisRecordingReturnValue;
192207 * @param file_path The FilePath of the recording file
193208 * @return OOPetrisRecordingReturnValue*
194209 */
195- OOPetrisRecordingReturnValue * oopetris_get_recording_information (const char * file_path );
210+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisRecordingReturnValue * oopetris_get_recording_information (const char * file_path );
196211
197212/**
198213 * @brief Determine if the given OOPetrisRecordingReturnValue* is an error or not, after calling this you can call either oopetris_get_error or oopetris_get_information. This has to be freed later, but pay attention, which free function you use, read more in the description of oopetris_free_recording_value
199214 *
200215 * @param value The return value of oopetris_get_recording_information
201216 * @return bool
202217 */
203- bool oopetris_is_error (OOPetrisRecordingReturnValue * value );
218+ OOPETRIS_C_WRAPPER_EXPORTED bool oopetris_is_error (OOPetrisRecordingReturnValue * value );
204219
205- const char * oopetris_get_error (OOPetrisRecordingReturnValue * value );
220+ OOPETRIS_C_WRAPPER_EXPORTED const char * oopetris_get_error (OOPetrisRecordingReturnValue * value );
206221
207- OOPetrisRecordingInformation * oopetris_get_information (OOPetrisRecordingReturnValue * value );
222+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisRecordingInformation * oopetris_get_information (OOPetrisRecordingReturnValue * value );
208223
209- void oopetris_free_recording_information (OOPetrisRecordingInformation * information );
224+ OOPETRIS_C_WRAPPER_EXPORTED void oopetris_free_recording_information (OOPetrisRecordingInformation * information );
210225
211- void oopetris_free_recording_value_only (OOPetrisRecordingReturnValue * information );
226+ OOPETRIS_C_WRAPPER_EXPORTED void oopetris_free_recording_value_only (OOPetrisRecordingReturnValue * information );
212227
213- void oopetris_free_recording_value_whole (OOPetrisRecordingReturnValue * information );
228+ OOPETRIS_C_WRAPPER_EXPORTED void oopetris_free_recording_value_whole (OOPetrisRecordingReturnValue * information );
214229
215- const char * oopetris_get_lib_version (void );
230+ OOPETRIS_C_WRAPPER_EXPORTED const char * oopetris_get_lib_version (void );
216231
217232typedef struct {
218233 uint32_t height ;
219234 uint32_t width ;
220235} OOPetrisGridProperties ;
221236
222- OOPetrisGridProperties * oopetris_get_grid_properties (void );
237+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisGridProperties * oopetris_get_grid_properties (void );
223238
224- void oopetris_free_grid_properties (OOPetrisGridProperties * properties );
239+ OOPETRIS_C_WRAPPER_EXPORTED void oopetris_free_grid_properties (OOPetrisGridProperties * properties );
225240
226241
227- size_t oopetris_array_len (void * const array );
242+ OOPETRIS_C_WRAPPER_EXPORTED size_t oopetris_array_len (void * const array );
228243
229244#define FREE_AND_SET_NULL (fn , obj ) \
230245 do { \
@@ -235,7 +250,7 @@ size_t oopetris_array_len(void* const array);
235250
236251// CREATION functions
237252
238- OOPetrisRecordingInformation * oopetris_create_recording_information (void );
253+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisRecordingInformation * oopetris_create_recording_information (void );
239254
240255void oopetris_add_information_field (
241256 OOPetrisAdditionalInformation * additional_information ,
@@ -244,42 +259,61 @@ void oopetris_add_information_field(
244259);
245260
246261
247- OOPetrisAdditionalInformationField * oopetris_additional_information_create_string (const char * value );
262+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_string (
263+ const char * value
264+ );
248265
249- OOPetrisAdditionalInformationField * oopetris_additional_information_create_float (float value );
266+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_float (float value
267+ );
250268
251- OOPetrisAdditionalInformationField * oopetris_additional_information_create_double (double value );
269+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_double (
270+ double value
271+ );
252272
253- OOPetrisAdditionalInformationField * oopetris_additional_information_create_bool (bool value );
273+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_bool (bool value );
254274
255- OOPetrisAdditionalInformationField * oopetris_additional_information_create_u8 (uint8_t value );
275+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_u8 (uint8_t value
276+ );
256277
257- OOPetrisAdditionalInformationField * oopetris_additional_information_create_i8 (int8_t value );
278+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_i8 (int8_t value );
258279
259- OOPetrisAdditionalInformationField * oopetris_additional_information_create_u32 (uint32_t value );
280+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_u32 (
281+ uint32_t value
282+ );
260283
261284
262- OOPetrisAdditionalInformationField * oopetris_additional_information_create_i32 (int32_t value );
285+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_i32 (int32_t value
286+ );
263287
264- OOPetrisAdditionalInformationField * oopetris_additional_information_create_u64 (uint64_t value );
288+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_u64 (
289+ uint64_t value
290+ );
265291
266- OOPetrisAdditionalInformationField * oopetris_additional_information_create_i64 (int64_t value );
292+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_i64 (int64_t value
293+ );
267294
268- OOPetrisAdditionalInformationField * * oopetris_additional_information_create_empty_vector (void );
295+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * * oopetris_additional_information_create_empty_vector (
296+ void
297+ );
269298
270- OOPetrisAdditionalInformationField * * oopetris_additional_information_create_vector_with_size (size_t size );
299+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * *
300+ oopetris_additional_information_create_vector_with_size (size_t size );
271301
272- OOPetrisAdditionalInformationField * oopetris_additional_information_create_vector (
302+ OOPETRIS_C_WRAPPER_EXPORTED OOPetrisAdditionalInformationField * oopetris_additional_information_create_vector (
273303 OOPetrisAdditionalInformationField * * value
274304);
275305
276- void oopetris_add_record (OOPetrisRecordingInformation * information , OOPetrisTetrionRecord record );
306+ OOPETRIS_C_WRAPPER_EXPORTED void
307+ oopetris_add_record (OOPetrisRecordingInformation * information , OOPetrisTetrionRecord record );
277308
278- void oopetris_add_snapshot (OOPetrisRecordingInformation * information , OOPetrisTetrionSnapshot snapshot );
309+ OOPETRIS_C_WRAPPER_EXPORTED void
310+ oopetris_add_snapshot (OOPetrisRecordingInformation * information , OOPetrisTetrionSnapshot snapshot );
279311
280- void oopetris_add_header (OOPetrisRecordingInformation * information , OOPetrisTetrionHeader tetrion_header );
312+ OOPETRIS_C_WRAPPER_EXPORTED void
313+ oopetris_add_header (OOPetrisRecordingInformation * information , OOPetrisTetrionHeader tetrion_header );
281314
282- char * oopetris_write_to_file (OOPetrisRecordingInformation * information , const char * file_path , bool overwrite );
315+ OOPETRIS_C_WRAPPER_EXPORTED char *
316+ oopetris_write_to_file (OOPetrisRecordingInformation * information , const char * file_path , bool overwrite );
283317
284318
285319#ifdef __cplusplus
0 commit comments