Moved the setBacklightLevel() API function from platform.h to display.h

pull/147/head
Silvano Seva 2023-07-13 17:30:52 +02:00
rodzic 163a3df607
commit 8019b29947
21 zmienionych plików z 94 dodań i 95 usunięć

Wyświetl plik

@ -109,6 +109,14 @@ bool display_renderingInProgress();
*/
void display_setContrast(uint8_t contrast);
/**
* Set level of display backlight.
* NOTE: not all the display controllers support backlight control, thus on some
* targets this function has no effect.
* @param level: display backlight level, normalised value with range 0 - 100.
*/
void display_setBacklightLevel(uint8_t level);
#ifdef __cplusplus
}
#endif

Wyświetl plik

@ -142,13 +142,6 @@ void platform_beepStart(uint16_t freq);
*/
void platform_beepStop();
/**
* This function sets the screen backlight to the specified level.
* @param level: backlight level, from 0 (backlight off) to 100 (backlight at
* full brightness).
*/
void platform_setBacklightLevel(uint8_t level);
/**
* This function returns a pointer to a data structure containing all the
* hardware information.

Wyświetl plik

@ -72,7 +72,7 @@ void openrtx_init()
ui_drawSplashScreen(true);
gfx_render();
sleepFor(0u, 30u);
platform_setBacklightLevel(state.settings.brightness);
display_setBacklightLevel(state.settings.brightness);
#if defined(GPS_PRESENT)
// Detect and initialise GPS

Wyświetl plik

@ -728,7 +728,7 @@ static void _ui_changeBrightness(int variation)
if(state.settings.brightness > 100) state.settings.brightness = 100;
if(state.settings.brightness < 5) state.settings.brightness = 5;
platform_setBacklightLevel(state.settings.brightness);
display_setBacklightLevel(state.settings.brightness);
}
#ifdef SCREEN_CONTRAST
@ -839,7 +839,7 @@ static void _ui_enterStandby()
standby = true;
redraw_needed = false;
platform_setBacklightLevel(0);
display_setBacklightLevel(0);
}
static bool _ui_exitStandby(long long now)
@ -851,7 +851,7 @@ static bool _ui_exitStandby(long long now)
standby = false;
redraw_needed = true;
platform_setBacklightLevel(state.settings.brightness);
display_setBacklightLevel(state.settings.brightness);
return true;
}

Wyświetl plik

@ -564,7 +564,7 @@ void _ui_enterStandby()
standby = true;
redraw_needed = false;
platform_setBacklightLevel(0);
display_setBacklightLevel(0);
}
bool _ui_exitStandby(long long now)
@ -576,7 +576,7 @@ bool _ui_exitStandby(long long now)
standby = false;
redraw_needed = true;
platform_setBacklightLevel(state.settings.brightness);
display_setBacklightLevel(state.settings.brightness);
return true;
}

Wyświetl plik

@ -21,11 +21,15 @@
#ifndef BACKLIGHT_H
#define BACKLIGHT_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* Low-level driver for backlight dimming control.
* This header file only provides the API for driver initialisation and shutdown,
* while effective setting of backlight level is provided by target-specific
* sources by implementating platform_setBacklightLevel().
* sources by implementating display_setBacklightLevel().
*/
/**
@ -38,4 +42,9 @@ void backlight_init();
*/
void backlight_terminate();
#ifdef __cplusplus
}
#endif
#endif /* BACKLIGHT_H */

Wyświetl plik

