|
18 | 18 | bool SPLASH = true; |
19 | 19 | bool SETTINGS = false; |
20 | 20 |
|
21 | | - int STEP = 0; |
| 21 | + int8_t STEP = 0; |
22 | 22 | int OPTION = 0; |
23 | 23 | int PREVIOUS = 0; |
24 | 24 | 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}; |
25 | 27 | int8_t USER; |
26 | 28 | int8_t SETTING; |
27 | 29 | int8_t COLOR; |
|
126 | 128 | get_restore_states(); |
127 | 129 |
|
128 | 130 | // Toggle |
129 | | - get_toggle(); |
| 131 | + get_toggle(); |
130 | 132 |
|
131 | 133 | GUI = THEMES[USER]; |
132 | 134 |
|
133 | 135 | ili9341_prepare(); |
134 | 136 | ili9341_clear(0); |
135 | 137 |
|
| 138 | + BRIGHTNESS = odroid_settings_Backlight_get(); |
| 139 | + odroid_settings_Backlight_set(BRIGHTNESS); |
| 140 | + |
136 | 141 | //printf("==============\n%s\n==============\n", "RETRO ESP32"); |
137 | 142 | switch(esp_reset_reason()) { |
138 | 143 | case ESP_RST_POWERON: |
|
147 | 152 | RESTART = false; |
148 | 153 | break; |
149 | 154 | } |
| 155 | + STEP = 0; |
150 | 156 | RESTART ? restart() : SPLASH ? splash() : NULL; |
151 | 157 | draw_background(); |
152 | 158 | restore_layout(); |
|
261 | 267 |
|
262 | 268 | void draw_text(short x, short y, char *string, bool ext, bool current) { |
263 | 269 | int length = !ext ? strlen(string) : strlen(string)-(strlen(EXTENSIONS[STEP])+1); |
264 | | - int size = 5; |
265 | 270 | int rows = 7; |
266 | 271 | int cols = 5; |
267 | 272 | for(int n = 0; n < length; n++) { |
|
317 | 322 | draw_text(x,y,"VOLUME",false, SETTING == 2 ? true : false); |
318 | 323 |
|
319 | 324 | 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(); |
320 | 331 | } |
321 | 332 | //}#pragma endregion Settings |
322 | 333 |
|
|
328 | 339 | int w, h; |
329 | 340 |
|
330 | 341 | 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++) { |
333 | 344 | buffer[i] = toggle[h + (COLOR*9)][w] == 0 ? GUI.bg : toggle[h + (COLOR*9)][w]; |
334 | 345 | i++; |
335 | 346 | } |
|
343 | 354 | nvs_open("storage", NVS_READWRITE, &handle); |
344 | 355 | nvs_set_i8(handle, "COLOR", COLOR); |
345 | 356 | nvs_commit(handle); |
346 | | - nvs_close(handle); |
| 357 | + nvs_close(handle); |
347 | 358 | } |
348 | 359 |
|
349 | 360 | void get_toggle() { |
|
368 | 379 | COLOR = false; |
369 | 380 | } |
370 | 381 | nvs_close(handle); |
371 | | - } |
372 | | -//}#pragma endregion Toggle |
| 382 | + } |
| 383 | +//}#pragma endregion Toggle |
373 | 384 |
|
374 | 385 | //{#pragma region Volume |
375 | 386 | void draw_volume() { |
|
414 | 425 | } |
415 | 426 | //}#pragma endregion Volume |
416 | 427 |
|
| 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 |
417 | 490 | //{#pragma region Theme |
418 | 491 | void draw_themes() { |
419 | 492 | int x = ORIGIN.x; |
|
529 | 602 | buffer[i] = media[h][w] == WHITE ? current ? WHITE : GUI.fg : GUI.bg; |
530 | 603 | break; |
531 | 604 | 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]; |
533 | 606 | 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 | + } |
536 | 609 | break; |
537 | 610 | } |
538 | 611 | /* |
|
808 | 881 | //printf("\n"); |
809 | 882 | int x = ORIGIN.x; |
810 | 883 | int y = POS.y + 48; |
811 | | - int game = ROMS.offset ; |
812 | 884 | ROMS.page = ROMS.offset/ROMS.limit; |
813 | 885 |
|
814 | 886 | /* |
|
1117 | 1189 | */ |
1118 | 1190 | if(gamepad.values[ODROID_INPUT_LEFT]) { |
1119 | 1191 | if(!LAUNCHER && !FOLDER) { |
1120 | | - if(SETTING != 2) { |
| 1192 | + if(SETTING != 2 && SETTING != 3) { |
1121 | 1193 | STEP--; |
1122 | 1194 | if( STEP < 0 ) { |
1123 | 1195 | STEP = COUNT - 1; |
|
1127 | 1199 | ROMS.total = 0; |
1128 | 1200 | animate(-1); |
1129 | 1201 | } 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 | + } |
1134 | 1215 | } |
1135 | 1216 | } |
1136 | 1217 | } |
|
1142 | 1223 | */ |
1143 | 1224 | if(gamepad.values[ODROID_INPUT_RIGHT]) { |
1144 | 1225 | if(!LAUNCHER && !FOLDER) { |
1145 | | - if(SETTING != 2) { |
| 1226 | + if(SETTING != 2 && SETTING != 3) { |
1146 | 1227 | STEP++; |
1147 | 1228 | if( STEP > COUNT-1 ) { |
1148 | 1229 | STEP = 0; |
|
1151 | 1232 | ROMS.total = 0; |
1152 | 1233 | animate(1); |
1153 | 1234 | } 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 | + } |
1158 | 1248 | } |
1159 | 1249 | } |
1160 | 1250 | } |
|
1169 | 1259 | if(STEP == 0) { |
1170 | 1260 | if(!SETTINGS) { |
1171 | 1261 | SETTING--; |
1172 | | - if( SETTING < 0 ) { SETTING = 2; } |
| 1262 | + if( SETTING < 0 ) { SETTING = 3; } |
1173 | 1263 | draw_settings(); |
1174 | 1264 | } else { |
1175 | 1265 | USER--; |
|
1200 | 1290 | if(STEP == 0) { |
1201 | 1291 | if(!SETTINGS) { |
1202 | 1292 | SETTING++; |
1203 | | - if( SETTING > 2 ) { SETTING = 0; } |
| 1293 | + if( SETTING > 3 ) { SETTING = 0; } |
1204 | 1294 | draw_settings(); |
1205 | 1295 | } else { |
1206 | 1296 | USER++; |
|
0 commit comments