diff --git a/FMCTCSSTX.cpp b/FMCTCSSTX.cpp index 6eee38d..7b45c1e 100644 --- a/FMCTCSSTX.cpp +++ b/FMCTCSSTX.cpp @@ -102,6 +102,9 @@ uint8_t CFMCTCSSTX::setParams(uint8_t frequency, uint8_t level) m_length = entry->length; + if (m_values) + delete[] m_values; + m_values = new q15_t[m_length]; q15_t arg = 0; diff --git a/FMKeyer.cpp b/FMKeyer.cpp index 55eeb8b..a779d0e 100644 --- a/FMKeyer.cpp +++ b/FMKeyer.cpp @@ -92,6 +92,7 @@ m_lowLevel(0) uint8_t CFMKeyer::setParams(const char* text, uint8_t speed, uint16_t frequency, uint8_t highLevel, uint8_t lowLevel) { + m_poLen=0; for (uint8_t i = 0U; text[i] != '\0'; i++) { for (uint8_t j = 0U; SYMBOL_LIST[j].c != 0U; j++) { if (SYMBOL_LIST[j].c == text[i]) { @@ -118,6 +119,9 @@ uint8_t CFMKeyer::setParams(const char* text, uint8_t speed, uint16_t frequency, m_audioLen = 24000U / frequency; // In samples + if (m_audio) + delete[] m_audio; + m_audio = new bool[m_audioLen]; for (uint16_t i = 0U; i < m_audioLen; i++) {