Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

echoplayer: add storage & RTC demo in bootloader

Change-Id: I146e2205182239ed9d0176c23e3d0ad05e72a3be

authored by

Aidan MacDonald and committed by
Solomon Peachy
2e532129 6a8989f3

+84 -3
+84 -3
bootloader/echoplayer.c
··· 25 25 #include "lcd.h" 26 26 #include "backlight.h" 27 27 #include "button.h" 28 + #include "timefuncs.h" 29 + #include "storage.h" 30 + #include "disk.h" 31 + #include "file_internal.h" 28 32 29 33 extern void show_logo(void); 30 34 35 + static void demo_rtc(void) 36 + { 37 + int y = 0; 38 + struct tm *time = get_time(); 39 + 40 + lcd_clear_display(); 41 + 42 + lcd_putsf(0, y++, "time: %02d:%02d:%02d", 43 + time->tm_hour, time->tm_min, time->tm_sec); 44 + lcd_putsf(0, y++, "year: %d", time->tm_year + 1900); 45 + lcd_putsf(0, y++, "month: %d", time->tm_mon); 46 + lcd_putsf(0, y++, "day: %d", time->tm_mday); 47 + 48 + lcd_update(); 49 + } 50 + 51 + static void demo_storage(void) 52 + { 53 + int y = 0; 54 + 55 + lcd_clear_display(); 56 + lcd_putsf(0, y++, "tick %ld", current_tick); 57 + 58 + struct partinfo pinfo; 59 + if (storage_present(IF_MD(0,)) && disk_partinfo(0, &pinfo)) 60 + { 61 + lcd_putsf(0, y++, "start %d", (int)pinfo.start); 62 + lcd_putsf(0, y++, "count %d", (int)pinfo.size); 63 + lcd_putsf(0, y++, "type %d", (int)pinfo.type); 64 + 65 + DIR *d = opendir("/"); 66 + struct dirent *ent; 67 + while ((ent = readdir(d))) 68 + { 69 + lcd_putsf(0, y++, "/%s", ent->d_name); 70 + } 71 + 72 + closedir(d); 73 + } 74 + 75 + lcd_update(); 76 + } 77 + 78 + static void (*demo_funcs[]) (void) = { 79 + demo_rtc, 80 + demo_storage, 81 + }; 82 + 31 83 void main(void) 32 84 { 33 85 system_init(); ··· 35 87 rtc_init(); 36 88 37 89 lcd_init(); 90 + button_init(); 91 + 38 92 backlight_init(); 39 93 backlight_on(); 40 94 41 95 show_logo(); 42 96 43 - while (1) { 44 - lcd_putsxyf(60, 140, "btn: %08x", button_read_device()); 45 - lcd_update(); 97 + storage_init(); 98 + filesystem_init(); 99 + disk_mount_all(); 100 + 101 + int demo_page = 0; 102 + const int num_pages = ARRAYLEN(demo_funcs); 103 + 104 + while (1) 105 + { 106 + int btn = button_get_w_tmo(HZ); 107 + switch (btn) 108 + { 109 + case BUTTON_START: 110 + demo_page += 1; 111 + if (demo_page >= num_pages) 112 + demo_page = 0; 113 + break; 114 + 115 + case BUTTON_SELECT: 116 + if (demo_page == 0) 117 + demo_page = num_pages - 1; 118 + else 119 + demo_page -= 1; 120 + break; 121 + 122 + default: 123 + break; 124 + } 125 + 126 + demo_funcs[demo_page](); 46 127 } 47 128 }