| Index: target/dartuinoP0/display/memory_lcd_mono.c
|
| diff --git a/target/dartuinoP0/display/LS027B7DH01.c b/target/dartuinoP0/display/memory_lcd_mono.c
|
| similarity index 77%
|
| rename from target/dartuinoP0/display/LS027B7DH01.c
|
| rename to target/dartuinoP0/display/memory_lcd_mono.c
|
| index 6e275caf8f90d47031add6c38a71322d63c655b8..7c09c07bad28eafe1f42b621a711f3251ab72c9c 100644
|
| --- a/target/dartuinoP0/display/LS027B7DH01.c
|
| +++ b/target/dartuinoP0/display/memory_lcd_mono.c
|
| @@ -1,5 +1,5 @@
|
| /*
|
| - * Copyright (c) 2015 Gurjant Kalsi <me@gurjantkalsi.com>
|
| + * Copyright (c) 2016 Craig Stout <cstout@chromium.org>
|
| *
|
| * Permission is hereby granted, free of charge, to any person obtaining
|
| * a copy of this software and associated documentation files
|
| @@ -21,24 +21,37 @@
|
| * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
| */
|
|
|
| -// 2.7 Inch Monocromatic Sharp Memory LCD
|
| -
|
| +#if defined (LCD_LS027B7DH01)
|
| #include <target/display/LS027B7DH01.h>
|
| +#elif defined (LCD_LS013B7DH03)
|
| +#include <target/display/LS013B7DH03.h>
|
| +#else
|
| +#error Undefined display header
|
| +#endif
|
| +
|
| #include <string.h>
|
| +#include <assert.h>
|
|
|
| #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0xff & (0x1 << ((BITNUM) & 0x07))))
|
|
|
| uint8_t lcd_get_line(uint8_t *framebuffer, uint8_t idx, uint8_t *result)
|
| {
|
| - framebuffer += MLCD_WIDTH * idx;
|
| + framebuffer += FB_STRIDE * idx;
|
|
|
| - memset(result, 0, MLCD_BYTES_LINE);
|
| +#if FB_FORMAT == DISPLAY_FORMAT_MONO_1
|
| + memcpy(result, framebuffer, MLCD_BYTES_LINE);
|
|
|
| +#elif FB_FORMAT == DISPLAY_FORMAT_MONO_8
|
| + memset(result, 0, MLCD_BYTES_LINE);
|
| for (uint i = 0; i < MLCD_WIDTH; ++i) {
|
| if (framebuffer[i] > 128) {
|
| SET_BIT(result, i);
|
| }
|
| }
|
|
|
| +#else
|
| +#error Unhandled FB_FORMAT
|
| +#endif
|
| +
|
| return MLCD_BYTES_LINE;
|
| -}
|
| +}
|
|
|