@ -49,9 +49,9 @@ void backlight_terminate()
}
/*
* This function is defined in platform.h
* This function is defined in display.h
*/
void platform_setBacklightLevel(uint8_t level)
void display_setBacklightLevel(uint8_t level)
{
if(level > 100) level = 100;

Wyświetl plik

@ -128,9 +128,9 @@ void backlight_terminate()
}
/*
* This function is defined in platform.h
* This function is defined in display.h
*/
void platform_setBacklightLevel(uint8_t level)
void display_setBacklightLevel(uint8_t level)
{
if(level > 100)
level = 100;
@ -144,7 +144,7 @@ void platform_setBacklightLevel(uint8_t level)
* If CCR1 value is zero, a waveform with 99% duty cycle is generated: to
* avoid this the PWM is cut off when backlight level is 1.
*/
if(level > 1)
if(pwmLevel > 1)
{
#ifdef ENABLE_BKLIGHT_DIMMING
TIM11->CCR1 = pwmLevel;

Wyświetl plik

@ -20,6 +20,7 @@
#include <interfaces/display.h>
#include <interfaces/delays.h>
#include <interfaces/platform.h>
#include <backlight.h>
#include <hwconfig.h>
#include <string.h>
#include <miosix.h>
@ -127,6 +128,9 @@ static inline __attribute__((__always_inline__)) void writeData(uint8_t val)
void display_init()
{
/* Initialise backlight driver */
backlight_init();
/* Clear framebuffer, setting all pixels to 0x00 makes the screen white */
memset(frameBuffer, 0x00, SCREEN_WIDTH * SCREEN_HEIGHT * sizeof(uint16_t));
@ -430,6 +434,9 @@ void display_init()
void display_terminate()
{
/* Shut down backlight */
backlight_terminate();
/* Shut off FSMC and deallocate framebuffer */
RCC->AHB3ENR &= ~RCC_AHB3ENR_FSMCEN;
__DSB();
@ -537,3 +544,9 @@ void display_setContrast(uint8_t contrast)
/* This controller does not support contrast regulation */
(void) contrast;
}
/*
* Function implemented in backlight_MDx driver
*
* void display_setBacklightLevel(uint8_t level)
*/

Wyświetl plik

@ -150,3 +150,8 @@ void display_setContrast(uint8_t contrast)
gpio_setPin(LCD_CS);
}
void display_setBacklightLevel(uint8_t level)
{
(void) level;
}

Wyświetl plik

@ -170,3 +170,8 @@ void display_setContrast(uint8_t contrast)
gpio_setPin(LCD_CS);
}
void display_setBacklightLevel(uint8_t level)
{
(void) level;
}

Wyświetl plik

@ -157,3 +157,8 @@ void display_setContrast(uint8_t contrast)
gpio_setPin(LCD_CS);
spi2_releaseDevice();
}
void display_setBacklightLevel(uint8_t level)
{
(void) level;
}

Wyświetl plik

@ -22,10 +22,11 @@
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <backlight.h>
#include <interfaces/gpio.h>
#include <interfaces/display.h>
#include <interfaces/delays.h>
#include "hwconfig.h"
#include <hwconfig.h>
/*
* LCD framebuffer, statically allocated.
@ -98,6 +99,8 @@ static void display_renderRow(uint8_t row)
void display_init()
{
backlight_init(); /* Initialise backlight driver */
gpio_setMode(LCD_CS, OUTPUT);
gpio_setMode(LCD_RST, OUTPUT);
gpio_setMode(LCD_RS, OUTPUT);
@ -129,6 +132,8 @@ void display_init()
void display_terminate()
{
backlight_terminate();
gpio_setMode(LCD_CS, INPUT);
gpio_setMode(LCD_RST, INPUT);
gpio_setMode(LCD_RS, INPUT);
@ -171,3 +176,9 @@ void display_setContrast(uint8_t contrast)
sendByteToController(0x81); /* Set Electronic Volume */
sendByteToController(contrast >> 2); /* Controller contrast range is 0 - 63 */
}
/*
* Function implemented in backlight_GDx driver
*
* void display_setBacklightLevel(uint8_t level)
*/

Wyświetl plik

