diff --git a/openrtx/include/interfaces/lcd.h b/openrtx/include/interfaces/display.h similarity index 89% rename from openrtx/include/interfaces/lcd.h rename to openrtx/include/interfaces/display.h index c993ea6c..53551b39 100644 --- a/openrtx/include/interfaces/lcd.h +++ b/openrtx/include/interfaces/display.h @@ -15,8 +15,8 @@ * along with this program; if not, see * ***************************************************************************/ -#ifndef LCD_H -#define LCD_H +#ifndef DISPLAY_H +#define DISPLAY_H #include #include @@ -52,32 +52,32 @@ * prematurely, without configuring the display and the backlight timer. Thus, a * dark screen can be symptom of failed allocation. */ -void lcd_init(); +void display_init(); /** * When called, this function turns off backlight, shuts down backlight control * and deallocates the framebuffer. */ -void lcd_terminate(); +void display_terminate(); /** * Get screen width in pixels. * @return screen with, in pixels. */ -uint16_t lcd_screenWidth(); +uint16_t display_screenWidth(); /** * Get screen height in pixels. * @return screen height, in pixels. */ -uint16_t lcd_screenHeight(); +uint16_t display_screenHeight(); /** * Set screen backlight to a given level. * @param level: backlight level, from 0 (backlight off) to 255 (backlight at * full brightness). */ -void lcd_setBacklightLevel(uint8_t level); +void display_setBacklightLevel(uint8_t level); /** * Copy a given section, between two given rows, of framebuffer content to the @@ -85,20 +85,20 @@ void lcd_setBacklightLevel(uint8_t level); * @param startRow: first row of the framebuffer section to be copied * @param endRow: last row of the framebuffer section to be copied */ -void lcd_renderRows(uint8_t startRow, uint8_t endRow); +void display_renderRows(uint8_t startRow, uint8_t endRow); /** * Copy framebuffer content to the display internal buffer. To be called * whenever there is need to update the display. */ -void lcd_render(); +void display_render(); /** * Check if framebuffer is being copied to the screen or not, in which case it * can be modified without problems. * @return false if rendering is not in progress. */ -bool lcd_renderingInProgress(); +bool display_renderingInProgress(); /** * Get pointer to framebuffer. Being this a standard interface for all the @@ -106,13 +106,13 @@ bool lcd_renderingInProgress(); * to the caller performing the correct cast to one of the standard types used * for color coding. * Changes to the framebuffer will not be reflected on the display until - * lcd_render() or lcd_renderRows() are called. + * display_render() or display_renderRows() are called. * * * WARNING: no bound check is performed! Do not call free() on the pointer * returned, doing so will destroy the framebuffer! * @return pointer to framebuffer. */ -void *lcd_getFrameBuffer(); +void *display_getFrameBuffer(); -#endif /* LCD_H */ +#endif /* DISPLAY_H */ diff --git a/platform/drivers/display/HX83XX_md380.c b/platform/drivers/display/HX83XX_md380.c index 29d5f3ba..ad361f98 100644 --- a/platform/drivers/display/HX83XX_md380.c +++ b/platform/drivers/display/HX83XX_md380.c @@ -19,7 +19,7 @@ #include #include #include "gpio.h" -#include "lcd.h" +#include "display.h" #include "delays.h" /* Defines for GPIO control, really ugly but useful. */ @@ -103,7 +103,7 @@ #define SCREEN_HEIGHT 128 /* - * LCD framebuffer, allocated on the heap by lcd_init(). + * LCD framebuffer, allocated on the heap by display_init(). * Pixel format is RGB565, 16 bit per pixel */ static uint16_t *frameBuffer; @@ -124,7 +124,7 @@ static inline __attribute__((__always_inline__)) void writeData(uint8_t val) *((volatile uint8_t*) LCD_FSMC_ADDR_DATA) = val; } -void lcd_init() +void display_init() { /* Allocate framebuffer, two bytes per pixel */ frameBuffer = (uint16_t *) malloc(SCREEN_WIDTH * SCREEN_HEIGHT * 2); @@ -353,7 +353,7 @@ void lcd_init() gpio_setPin(CS); } -void lcd_terminate() +void display_terminate() { /* Shut off backlight, FSMC and deallocate framebuffer */ gpio_setMode(GPIOC, 6, OUTPUT); @@ -366,22 +366,22 @@ void lcd_terminate() } } -uint16_t lcd_screenWidth() +uint16_t display_screenWidth() { return SCREEN_WIDTH; } -uint16_t lcd_screenHeight() +uint16_t display_screenHeight() { return SCREEN_HEIGHT; } -void lcd_setBacklightLevel(uint8_t level) +void display_setBacklightLevel(uint8_t level) { TIM8->CCR1 = level; } -void lcd_renderRows(uint8_t startRow, uint8_t endRow) +void display_renderRows(uint8_t startRow, uint8_t endRow) { /* @@ -426,12 +426,12 @@ void lcd_renderRows(uint8_t startRow, uint8_t endRow) | DMA_SxCR_EN; /* Start transfer */ } -void lcd_render() +void display_render() { - lcd_renderRows(0, SCREEN_HEIGHT); + display_renderRows(0, SCREEN_HEIGHT); } -bool lcd_renderingInProgress() +bool display_renderingInProgress() { /* * Render is in progress if PD6 is low. Its value can be tested reading @@ -441,7 +441,7 @@ bool lcd_renderingInProgress() return (pinValue == 0) ? 1 : 0; } -void *lcd_getFrameBuffer() +void *display_getFrameBuffer() { return (void *)(frameBuffer); } diff --git a/platform/drivers/display/display_libSDL.c b/platform/drivers/display/display_libSDL.c index 85c7bfe4..b4ef0d3f 100644 --- a/platform/drivers/display/display_libSDL.c +++ b/platform/drivers/display/display_libSDL.c @@ -24,7 +24,7 @@ * this driver. */ -#include "lcd.h" +#include "display.h" #include #include #include @@ -42,7 +42,7 @@ SDL_Surface *renderSurface; uint16_t *frameBuffer; bool inProgress; -void lcd_init() +void display_init() { if(SDL_Init(SDL_INIT_VIDEO) < 0) { @@ -68,7 +68,7 @@ void lcd_init() } } -void lcd_terminate() +void display_terminate() { while(inProgress) { } /* Wait until current render finishes */ printf("Terminating SDL display emulator, goodbye!\n"); @@ -77,22 +77,22 @@ void lcd_terminate() SDL_Quit(); } -uint16_t lcd_screenWidth() +uint16_t display_screenWidth() { return SCREEN_WIDTH; } -uint16_t lcd_screenHeight() +uint16_t display_screenHeight() { return SCREEN_HEIGHT; } -void lcd_setBacklightLevel(uint8_t level) +void display_setBacklightLevel(uint8_t level) { printf("Backlight level set to %d\n", level); } -void lcd_renderRows(uint8_t startRow, uint8_t endRow) +void display_renderRows(uint8_t startRow, uint8_t endRow) { Uint32 *pixels = (Uint32*)renderSurface->pixels; inProgress = true; @@ -130,17 +130,17 @@ void lcd_renderRows(uint8_t startRow, uint8_t endRow) SDL_UpdateWindowSurface(window); } -void lcd_render() +void display_render() { - lcd_renderRows(0, SCREEN_HEIGHT); + display_renderRows(0, SCREEN_HEIGHT); } -bool lcd_renderingInProgress() +bool display_renderingInProgress() { return inProgress; } -void *lcd_getFrameBuffer() +void *display_getFrameBuffer() { return (void *)(frameBuffer); } diff --git a/tests/platform/display_test_SDL.c b/tests/platform/display_test_SDL.c index d317e348..25b1107b 100644 --- a/tests/platform/display_test_SDL.c +++ b/tests/platform/display_test_SDL.c @@ -25,7 +25,7 @@ * the driver source file. */ -#include "lcd.h" +#include "display.h" #include #include #include @@ -37,30 +37,30 @@ void drawRect(int x, int y, int width, int height, uint16_t color) { int x_max = x + width; int y_max = y + height; - uint16_t *buf = (uint16_t *)(lcd_getFrameBuffer()); + uint16_t *buf = (uint16_t *)(display_getFrameBuffer()); for(int i=y; i < y_max; i++) { for(int j=x; j < x_max; j++) { - buf[j + i*lcd_screenWidth()] = color; + buf[j + i*display_screenWidth()] = color; } } } int main() { - lcd_init(); - lcd_setBacklightLevel(254); + display_init(); + display_setBacklightLevel(254); /* Horizontal red line */ - drawRect(0, 10, lcd_screenWidth(), 20, 0xF800); + drawRect(0, 10, display_screenWidth(), 20, 0xF800); /* Vertical blue line */ - drawRect(10, 0, 20, lcd_screenHeight(), 0x001F); + drawRect(10, 0, 20, display_screenHeight(), 0x001F); /* Vertical green line */ - drawRect(80, 0, 20, lcd_screenHeight(), 0x07e0); + drawRect(80, 0, 20, display_screenHeight(), 0x07e0); /* * Use SDL event listener to check if window close button has been pressed, @@ -70,11 +70,11 @@ int main() while(1) { - lcd_render(); + display_render(); SDL_PollEvent(&eventListener); if(eventListener.type == SDL_QUIT) break; } - lcd_terminate(); + display_terminate(); return 0; } diff --git a/tests/platform/x64_uC.c b/tests/platform/x64_uC.c index 9e35f412..e9421277 100644 --- a/tests/platform/x64_uC.c +++ b/tests/platform/x64_uC.c @@ -7,7 +7,7 @@ #include #undef main -#include "lcd.h" +#include "display.h" static OS_TCB App_TaskStartTCB; static CPU_STK_SIZE App_TaskStartStk[APP_CFG_TASK_START_STK_SIZE]; @@ -23,28 +23,28 @@ void drawRect(int x, int y, int width, int height, uint16_t color) { int x_max = x + width; int y_max = y + height; - if(x_max > lcd_screenWidth()) x_max = lcd_screenWidth(); - if(y_max > lcd_screenHeight()) y_max = lcd_screenHeight(); - uint16_t *buf = (uint16_t *)(lcd_getFrameBuffer()); + if(x_max > display_screenWidth()) x_max = display_screenWidth(); + if(y_max > display_screenHeight()) y_max = display_screenHeight(); + uint16_t *buf = (uint16_t *)(display_getFrameBuffer()); for(int i=y; i < y_max; i++) { for(int j=x; j < x_max; j++) { - buf[j + i*lcd_screenWidth()] = color; + buf[j + i*display_screenWidth()] = color; } } } void clearScreen() { - uint16_t *buf = (uint16_t *)(lcd_getFrameBuffer()); + uint16_t *buf = (uint16_t *)(display_getFrameBuffer()); - for(int i=0; i < lcd_screenHeight(); i++) + for(int i=0; i < display_screenHeight(); i++) { - for(int j=0; j < lcd_screenWidth(); j++) + for(int j=0; j < display_screenWidth(); j++) { - buf[j + i*lcd_screenWidth()] = 0xFFFF; + buf[j + i*display_screenWidth()] = 0xFFFF; } } } @@ -117,7 +117,7 @@ static void gfxThread(void *arg) int pos = 0; SDL_Event eventListener; - lcd_init(); + display_init(); while(1) { @@ -125,16 +125,16 @@ static void gfxThread(void *arg) if(eventListener.type == SDL_QUIT) break; clearScreen(); - drawRect(0, pos, lcd_screenWidth(), 20, 0xF800); - lcd_render(); - while(lcd_renderingInProgress()) ; + drawRect(0, pos, display_screenWidth(), 20, 0xF800); + display_render(); + while(display_renderingInProgress()) ; pos += 20; - if(pos > lcd_screenHeight() - 20) pos = 0; + if(pos > display_screenHeight() - 20) pos = 0; OSTimeDlyHMSM(0u, 0u, 0u, 100u, OS_OPT_TIME_HMSM_STRICT, &os_err); } running = 0; OSTimeDlyHMSM(0u, 0u, 0u, 100u, OS_OPT_TIME_HMSM_STRICT, &os_err); - lcd_terminate(); + display_terminate(); }