

#ifdef __cplusplus
extern "C" {
#include <cstdint>
#include <cstdio>
#else
#include <stdint.h>
#include <stdio.h>
#endif

typedef void (*gaborator_transform_callback)(uintptr_t callback_data, float* data, size_t size, size_t slice_size);

uintptr_t gaborator_initialize(int blockSize, double sampleRate, int bandsPerOctave, double minimumFrequency, double referenceFrequency, double maximumFrequency, int stepSize);
void gaborator_release(uintptr_t ptr);

long gaborator_analysis_support(uintptr_t ptr);
int gaborator_number_of_bands(uintptr_t ptr);

void gaborator_transform(uintptr_t ptr, float* audio_block, int audio_block_length, gaborator_transform_callback callback, uintptr_t callback_data);


#ifdef __cplusplus
}
#endif