From 81220be5519a3bc959f1f0fec3d1e319322a632d Mon Sep 17 00:00:00 2001 From: Patrick W3AXL Date: Wed, 29 Jan 2025 15:44:48 -0500 Subject: [PATCH] added extern C interop functions --- vocoder/MBEDecoder.h | 6 ++++++ vocoder/MBEEncoder.h | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/vocoder/MBEDecoder.h b/vocoder/MBEDecoder.h index e419f35..1cf5fdf 100644 --- a/vocoder/MBEDecoder.h +++ b/vocoder/MBEDecoder.h @@ -136,6 +136,12 @@ namespace vocoder */ __PROPERTY(bool, autoGain, AutoGain); }; + + // Extern methods for C#/C++ interop + extern "C" MBEDecoder* MBEDecoder_Create(MBE_DECODER_MODE mode) { return new MBEDecoder(mode); } + extern "C" void MBEDecoder_Encode(MBEDecoder* pDecoder, uint8_t* codeword, int16_t* samples) { pDecoder->decode(codeword, samples); } + extern "C" void MBEDecoder_Delete(MBEDecoder* pDecoder) { delete pDecoder; } + } // namespace vocoder #endif // __MBE_DECODER_H__ diff --git a/vocoder/MBEEncoder.h b/vocoder/MBEEncoder.h index 9f2fda9..d266d95 100644 --- a/vocoder/MBEEncoder.h +++ b/vocoder/MBEEncoder.h @@ -79,6 +79,12 @@ namespace vocoder */ __PROPERTY(float, gainAdjust, GainAdjust); }; + + // Extern methods for C#/C++ interop + extern "C" MBEEncoder* MBEEncoder_Create(MBE_ENCODER_MODE mode) { return new MBEEncoder(mode); } + extern "C" void MBEEncoder_Encode(MBEEncoder* pEncoder, int16_t* samples, uint8_t* codeword) { pEncoder->encode(samples, codeword); } + extern "C" void MBEEncoder_Delete(MBEEncoder* pEncoder) { delete pEncoder; } + } // namespace vocoder #endif // __MBE_ENCODER_H__