diff --git a/HD44780.cpp b/HD44780.cpp index 88982f2..34ce895 100644 --- a/HD44780.cpp +++ b/HD44780.cpp @@ -119,9 +119,13 @@ void CHD44780::writeDStar(const char* my1, const char* my2, const char* your, co ::lcdPosition(m_fd, 0, 0); ::lcdPuts(m_fd, "D-Star"); - if (m_rows > 2U) { - char buffer[40U]; - + if (m_rows == 2U && m_cols == 16U) { + char buffer[16U]; + ::sprintf(buffer, "%s %.8s/%.4s", type, my1, my2); + ::lcdPosition(m_fd, 0, 1); + ::lcdPrintf(m_fd, "%.*s", m_cols, buffer); + } else if (m_rows == 4U && m_cols == 20U) { + char buffer[20U]; ::sprintf(buffer, "%s %.8s/%.4s >", type, my1, my2); ::lcdPosition(m_fd, 0, 1); ::lcdPrintf(m_fd, "%.*s", m_cols, buffer); @@ -129,10 +133,9 @@ void CHD44780::writeDStar(const char* my1, const char* my2, const char* your, co ::sprintf(buffer, "%.8s", your); ::lcdPosition(m_fd, 0, 2); ::lcdPrintf(m_fd, "%.*s", m_cols, buffer); - } else { + } else if (m_rows == 2 && m_cols == 40U) { char buffer[40U]; ::sprintf(buffer, "%s %.8s/%.4s > %.8s", type, my1, my2, your); - ::lcdPosition(m_fd, 0, 1); ::lcdPrintf(m_fd, "%.*s", m_cols, buffer); }