From a1542e9a88397564757de5356b365d2d1b5ef3e9 Mon Sep 17 00:00:00 2001 From: Patrick W3AXL Date: Thu, 13 Feb 2025 21:19:15 -0500 Subject: [PATCH] updated exported functions --- CMakeSettings.json | 15 +++++++++++++++ vocoder/MBEDecoder.cpp | 9 +++++++++ vocoder/MBEDecoder.h | 2 ++ vocoder/MBEEncoder.cpp | 32 +++++++++++++++++++++++++------- vocoder/MBEEncoder.h | 3 +++ 5 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 CMakeSettings.json diff --git a/CMakeSettings.json b/CMakeSettings.json new file mode 100644 index 0000000..01d2295 --- /dev/null +++ b/CMakeSettings.json @@ -0,0 +1,15 @@ +{ + "configurations": [ + { + "name": "x32-Debug", + "generator": "Ninja", + "configurationType": "Debug", + "inheritEnvironments": [ "msvc_x86" ], + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "" + } + ] +} \ No newline at end of file diff --git a/vocoder/MBEDecoder.cpp b/vocoder/MBEDecoder.cpp index ec4fcd8..cc5c8f0 100644 --- a/vocoder/MBEDecoder.cpp +++ b/vocoder/MBEDecoder.cpp @@ -331,6 +331,15 @@ namespace vocoder { return -1; } + int32_t MBEDecoder_DecodeBits(MBEDecoder* pDecoder, uint8_t* codeword, char* mbeBits) + { + if (pDecoder != NULL) + { + return pDecoder->decodeBits(codeword, mbeBits); + } + return -1; + } + void MBEDecoder_Delete(MBEDecoder* pDecoder) { if (pDecoder != NULL) diff --git a/vocoder/MBEDecoder.h b/vocoder/MBEDecoder.h index 11afae5..f2c781d 100644 --- a/vocoder/MBEDecoder.h +++ b/vocoder/MBEDecoder.h @@ -142,10 +142,12 @@ namespace vocoder #ifdef _WIN32 extern __declspec(dllexport) MBEDecoder* MBEDecoder_Create(MBE_DECODER_MODE mode); extern __declspec(dllexport) int32_t MBEDecoder_Decode(MBEDecoder* pDecoder, uint8_t* codeword, int16_t* samples); + extern __declspec(dllexport) int32_t MBEDecoder_DecodeBits(MBEDecoder* pDecoder, uint8_t* codeword, char* mbeBits); extern __declspec(dllexport) void MBEDecoder_Delete(MBEDecoder* pDecoder); #else extern MBEDecoder* MBEDecoder_Create(MBE_DECODER_MODE mode); extern int32_t MBEDecoder_Decode(MBEDecoder* pDecoder, uint8_t* codeword, int16_t* samples); + extern int32_t MBEDecoder_DecodeBits(MBEDecoder* pDecoder, uint8_t* codeword, char* mbeBits); extern void MBEDecoder_Delete(MBEDecoder* pDecoder); #endif } diff --git a/vocoder/MBEEncoder.cpp b/vocoder/MBEEncoder.cpp index 687254b..98f349c 100644 --- a/vocoder/MBEEncoder.cpp +++ b/vocoder/MBEEncoder.cpp @@ -719,9 +719,9 @@ namespace vocoder { } // Extern methods for C#/C++ interop - MBEEncoder* MBEEncoder_Create(MBE_ENCODER_MODE mode) - { - return new MBEEncoder(mode); + MBEEncoder* MBEEncoder_Create(MBE_ENCODER_MODE mode) + { + return new MBEEncoder(mode); } void MBEEncoder_Encode(MBEEncoder* pEncoder, int16_t* samples, uint8_t* codeword) @@ -731,10 +731,28 @@ namespace vocoder { pEncoder->encode(samples, codeword); } } - - void MBEEncoder_Delete(MBEEncoder* pEncoder) - { - delete pEncoder; + + void MBEEncoder_EncodeBits(MBEEncoder* pEncoder, uint8_t* bits, uint8_t* codeword) + { + if (pEncoder != NULL) + { + pEncoder->encodeBits(bits, codeword); + } + } + + void MBEEncoder_Delete(MBEEncoder* pEncoder) + { + delete pEncoder; pEncoder = NULL; } + + void Golay24128_Encode(uint8_t* data, const uint8_t* raw, uint32_t msglen) + { + Golay24128::encode24128(data, raw, msglen); + } + + void Golay23127_Encode() + { + + } } // namespace vocoder \ No newline at end of file diff --git a/vocoder/MBEEncoder.h b/vocoder/MBEEncoder.h index 0423f5e..1958ff7 100644 --- a/vocoder/MBEEncoder.h +++ b/vocoder/MBEEncoder.h @@ -83,12 +83,15 @@ namespace vocoder // Extern methods for C#/C++ interop extern "C" { #ifdef _WIN32 + // Windows MBE Encoder Functions __declspec(dllexport) MBEEncoder* MBEEncoder_Create(MBE_ENCODER_MODE mode); __declspec(dllexport) void MBEEncoder_Encode(MBEEncoder* pEncoder, int16_t* samples, uint8_t* codeword); + __declspec(dllexport) void MBEEncoder_EncodeBits(MBEEncoder* pEncoder, uint8_t* bits, uint8_t* codeword); __declspec(dllexport) void MBEEncoder_Delete(MBEEncoder* pEncoder); #else MBEEncoder* MBEEncoder_Create(MBE_ENCODER_MODE mode); void MBEEncoder_Encode(MBEEncoder* pEncoder, int16_t* samples, uint8_t* codeword); + void MBEEncoder_EncodeBits(MBEEncoder* pEncoder, uint8_t* bits, uint8_t* codeword) void MBEEncoder_Delete(MBEEncoder* pEncoder); #endif }