From 64c1136440d696e571edcff36b66a30c720e20bd Mon Sep 17 00:00:00 2001 From: hap Date: Fri, 3 Apr 2020 01:23:01 +0200 Subject: ui: remove clock freqs trailing 0s on machine info screen (nw) --- src/frontend/mame/ui/devopt.cpp | 56 ++++++++++++++++++++++------------------- src/frontend/mame/ui/info.cpp | 41 +++++++++++++++++------------- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/src/frontend/mame/ui/devopt.cpp b/src/frontend/mame/ui/devopt.cpp index 8dd9b9c9a9e..7e2cdc0fb2f 100644 --- a/src/frontend/mame/ui/devopt.cpp +++ b/src/frontend/mame/ui/devopt.cpp @@ -69,16 +69,16 @@ void menu_device_config::populate(float &customtop, float &custombottom) count++; } + int n = (clock >= 1000000) ? (clock / 1000000) : (clock / 1000); + int d = (clock >= 1000000) ? (clock % 1000000) : (clock % 1000); + while (d != 0 && (d % 10) == 0) + d /= 10; + // if more than one, prepend a #x in front of the CPU name and display clock in kHz or MHz - util::stream_format( - str, - (count > 1) - ? ((clock >= 1000000) ? _(" %1$d\xC3\x97%2$s %3$d.%4$06d\xC2\xA0MHz\n") : _(" %1$d\xC3\x97%2$s %5$d.%6$03d\xC2\xA0kHz\n")) - : ((clock >= 1000000) ? _(" %2$s %3$d.%4$06d\xC2\xA0MHz\n") : _(" %2$s %5$d.%6$03d\xC2\xA0kHz\n")), - count, - name, - clock / 1000000, clock % 1000000, - clock / 1000, clock % 1000); + util::stream_format(str, + (count > 1) ? " %1$d" UTF8_MULTIPLY "%2$s %3$d.%4$d" UTF8_NBSP "%5$s\n" : " %2$s %3$d.%4$d" UTF8_NBSP "%5$s\n", + count, name, n, d, + (clock >= 1000000) ? _("MHz") : _("kHz")); } } @@ -90,22 +90,23 @@ void menu_device_config::populate(float &customtop, float &custombottom) for (screen_device &screen : scriter) { if (screen.screen_type() == SCREEN_TYPE_VECTOR) - { util::stream_format(str, _(" Screen '%1$s': Vector\n"), screen.tag()); - } else { - const rectangle &visarea = screen.visible_area(); + double f = screen.frame_period().as_hz(); + int n = int(f), d = int(f * 1000000.0) % 1000000; + while (d != 0 && (d % 10) == 0) + d /= 10; - util::stream_format( - str, + const rectangle &visarea = screen.visible_area(); + util::stream_format(str, (screen.orientation() & ORIENTATION_SWAP_XY) - ? _(" Screen '%1$s': %2$d \xC3\x97 %3$d (V) %4$f\xC2\xA0Hz\n") - : _(" Screen '%1$s': %2$d \xC3\x97 %3$d (H) %4$f\xC2\xA0Hz\n"), + ? _(" Screen '%1$s': %2$d \xC3\x97 %3$d (V) %4$d.%5$d\xC2\xA0Hz\n") + : _(" Screen '%1$s': %2$d \xC3\x97 %3$d (H) %4$d.%5$d\xC2\xA0Hz\n"), screen.tag(), visarea.width(), visarea.height(), - screen.frame_period().as_hz()); + n, d); } } } @@ -129,17 +130,20 @@ void menu_device_config::populate(float &customtop, float &custombottom) if (soundtags.insert(scan.device().tag()).second) count++; } - // if more than one, prepend a #x in front of the name and display clock in kHz or MHz + int const clock = sound.device().clock(); - util::stream_format( - str, + int n = (clock >= 1000000) ? (clock / 1000000) : (clock / 1000); + int d = (clock >= 1000000) ? (clock % 1000000) : (clock % 1000); + while (d != 0 && (d % 10) == 0) + d /= 10; + + // if more than one, prepend a #x in front of the name and display clock in kHz or MHz + util::stream_format(str, (count > 1) - ? ((clock >= 1000000) ? _(" %1$d\xC3\x97%2$s %3$d.%4$06d\xC2\xA0MHz\n") : clock ? _(" %1$d\xC3\x97%2$s %5$d.%6$03d\xC2\xA0kHz\n") : _(" %1$d\xC3\x97%2$s\n")) - : ((clock >= 1000000) ? _(" %2$s %3$d.%4$06d\xC2\xA0MHz\n") : clock ? _(" %2$s %5$d.%6$03d\xC2\xA0kHz\n") : _(" %2$s\n")), - count, - sound.device().name(), - clock / 1000000, clock % 1000000, - clock / 1000, clock % 1000); + ? ((clock != 0) ? " %1$d" UTF8_MULTIPLY "%2$s %3$d.%4$d" UTF8_NBSP "%5$s\n" : " %1$d" UTF8_MULTIPLY "%2$s\n") + : ((clock != 0) ? " %2$s %3$d.%4$d" UTF8_NBSP "%5$s\n" : " %2$s\n"), + count, sound.device().name(), n, d, + (clock >= 1000000) ? _("MHz") : _("kHz")); } } diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp index b528f13c95c..f8aa7b29090 100644 --- a/src/frontend/mame/ui/info.cpp +++ b/src/frontend/mame/ui/info.cpp @@ -325,15 +325,16 @@ std::string machine_info::game_info_string() const count++; } + int n = (clock >= 1000000) ? (clock / 1000000) : (clock / 1000); + int d = (clock >= 1000000) ? (clock % 1000000) : (clock % 1000); + while (d != 0 && (d % 10) == 0) + d /= 10; + // if more than one, prepend a #x in front of the CPU name // display clock in kHz or MHz util::stream_format(buf, - (count > 1) ? "%1$d" UTF8_MULTIPLY "%2$s %3$d.%4$0*5$d%6$s\n" : "%2$s %3$d.%4$0*5$d%6$s\n", - count, - name, - (clock >= 1000000) ? (clock / 1000000) : (clock / 1000), - (clock >= 1000000) ? (clock % 1000000) : (clock % 1000), - (clock >= 1000000) ? 6 : 3, + (count > 1) ? "%1$d" UTF8_MULTIPLY "%2$s %3$d.%4$d" UTF8_NBSP "%5$s\n" : "%2$s %3$d.%4$d" UTF8_NBSP "%5$s\n", + count, name, n, d, (clock >= 1000000) ? _("MHz") : _("kHz")); } @@ -360,18 +361,19 @@ std::string machine_info::game_info_string() const count++; } - // if more than one, prepend a #x in front of the CPU name - // display clock in kHz or MHz int clock = sound.device().clock(); + int n = (clock >= 1000000) ? (clock / 1000000) : (clock / 1000); + int d = (clock >= 1000000) ? (clock % 1000000) : (clock % 1000); + while (d != 0 && (d % 10) == 0) + d /= 10; + + // if more than one, prepend a #x in front of the sound chip name + // display clock in kHz or MHz util::stream_format(buf, (count > 1) - ? ((clock != 0) ? "%1$d" UTF8_MULTIPLY "%2$s %3$d.%4$0*5$d%6$s\n" : "%1$d" UTF8_MULTIPLY "%2$s\n") - : ((clock != 0) ? "%2$s %3$d.%4$0*5$d%6$s\n" : "%2$s\n"), - count, - sound.device().name(), - (clock >= 1000000) ? (clock / 1000000) : (clock / 1000), - (clock >= 1000000) ? (clock % 1000000) : (clock % 1000), - (clock >= 1000000) ? 6 : 3, + ? ((clock != 0) ? "%1$d" UTF8_MULTIPLY "%2$s %3$d.%4$d" UTF8_NBSP "%5$s\n" : "%1$d" UTF8_MULTIPLY "%2$s\n") + : ((clock != 0) ? "%2$s %3$d.%4$d" UTF8_NBSP "%5$s\n" : "%2$s\n"), + count, sound.device().name(), n, d, (clock >= 1000000) ? _("MHz") : _("kHz")); } @@ -390,11 +392,16 @@ std::string machine_info::game_info_string() const detail = _("Vector"); else { + double f = screen.frame_period().as_hz(); + int n = int(f), d = int(f * 1000000.0) % 1000000; + while (d != 0 && (d % 10) == 0) + d /= 10; + const rectangle &visarea = screen.visible_area(); - detail = string_format("%d " UTF8_MULTIPLY " %d (%s) %f" UTF8_NBSP "Hz", + detail = string_format("%d " UTF8_MULTIPLY " %d (%s) %d.%d" UTF8_NBSP "Hz", visarea.width(), visarea.height(), (screen.orientation() & ORIENTATION_SWAP_XY) ? "V" : "H", - screen.frame_period().as_hz()); + n, d); } util::stream_format(buf, -- cgit v1.2.3