Files
ggwave/bindings/python/cggwave.pxd
2022-07-04 21:18:20 +03:00

83 lines
2.4 KiB
Cython

cdef extern from "ggwave.h" nogil:
ctypedef enum ggwave_SampleFormat:
GGWAVE_SAMPLE_FORMAT_UNDEFINED,
GGWAVE_SAMPLE_FORMAT_U8,
GGWAVE_SAMPLE_FORMAT_I8,
GGWAVE_SAMPLE_FORMAT_U16,
GGWAVE_SAMPLE_FORMAT_I16,
GGWAVE_SAMPLE_FORMAT_F32
ctypedef enum ggwave_ProtocolId:
GGWAVE_PROTOCOL_AUDIBLE_NORMAL,
GGWAVE_PROTOCOL_AUDIBLE_FAST,
GGWAVE_PROTOCOL_AUDIBLE_FASTEST,
GGWAVE_PROTOCOL_ULTRASOUND_NORMAL,
GGWAVE_PROTOCOL_ULTRASOUND_FAST,
GGWAVE_PROTOCOL_ULTRASOUND_FASTEST,
GGWAVE_PROTOCOL_DT_NORMAL,
GGWAVE_PROTOCOL_DT_FAST,
GGWAVE_PROTOCOL_DT_FASTEST,
GGWAVE_PROTOCOL_CUSTOM_0,
GGWAVE_PROTOCOL_CUSTOM_1,
GGWAVE_PROTOCOL_CUSTOM_2,
GGWAVE_PROTOCOL_CUSTOM_3,
GGWAVE_PROTOCOL_CUSTOM_4,
GGWAVE_PROTOCOL_CUSTOM_5,
GGWAVE_PROTOCOL_CUSTOM_6,
GGWAVE_PROTOCOL_CUSTOM_7,
GGWAVE_PROTOCOL_CUSTOM_8,
GGWAVE_PROTOCOL_CUSTOM_9
enum:
GGWAVE_OPERATING_MODE_RX,
GGWAVE_OPERATING_MODE_TX,
GGWAVE_OPERATING_MODE_RX_AND_TX,
GGWAVE_OPERATING_MODE_TX_ONLY_TONES,
GGWAVE_OPERATING_MODE_USE_DSS
ctypedef struct ggwave_Parameters:
int payloadLength
float sampleRateInp
float sampleRateOut
float sampleRate
int samplesPerFrame
float soundMarkerThreshold
ggwave_SampleFormat sampleFormatInp
ggwave_SampleFormat sampleFormatOut
int operatingMode
ctypedef int ggwave_Instance
ggwave_Parameters ggwave_getDefaultParameters();
ggwave_Instance ggwave_init(const ggwave_Parameters parameters);
void ggwave_free(ggwave_Instance instance);
int ggwave_encode(
ggwave_Instance instance,
const void * payloadBuffer,
int payloadSize,
ggwave_ProtocolId protocolId,
int volume,
void * waveformBuffer,
int query);
int ggwave_decode(
ggwave_Instance instance,
const void * waveformBuffer,
int waveformSize,
void * payloadBuffer);
void ggwave_setLogFile(void * fptr);
void ggwave_rxToggleProtocol(
ggwave_ProtocolId protocolId,
int state);
void ggwave_txToggleProtocol(
ggwave_ProtocolId protocolId,
int state);