diff --git a/file_io.cpp b/file_io.cpp index a8c5a2d..0bd1591 100644 --- a/file_io.cpp +++ b/file_io.cpp @@ -1170,7 +1170,6 @@ int ScanDirectory(char* path, int mode, const char *extension, int options, cons if (extlen > 0) { - int len = strlen(de->d_name); const char *ext = extension; int found = (has_trd && x2trd_ext_supp(de->d_name)); if (!found && !strcasecmp(de->d_name + strlen(de->d_name) - 4, ".zip")) diff --git a/menu.cpp b/menu.cpp index 546951b..c3c6190 100644 --- a/menu.cpp +++ b/menu.cpp @@ -964,7 +964,7 @@ void HandleUI(void) else if (left) { menustate = MENU_8BIT_INFO; - menusub = 0; + menusub = 1; } break; @@ -1245,7 +1245,7 @@ void HandleUI(void) else if (left) { menustate = MENU_8BIT_INFO; - menusub = 0; + menusub = 1; } break; @@ -1616,23 +1616,47 @@ void HandleUI(void) case MENU_8BIT_INFO: OsdSetSize(16); helptext = 0; - menumask = 1; + menumask = 3; menustate = MENU_8BIT_INFO2; - parentstate = MENU_8BIT_INFO; OsdSetTitle("System", OSD_ARROW_RIGHT); - for (int i = 0; i < OsdGetSize() - 1; i++) OsdWrite(i, "", 0, 0); + if(parentstate != MENU_8BIT_INFO) for (int i = 0; i < OsdGetSize() - 1; i++) OsdWrite(i, "", 0, 0); + parentstate = MENU_8BIT_INFO; + OsdWrite(3, " Information"); - OsdWrite(15, STD_EXIT, menusub == 0, 0, OSD_ARROW_RIGHT); + + m = get_volume(); + strcpy(s, " Volume: "); + if (m & 0x10) + { + strcat(s, "< Mute >"); + } + else + { + memset(s+strlen(s), 0, 10); + char *bar = s + strlen(s); + memset(bar, 0x8C, 8); + memset(bar, 0x7f, 8 - m); + } + + OsdWrite(13, s, menusub == 0, !cfg.volumectl); + OsdWrite(15, STD_EXIT, menusub == 1, 0, OSD_ARROW_RIGHT); break; case MENU_8BIT_INFO2: printSysInfo(); - if (select || menu) + if ((select && menusub == 1) || menu) { menustate = MENU_NONE1; break; } + else if(menusub == 0 && cfg.volumectl) + { + if (right) set_volume(1); + if (left) set_volume(-1); + if (select) set_volume(0); + menustate = MENU_8BIT_INFO; + } else if (right) { // go back to core requesting this menu @@ -2448,7 +2472,7 @@ void HandleUI(void) else if (left) { menustate = MENU_8BIT_INFO; - menusub = 0; + menusub = 1; } break; diff --git a/user_io.cpp b/user_io.cpp index d5ef797..a276a97 100644 --- a/user_io.cpp +++ b/user_io.cpp @@ -2416,7 +2416,12 @@ void user_io_osd_key_enable(char on) osd_is_visible = on; } -static void set_volume(int cmd) +int get_volume() +{ + return vol_att & 0x17; +} + +void set_volume(int cmd) { if (!cfg.volumectl) return; diff --git a/user_io.h b/user_io.h index a1e54eb..dae4d3e 100644 --- a/user_io.h +++ b/user_io.h @@ -252,5 +252,7 @@ int GetUARTMode(); int GetMidiLinkMode(); void SetMidiLinkMode(int mode); +void set_volume(int cmd); +int get_volume(); #endif // USER_IO_H