| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  * Copyright (c) 2016 Craig Stout <cstout@chromium.org> |   2  * Copyright (c) 2016 Craig Stout <cstout@chromium.org> | 
|   3  * |   3  * | 
|   4  * Permission is hereby granted, free of charge, to any person obtaining |   4  * Permission is hereby granted, free of charge, to any person obtaining | 
|   5  * a copy of this software and associated documentation files |   5  * a copy of this software and associated documentation files | 
|   6  * (the "Software"), to deal in the Software without restriction, |   6  * (the "Software"), to deal in the Software without restriction, | 
|   7  * including without limitation the rights to use, copy, modify, merge, |   7  * including without limitation the rights to use, copy, modify, merge, | 
|   8  * publish, distribute, sublicense, and/or sell copies of the Software, |   8  * publish, distribute, sublicense, and/or sell copies of the Software, | 
|   9  * and to permit persons to whom the Software is furnished to do so, |   9  * and to permit persons to whom the Software is furnished to do so, | 
|  10  * subject to the following conditions: |  10  * subject to the following conditions: | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|  25 #include <target/display/LS027B7DH01.h> |  25 #include <target/display/LS027B7DH01.h> | 
|  26 #elif defined (LCD_LS013B7DH03) |  26 #elif defined (LCD_LS013B7DH03) | 
|  27 #include <target/display/LS013B7DH03.h> |  27 #include <target/display/LS013B7DH03.h> | 
|  28 #else |  28 #else | 
|  29 #error Undefined display header |  29 #error Undefined display header | 
|  30 #endif |  30 #endif | 
|  31  |  31  | 
|  32 #include <string.h> |  32 #include <string.h> | 
|  33 #include <assert.h> |  33 #include <assert.h> | 
|  34  |  34  | 
|  35 #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0xff & (0x1 << ((BITNUM) 
    & 0x07)))) |  35 #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0x1 << ((BITNUM) & 0x07))
    ) | 
|  36  |  36  | 
|  37 uint8_t lcd_get_line(uint8_t *framebuffer, uint8_t idx, uint8_t *result) |  37 uint8_t lcd_get_line(struct display_image *image, uint8_t idx, uint8_t *result) | 
|  38 { |  38 { | 
|  39     framebuffer += FB_STRIDE * idx; |  39     uint8_t *framebuffer = (uint8_t *) image->pixels + image->rowbytes * idx; | 
|  40  |  40  | 
|  41 #if FB_FORMAT == DISPLAY_FORMAT_MONO_1 |  41     if (image->format == IMAGE_FORMAT_MONO_1) { | 
|  42     memcpy(result, framebuffer, MLCD_BYTES_LINE); |  42         memcpy(result, framebuffer, MLCD_BYTES_LINE); | 
|  43  |  43     } else if (image->format == IMAGE_FORMAT_MONO_8) { | 
|  44 #elif FB_FORMAT == DISPLAY_FORMAT_MONO_8 |  44         memset(result, 0, MLCD_BYTES_LINE); | 
|  45     memset(result, 0, MLCD_BYTES_LINE); |  45         for (uint i = 0; i < MLCD_WIDTH; ++i) { | 
|  46     for (uint i = 0; i < MLCD_WIDTH; ++i) { |  46             if (framebuffer[i] > 128) { | 
|  47         if (framebuffer[i] > 128) { |  47                 SET_BIT(result, i); | 
|  48             SET_BIT(result, i); |  48             } | 
|  49         } |  49         } | 
 |  50     } else { | 
 |  51         DEBUG_ASSERT(false); | 
|  50     } |  52     } | 
|  51  |  | 
|  52 #else |  | 
|  53 #error Unhandled FB_FORMAT |  | 
|  54 #endif |  | 
|  55  |  | 
|  56     return MLCD_BYTES_LINE; |  53     return MLCD_BYTES_LINE; | 
|  57 } |  54 } | 
| OLD | NEW |