Skip to content

Commit 7d472c8

Browse files
Wed 13 Nov 2019 18:14:34 EST - working on brightness control
1 parent 567d0f6 commit 7d472c8

File tree

8 files changed

+132
-36
lines changed

8 files changed

+132
-36
lines changed

Emulators/handy-go/sdkconfig

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,10 @@ CONFIG_MONITOR_BAUD=115200
8383
#
8484
# Retro ESP32 Configuration
8585
#
86-
CONFIG_LCD_DRIVER_CHIP_ODROID_GO=y
87-
CONFIG_LCD_DRIVER_CHIP_RETRO_ESP32=
88-
CONFIG_DEFAULT_MENU_KEY=y
89-
CONFIG_COMBO_MENU_KEY=
86+
CONFIG_LCD_DRIVER_CHIP_ODROID_GO=
87+
CONFIG_LCD_DRIVER_CHIP_RETRO_ESP32=y
88+
CONFIG_DEFAULT_MENU_KEY=
89+
CONFIG_COMBO_MENU_KEY=y
9090
CONFIG_IN_GAME_MENU_YES=y
9191
CONFIG_IN_GAME_MENU_NO=
9292

Firmware/Releases/Retro ESP32.fw

6.81 MB
Binary file not shown.

Launchers/retro-esp32/main/includes/core.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include "driver/gpio.h"
3838
#include "driver/sdmmc_host.h"
3939
#include "driver/sdspi_host.h"
40+
#include "driver/ledc.h"
4041

4142
/*
4243
Odroid
@@ -52,6 +53,7 @@
5253
Sprites
5354
*/
5455
#include "../sprites/battery.h"
56+
#include "../sprites/brightness.h"
5557
#include "../sprites/characters.h"
5658
#include "../sprites/folder.h"
5759
#include "../sprites/icons.h"

Launchers/retro-esp32/main/includes/declarations.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ void draw_volume();
3434
int32_t get_volume();
3535
void set_volume();
3636

37+
/*
38+
Brightness
39+
*/
40+
void draw_brightness();
41+
int32_t get_brightness();
42+
void set_brightness();
43+
void apply_brightness();
44+
3745
/*
3846
Theme
3947
*/

Launchers/retro-esp32/main/main.c

Lines changed: 114 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@
1818
bool SPLASH = true;
1919
bool SETTINGS = false;
2020

21-
int STEP = 0;
21+
int8_t STEP = 0;
2222
int OPTION = 0;
2323
int PREVIOUS = 0;
2424
int32_t VOLUME = 0;
25+
int32_t BRIGHTNESS = 10;
26+
int32_t BRIGHTNESS_LEVELS[10] = {10,20,30,40,50,60,70,80,90,100};
2527
int8_t USER;
2628
int8_t SETTING;
2729
int8_t COLOR;
@@ -126,13 +128,16 @@
126128
get_restore_states();
127129

128130
// Toggle
129-
get_toggle();
131+
get_toggle();
130132

131133
GUI = THEMES[USER];
132134

133135
ili9341_prepare();
134136
ili9341_clear(0);
135137

138+
BRIGHTNESS = odroid_settings_Backlight_get();
139+
odroid_settings_Backlight_set(BRIGHTNESS);
140+
136141
//printf("==============\n%s\n==============\n", "RETRO ESP32");
137142
switch(esp_reset_reason()) {
138143
case ESP_RST_POWERON:
@@ -147,6 +152,7 @@
147152
RESTART = false;
148153
break;
149154
}
155+
STEP = 0;
150156
RESTART ? restart() : SPLASH ? splash() : NULL;
151157
draw_background();
152158
restore_layout();
@@ -261,7 +267,6 @@
261267

