]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
(OLED) Added support for CR (#6399)
authorXScorpion2 <rcalt2vt@gmail.com>
Sat, 27 Jul 2019 20:17:18 +0000 (15:17 -0500)
committerDrashna Jaelre <drashna@live.com>
Sat, 27 Jul 2019 20:17:18 +0000 (13:17 -0700)
Currently OLED Dirver only supports LF (\n) character in a string to clear out the rest of the current line and advance to the next line for writing. This PR adds support for CR (\r) character as well to advance to the next line, however not clear out the rest of the current line. This is extremely useful when you want to display a multi-line logo using a single array without wiping out exiting lines and flagging the OLED as dirty unnecessarily.

drivers/oled/oled_driver.c

index a54f5fadc3b2809a0b8b5e1fc8bdd1808baef998..2b3dd7ff2fc35d78650894e57bd524315f43a68b 100644 (file)
@@ -321,7 +321,7 @@ void oled_render(void) {
 
     // Send render data chunk after rotating
     if (I2C_WRITE_REG(I2C_DATA, &temp_buffer[0], OLED_BLOCK_SIZE) != I2C_STATUS_SUCCESS) {
-      print("oled_render data failed\n");
+      print("oled_render90 data failed\n");
       return;
     }
   }
@@ -393,6 +393,11 @@ void oled_write_char(const char data, bool invert) {
     return;
   }
 
+  if (data == '\r') {
+    oled_advance_page(false);
+    return;
+  }
+
   // copy the current render buffer to check for dirty after
   static uint8_t oled_temp_buffer[OLED_FONT_WIDTH];
   memcpy(&oled_temp_buffer, oled_cursor, OLED_FONT_WIDTH);