@ -41,12 +41,15 @@ bool inProgress; /* Flag to signal when rendering is in progress */
bool sdl_ready = false; /* Flag to signal the sdl main loop is running */
extern chan_t fb_sync; /* Shared channel to send a frame buffer update */
/* Custom SDL Event to adjust backlight */
extern Uint32 SDL_Backlight_Event;
/**
* @internal
* Internal helper function which fetches pixel at position (x, y) from framebuffer
* and returns it in SDL-compatible format, which is ARGB8888.
*/
uint32_t fetchPixelFromFb(unsigned int x, unsigned int y)
static uint32_t fetchPixelFromFb(unsigned int x, unsigned int y)
{
(void) x;
(void) y;
@ -176,3 +179,19 @@ void display_setContrast(uint8_t contrast)
{
printf("Setting display contrast to %d\n", contrast);
}
void display_setBacklightLevel(uint8_t level)
{
// Saturate level to 100 and convert value to 0 - 255
if(level > 100) level = 100;
uint16_t value = (2 * level) + (level * 55)/100;
SDL_Event e;
SDL_zero(e);
e.type = SDL_Backlight_Event;
e.user.data1 = malloc(sizeof(uint8_t));
uint8_t *data = (uint8_t *)e.user.data1;
*data = ((uint8_t) value);
SDL_PushEvent(&e);
}

Wyświetl plik

@ -195,10 +195,3 @@ const hwInfo_t *platform_getHwInfo()
{
return &hwInfo;
}
/*
* NOTE: implementation of this API function is provided in
* platform/drivers/backlight/backlight_GDx.c
*/
// void platform_setBacklightLevel(uint8_t level)

Wyświetl plik

@ -195,10 +195,3 @@ const hwInfo_t *platform_getHwInfo()
{
return &hwInfo;
}
/*
* NOTE: implementation of this API function is provided in
* platform/drivers/backlight/backlight_GDx.c
*/
// void platform_setBacklightLevel(uint8_t level)

Wyświetl plik

@ -23,7 +23,6 @@
#include <hwconfig.h>
#include <string.h>
#include <ADC1_MDx.h>
#include <backlight.h>
#include <calibInfo_MDx.h>
#include <toneGenerator_MDx.h>
#include <interfaces/rtc.h>
@ -63,15 +62,11 @@ void platform_init()
nvm_readHwInfo(&hwInfo); /* Load hardware information data */
toneGen_init(); /* Initialise tone generator */
rtc_init(); /* Initialise RTC */
backlight_init(); /* Initialise backlight driver */
audio_init(); /* Initialise audio management module */
}
void platform_terminate()
{
/* Shut down backlight */
backlight_terminate();
/* Shut down LEDs */
gpio_clearPin(GREEN_LED);
gpio_clearPin(RED_LED);
@ -202,9 +197,3 @@ const hwInfo_t *platform_getHwInfo()
{
return &hwInfo;
}
/*
* NOTE: implementation of this API function is provided in
* platform/drivers/backlight/backlight_MDx.c
*/
// void platform_setBacklightLevel(uint8_t level)

Wyświetl plik

@ -230,10 +230,3 @@ const hwInfo_t *platform_getHwInfo()
* platform/drivers/chSelector/chSelector_MD9600.c
*/
// int8_t platform_getChSelector()
/*
* NOTE: implementation of this API function is provided in
* platform/drivers/backlight/backlight_MDx.c
*/
// void platform_setBacklightLevel(uint8_t level)

Wyświetl plik

@ -66,14 +66,10 @@ void platform_init()
rtc_init(); /* Initialise RTC */
chSelector_init(); /* Initialise channel selector handler */
audio_init(); /* Initialise audio management module */
backlight_init(); /* Initialise backlight driver */
}
void platform_terminate()
{
/* Shut down backlight */
backlight_terminate();
/* Shut down LEDs */
gpio_clearPin(GREEN_LED);
gpio_clearPin(RED_LED);
@ -200,9 +196,3 @@ const hwInfo_t *platform_getHwInfo()
* platform/drivers/chSelector/chSelector_MDUV3x0.c
*/
// int8_t platform_getChSelector()
/*
* NOTE: implementation of this API function is provided in
* platform/drivers/backlight/backlight_MDx.c
*/
// void platform_setBacklightLevel(uint8_t level)

Wyświetl plik

@ -19,17 +19,14 @@
* along with this program; if not, see <http://www.gnu.org/licenses/> *
***************************************************************************/
#include <interfaces/gpio.h>
#include <interfaces/nvmem.h>
#include <interfaces/platform.h>
#include <hwconfig.h>
#include <string.h>
#include <backlight.h>
#include <interfaces/rtc.h>
#include <interfaces/audio.h>
#include <ADC1_Mod17.h>
#include <interfaces/nvmem.h>
#include <interfaces/audio.h>
#include <interfaces/gpio.h>
#include <calibInfo_Mod17.h>
#include <ADC1_Mod17.h>
#include <backlight.h>
#include <hwconfig.h>
#include <MCP4551.h>
extern mod17Calib_t mod17CalData;
@ -192,8 +189,3 @@ const hwInfo_t *platform_getHwInfo()
{
return &hwInfo;
}
void platform_setBacklightLevel(uint8_t level)
{
(void) level;
}

Wyświetl plik

@ -20,10 +20,7 @@
#include <interfaces/nvmem.h>
#include <stdio.h>
#include "emulator.h"
#include <SDL2/SDL.h>
/* Custom SDL Event to adjust backlight */
extern Uint32 SDL_Backlight_Event;
static const hwInfo_t hwInfo =
{
@ -49,22 +46,6 @@ void platform_terminate()
exit(0);
}
void platform_setBacklightLevel(uint8_t level)
{
// Saturate level to 100 and convert value to 0 - 255
if(level > 100) level = 100;
uint16_t value = (2 * level) + (level * 55)/100;
SDL_Event e;
SDL_zero(e);
e.type = SDL_Backlight_Event;
e.user.data1 = malloc(sizeof(uint8_t));
uint8_t *data = (uint8_t *)e.user.data1;
*data = ((uint8_t) value);
SDL_PushEvent(&e);
}
// Simulate a fully charged lithium battery
uint16_t platform_getVbat()
{