262268
void draw_text(short x, short y, char *string, bool ext, bool current) {
263269
int length = !ext ? strlen(string) : strlen(string)-(strlen(EXTENSIONS[STEP])+1);
264-
int size = 5;
265270
int rows = 7;
266271
int cols = 5;
267272
for(int n = 0; n < length; n++) {
@@ -317,6 +322,12 @@
317322
draw_text(x,y,"VOLUME",false, SETTING == 2 ? true : false);
318323

319324
draw_volume();
325+
326+
y+=20;
327+
draw_mask(x,y-1,100,17);
328+
draw_text(x,y,"BRIGHTNESS",false, SETTING == 3 ? true : false);
329+
330+
draw_brightness();
320331
}
321332
//}#pragma endregion Settings
322333

@@ -328,8 +339,8 @@
328339
int w, h;
329340

330341
int i = 0;
331-
for(int h = 0; h < 9; h++) {
332-
for(int w = 0; w < 18; w++) {
342+
for(h = 0; h < 9; h++) {
343+
for(w = 0; w < 18; w++) {
333344
buffer[i] = toggle[h + (COLOR*9)][w] == 0 ? GUI.bg : toggle[h + (COLOR*9)][w];
334345
i++;
335346
}
@@ -343,7 +354,7 @@
343354
nvs_open("storage", NVS_READWRITE, &handle);
344355
nvs_set_i8(handle, "COLOR", COLOR);
345356
nvs_commit(handle);
346-
nvs_close(handle);
357+
nvs_close(handle);
347358
}
348359

349360
void get_toggle() {
@@ -368,8 +379,8 @@
368379
COLOR = false;
369380
}
370381
nvs_close(handle);
371-
}
372-
//}#pragma endregion Toggle
382+
}
383+
//}#pragma endregion Toggle
373384

374385
//{#pragma region Volume
375386
void draw_volume() {
@@ -414,6 +425,68 @@
414425
}
415426
//}#pragma endregion Volume
416427

428+
//{#pragma region Brightness
429+
void draw_brightness() {
430+
//int32_t brightness = get_brightness();
431+
//printf("\n******\nbrightness:%d\n******\n", brightness);
432+
int x = SCREEN.w - 120;
433+
int y = POS.y + 106;
434+
int w, h;
435+
436+
int i = 0;
437+
for(h = 0; h < 7; h++) {
438+
for(w = 0; w < 100; w++) {
439+
buffer[i] = (w+h)%2 == 0 ? GUI.fg : GUI.bg;
440+
i++;
441+
}
442+
}
443+
ili9341_write_frame_rectangleLE(x, y, 100, 7, buffer);
444+
445+
//if(BRIGHTNESS > 0) {
446+
i = 0;
447+
for(h = 0; h < 7; h++) {
448+
for(w = 0; w < (10 * BRIGHTNESS)+10; w++) {
449+
if(SETTING == 3) {
450+
buffer[i] = WHITE;
451+
} else {
452+
buffer[i] = GUI.fg;
453+
}
454+
i++;
455+
}
456+
}
457+
ili9341_write_frame_rectangleLE(x, y, (10 * BRIGHTNESS)+10, 7, buffer);
458+
//}
459+
460+
draw_speaker();
461+
}
462+
int32_t get_brightness() {
463+
return odroid_settings_Backlight_get();
464+
}
465+
void set_brightness() {
466+
printf("\n******\nBRIGHTNESS:%d\nBRIGHTNESS_LEVELS[%d]:%d\n******\n", BRIGHTNESS, BRIGHTNESS,BRIGHTNESS_LEVELS[BRIGHTNESS]);
467+
odroid_settings_Backlight_set(BRIGHTNESS);
468+
apply_brightness();
469+
draw_brightness();
470+
}
471+
void apply_brightness() {
472+
const int DUTY_MAX = 0x1fff;
473+
int duty = DUTY_MAX * (BRIGHTNESS_LEVELS[BRIGHTNESS] * 0.01f);
474+
475+
printf("\n******\nBRIGHTNESS:%d\nBRIGHTNESS_LEVELS[%d]:%d\nduty:%d\n******\n",
476+
BRIGHTNESS,
477+
BRIGHTNESS,
478+
BRIGHTNESS_LEVELS[BRIGHTNESS],
479+
duty);
480+
481+
if(is_backlight_initialized()) {
482+
uint32_t currentDuty = ledc_get_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
483+
484+
ledc_set_fade_with_time(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, duty, 1);
485+
ledc_fade_start(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, LEDC_FADE_WAIT_DONE /*LEDC_FADE_NO_WAIT*/);
486+
}
487+
488+
}
489+
//}#pragma endregion Brightness
417490
//{#pragma region Theme
418491
void draw_themes() {
419492
int x = ORIGIN.x;
@@ -529,10 +602,10 @@
529602
buffer[i] = media[h][w] == WHITE ? current ? WHITE : GUI.fg : GUI.bg;
530603
break;
531604
case 1:
532-
buffer[i] = media_color[h][w] == 0 ? GUI.bg : media_color[h][w];
605+
buffer[i] = media_color[h][w] == 0 ? GUI.bg : media_color[h][w];
533606
if(current) {
534-
buffer[i] = media_color[h+16][w] == 0 ? GUI.bg : media_color[h+16][w];
535-
}
607+
buffer[i] = media_color[h+16][w] == 0 ? GUI.bg : media_color[h+16][w];
608+
}
536609
break;
537610
}
538611
/*
@@ -808,7 +881,6 @@
808881
//printf("\n");
809882
int x = ORIGIN.x;
810883
int y = POS.y + 48;
811-
int game = ROMS.offset ;
812884
ROMS.page = ROMS.offset/ROMS.limit;
813885

814886
/*
@@ -1117,7 +1189,7 @@
11171189
*/
11181190
if(gamepad.values[ODROID_INPUT_LEFT]) {
11191191
if(!LAUNCHER && !FOLDER) {
1120-
if(SETTING != 2) {
1192+
if(SETTING != 2 && SETTING != 3) {
11211193
STEP--;
11221194
if( STEP < 0 ) {
11231195
STEP = COUNT - 1;
@@ -1127,10 +1199,19 @@
11271199
ROMS.total = 0;
11281200
animate(-1);
11291201
} else {
1130-
if(VOLUME > 0) {
1131-
VOLUME--;
1132-
set_volume();
1133-
usleep(200000);
1202+
if(SETTING == 2) {
1203+
if(VOLUME > 0) {
1204+
VOLUME--;
1205+
set_volume();
1206+
usleep(200000);
1207+
}
1208+
}
1209+
if(SETTING == 3) {
1210+
if(BRIGHTNESS > 0) {
1211+
BRIGHTNESS--;
1212+
set_brightness();
1213+
usleep(200000);
1214+
}
11341215
}
11351216
}
11361217
}
@@ -1142,7 +1223,7 @@
11421223
*/
11431224
if(gamepad.values[ODROID_INPUT_RIGHT]) {
11441225
if(!LAUNCHER && !FOLDER) {
1145-
if(SETTING != 2) {
1226+
if(SETTING != 2 && SETTING != 3) {
11461227
STEP++;
11471228
if( STEP > COUNT-1 ) {
11481229
STEP = 0;
@@ -1151,10 +1232,19 @@
11511232
ROMS.total = 0;
11521233
animate(1);
11531234
} else {
1154-
if(VOLUME < 4) {
1155-
VOLUME++;
1156-
set_volume();
1157-
usleep(200000);
1235+
if(SETTING == 2) {
1236+
if(VOLUME < 4) {
1237+
VOLUME++;
1238+
set_volume();
1239+
usleep(200000);
1240+
}
1241+
}
1242+
if(SETTING == 3) {
1243+
if(BRIGHTNESS < 9) {
1244+
BRIGHTNESS++;
1245+
set_brightness();
1246+
usleep(200000);
1247+
}
11581248
}
11591249
}
11601250
}
@@ -1169,7 +1259,7 @@
11691259
if(STEP == 0) {
11701260
if(!SETTINGS) {
11711261
SETTING--;
1172-
if( SETTING < 0 ) { SETTING = 2; }
1262+
if( SETTING < 0 ) { SETTING = 3; }
11731263
draw_settings();
11741264
} else {
11751265
USER--;
@@ -1200,7 +1290,7 @@
12001290
if(STEP == 0) {
12011291
if(!SETTINGS) {
12021292
SETTING++;
1203-
if( SETTING > 2 ) { SETTING = 0; }
1293+
if( SETTING > 3 ) { SETTING = 0; }
12041294
draw_settings();
12051295
} else {
12061296
USER++;

Launchers/retro-esp32/sdkconfig

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -170,9 +170,9 @@ CONFIG_SPIRAM_SUPPORT=y
170170
#
171171
CONFIG_SPIRAM_BOOT_INIT=y
172172
CONFIG_SPIRAM_IGNORE_NOTFOUND=
173-
CONFIG_SPIRAM_USE_MEMMAP=
173+
CONFIG_SPIRAM_USE_MEMMAP=y
174174
CONFIG_SPIRAM_USE_CAPS_ALLOC=
175-
CONFIG_SPIRAM_USE_MALLOC=y
175+
CONFIG_SPIRAM_USE_MALLOC=
176176
CONFIG_SPIRAM_TYPE_AUTO=y
177177
CONFIG_SPIRAM_TYPE_ESPPSRAM32=
178178
CONFIG_SPIRAM_TYPE_ESPPSRAM64=
@@ -183,10 +183,6 @@ CONFIG_SPIRAM_MEMTEST=y
183183
CONFIG_SPIRAM_CACHE_WORKAROUND=y
184184
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
185185
CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
186-
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
187-
CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST=
188-
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
189-
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=
190186
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=
191187
CONFIG_MEMMAP_TRACEMEM=
192188
CONFIG_MEMMAP_TRACEMEM_TWOBANKS=
@@ -265,6 +261,7 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
265261
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
266262
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
267263
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
264+
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=
268265
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
269266
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
270267
CONFIG_ESP32_WIFI_CSI_ENABLED=

Launchers/retro-esp32/sdkconfig.old

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,6 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
265265
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
266266
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
267267
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
268-
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=
269268
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
270269
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
271270
CONFIG_ESP32_WIFI_CSI_ENABLED=

Odroid/odroid-go-firmware

0 commit comments

Comments
 (0)