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__