diff --git a/HD44780.cpp b/HD44780.cpp index 726aea4..cdb2c8b 100644 --- a/HD44780.cpp +++ b/HD44780.cpp @@ -404,7 +404,8 @@ void CHD44780::writeDStarInt(const char* my1, const char* my2, const char* your, } ::lcdPosition(m_fd, 0, (m_rows / 2) - 1); - ::lcdPrintf(m_fd, "%.8s/%.4s", my1, my2); + ::lcdPutchar(m_fd, 0); + ::lcdPrintf(m_fd, " %.8s/%.4s", my1, my2); ::lcdPosition(m_fd, m_cols - 1, (m_rows / 2) - 1); if (strcmp(type, "R") == 0) { @@ -422,12 +423,19 @@ void CHD44780::writeDStarInt(const char* my1, const char* my2, const char* your, } if (strcmp(reflector, " ") != 0) { - ::sprintf(m_buffer3, " via %.8s", reflector); - strcat(m_buffer1, m_buffer3); + if (m_rows == 2 && m_cols == 40) { + ::sprintf(m_buffer3, " via %.8s", reflector); + strcat(m_buffer1, m_buffer3); + } else if (m_rows > 2) { + ::sprintf(m_buffer3, "via %.8s", reflector); + ::lcdPosition(m_fd, 0, (m_rows / 2) + 1); + ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer3); + } } ::lcdPosition(m_fd, 0, (m_rows / 2)); - ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer1); + ::lcdPutchar(m_fd, 1); + ::lcdPrintf(m_fd, " %.*s", m_cols, m_buffer1); // Start the D-Star scroll timer if text in m_buffer1 will not fit in the space available if (strlen(m_buffer1) > m_cols) { @@ -863,8 +871,10 @@ void CHD44780::clockInt(unsigned int ms) m_clockDisplayTimer.start(); } + /* Scrolling disabled for now as it is slowing things down just enough to screw with the audio processing! */ + // DMR Slot 1 scrolling - if (m_dmrScrollTimer1.isRunning() && m_dmrScrollTimer1.hasExpired()) { + if (1 != 1 && m_dmrScrollTimer1.isRunning() && m_dmrScrollTimer1.hasExpired()) { strncat(m_buffer1, m_buffer1, 1); // Move the first character to the end of the buffer memmove(m_buffer1, m_buffer1 + 1, strlen(m_buffer1)); // Strip the first character ::lcdPosition(m_fd, 2, (m_rows / 2) - 1); // Position on the LCD @@ -873,7 +883,7 @@ void CHD44780::clockInt(unsigned int ms) } // DMR Slot 2 scrolling - if (m_dmrScrollTimer2.isRunning() && m_dmrScrollTimer2.hasExpired()) { + if (1 != 1 && m_dmrScrollTimer2.isRunning() && m_dmrScrollTimer2.hasExpired()) { strncat(m_buffer2, m_buffer2, 1); memmove(m_buffer2, m_buffer2 + 1, strlen(m_buffer2)); ::lcdPosition(m_fd, 2, (m_rows / 2)); @@ -882,7 +892,7 @@ void CHD44780::clockInt(unsigned int ms) } // D-Star scrolling - if (m_dstarScrollTimer.isRunning() && m_dstarScrollTimer.hasExpired()) { + if (1 != 1 && m_dstarScrollTimer.isRunning() && m_dstarScrollTimer.hasExpired()) { strncat(m_buffer1, m_buffer1, 1); memmove(m_buffer1, m_buffer1 + 1, strlen(m_buffer1)); ::lcdPosition(m_fd, 0, (m_rows / 2)); diff --git a/HD44780.layouts b/HD44780.layouts index 03560cf..08b6224 100644 --- a/HD44780.layouts +++ b/HD44780.layouts @@ -56,3 +56,52 @@ IDLE SCREEN LAYOUTS 2| HH:MM:SS | 2| | 3|MMDVM Idle| 3|MMDVM Idle| +--------------------+ +--------------------+ + +D-STAR LAYOUTS +------------- + +16 x 2 +------ + + 0 1 + 0123456789012345 + +----------------+ +0|F AAAAAAAA/AAAAX| +1|T AAAAAAAA | + +----------------+ + +40 x 2 +------ + + 0 1 2 3 + 0123456789012345678901234567890123456789 + +----------------------------------------+ +0|F AAAAAAAA/AAAA X| +1|T AAAAAAAA via AAAAAAAA | + +----------------------------------------+ + +16 x 4 +------ + + + 0 1 + 0123456789012345 + +----------------+ +0|D-Star | +1|F AAAAAAAA/AAAAX| +2|T AAAAAAAA | +3|via AAAAAAAA | + +----------------+ + + +20 x 4 +------ + + 0 1 + 01234567890123456479 + +--------------------+ +0|D-Star | +1|F AAAAAAAA/AAAA X| +2|T AAAAAAAA | +3|via AAAAAAAA | + +--------------------+