summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/devopt.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-04-28 16:34:09 +1000
committer Vas Crabb <vas@vastheman.com>2018-04-28 16:34:09 +1000
commitf2568bb918b8e551c1b95d4a86cf07ae192cbe80 (patch)
treefef1efb042ea6ccfcd24e7e39b988e0fea43b14f /src/frontend/mame/ui/devopt.cpp
parentbecec753bcb2c8c47c910034294e7cb31d3a7b53 (diff)
Make devopt menu localisable.
Make machine_config aware of device being configured so owner doesn't need to be passed everywhere.
Diffstat (limited to 'src/frontend/mame/ui/devopt.cpp')
-rw-r--r--src/frontend/mame/ui/devopt.cpp148
1 files changed, 76 insertions, 72 deletions
diff --git a/src/frontend/mame/ui/devopt.cpp b/src/frontend/mame/ui/devopt.cpp
index 71ccb6d9a40..32b860f3eba 100644
--- a/src/frontend/mame/ui/devopt.cpp
+++ b/src/frontend/mame/ui/devopt.cpp
@@ -28,25 +28,24 @@ menu_device_config::menu_device_config(mame_ui_manager &mui, render_container &c
void menu_device_config::populate(float &customtop, float &custombottom)
{
- std::ostringstream str;
- device_t *dev;
-
- util::stream_format(str, "[This option is%s currently mounted in the running system]\n\n", m_mounted ? "" : " NOT");
- util::stream_format(str, "Option: %s\n", m_option->name());
+ machine_config &mconfig(const_cast<machine_config &>(machine().config()));
+ machine_config::token const tok(mconfig.begin_configuration(mconfig.root_device()));
+ device_t *const dev = mconfig.device_add(m_option->name(), m_option->devtype(), 0);
- dev = const_cast<machine_config &>(machine().config()).device_add(&machine().config().root_device(), m_option->name(), m_option->devtype(), 0);
-
- util::stream_format(str, "Device: %s\n", dev->name());
- if (!m_mounted)
- str << "\nIf you select this option, the following items will be enabled:\n";
- else
- str << "\nThe selected option enables the following items:\n";
+ std::ostringstream str;
+ util::stream_format(
+ str,
+ m_mounted
+ ? _("[This option is currently mounted in the running system]\n\nOption: %1$s\nDevice: %1$s\n\nThe selected option enables the following items:\n")
+ : _("[This option is NOT currently mounted in the running system]\n\nOption: %1$s\nDevice: %1$s\n\nIf you select this option, the following items will be enabled:\n"),
+ m_option->name(),
+ dev->name());
// loop over all CPUs
execute_interface_iterator execiter(*dev);
if (execiter.count() > 0)
{
- str << "* CPU:\n";
+ str << _("* CPU:\n");
std::unordered_set<std::string> exectags;
for (device_execute_interface &exec : execiter)
{
@@ -66,18 +65,16 @@ void menu_device_config::populate(float &customtop, float &custombottom)
count++;
}
- // if more than one, prepend a #x in front of the CPU name
- if (count > 1)
- util::stream_format(str, " %d" UTF8_MULTIPLY, count);
- else
- str << " ";
- str << name;
-
- // display clock in kHz or MHz
- if (clock >= 1000000)
- util::stream_format(str, " %d.%06d" UTF8_NBSP "MHz\n", clock / 1000000, clock % 1000000);
- else
- util::stream_format(str, " %d.%03d" UTF8_NBSP "kHz\n", clock / 1000, clock % 1000);
+ // 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);
}
}
@@ -85,21 +82,26 @@ void menu_device_config::populate(float &customtop, float &custombottom)
screen_device_iterator scriter(*dev);
if (scriter.count() > 0)
{
- str << "* Video:\n";
+ str << _("* Video:\n");
for (screen_device &screen : scriter)
{
- util::stream_format(str, " Screen '%s': ", screen.tag());
-
if (screen.screen_type() == SCREEN_TYPE_VECTOR)
- str << "Vector\n";
+ {
+ util::stream_format(str, _(" Screen '%1$s': Vector\n"), screen.tag());
+ }
else
{
const rectangle &visarea = screen.visible_area();
- util::stream_format(str, "%d " UTF8_MULTIPLY " %d (%s) %f" UTF8_NBSP "Hz\n",
- visarea.width(), visarea.height(),
- (machine().system().flags & ORIENTATION_SWAP_XY) ? "V" : "H",
- ATTOSECONDS_TO_HZ(screen.frame_period().attoseconds()));
+ util::stream_format(
+ str,
+ (machine().system().flags & 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.tag(),
+ visarea.width(),
+ visarea.height(),
+ ATTOSECONDS_TO_HZ(screen.frame_period().attoseconds()));
}
}
}
@@ -108,7 +110,7 @@ void menu_device_config::populate(float &customtop, float &custombottom)
sound_interface_iterator snditer(*dev);
if (snditer.count() > 0)
{
- str << "* Sound:\n";
+ str << _("* Sound:\n");
std::unordered_set<std::string> soundtags;
for (device_sound_interface &sound : snditer)
{
@@ -123,21 +125,17 @@ 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 CPU name
- if (count > 1)
- util::stream_format(str," %d" UTF8_MULTIPLY, count);
- else
- str << " ";
- str << sound.device().name();
-
- // display clock in kHz or MHz
- int clock = sound.device().clock();
- if (clock >= 1000000)
- util::stream_format(str," %d.%06d" UTF8_NBSP "MHz\n", clock / 1000000, clock % 1000000);
- else if (clock != 0)
- util::stream_format(str," %d.%03d" UTF8_NBSP "kHz\n", clock / 1000, clock % 1000);
- else
- str << '\n';
+ // 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,
+ (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);
}
}
@@ -163,7 +161,7 @@ void menu_device_config::populate(float &customtop, float &custombottom)
}
if (bios)
- util::stream_format(str, "* BIOS settings:\n %d options [default: %s]\n", bios, bios_desc ? bios_desc : bios_str ? bios_str : "");
+ util::stream_format(str, _("* BIOS settings:\n %1$d options [default: %2$s]\n"), bios, bios_desc ? bios_desc : bios_str ? bios_str : "");
}
int input = 0, input_mj = 0, input_hana = 0, input_gamble = 0, input_analog = 0, input_adjust = 0;
@@ -197,75 +195,81 @@ void menu_device_config::populate(float &customtop, float &custombottom)
else if (field.type() == IPT_DIPSWITCH)
{
dips++;
- dips_opt << " " << field.name();
+ bool def(false);
for (ioport_setting &setting : field.settings())
{
if (setting.value() == field.defvalue())
{
- util::stream_format(dips_opt, " [default: %s]\n", setting.name());
+ def = true;
+ util::stream_format(dips_opt, _(" %1$s [default: %2$s]\n"), field.name(), setting.name());
break;
}
}
+ if (!def)
+ util::stream_format(dips_opt, _(" %1$s\n"), field.name());
}
else if (field.type() == IPT_CONFIG)
{
confs++;
- confs_opt << " " << field.name();
+ bool def(false);
for (ioport_setting &setting : field.settings())
{
if (setting.value() == field.defvalue())
{
- util::stream_format(confs_opt, " [default: %s]\n", setting.name());
+ def = true;
+ util::stream_format(confs_opt, _(" %1$s [default: %2$s]\n"), field.name(), setting.name());
break;
}
}
+ if (!def)
+ util::stream_format(confs_opt, _(" %1$s\n"), field.name());
}
}
if (dips)
- str << "* Dispwitch settings:\n" << dips_opt.str();
+ str << _("* DIP switch settings:\n") << dips_opt.str();
if (confs)
- str << "* Configuration settings:\n" << confs_opt.str();
- if (input + input_mj + input_hana + input_gamble + input_analog + input_adjust + input_keypad + input_keyboard)
- str << "* Input device(s):\n";
+ str << _("* Configuration settings:\n") << confs_opt.str();
+ if (input || input_mj || input_hana || input_gamble || input_analog || input_adjust || input_keypad || input_keyboard)
+ str << _("* Input device(s):\n");
if (input)
- util::stream_format(str, " User inputs [%d inputs]\n", input);
+ util::stream_format(str, _(" User inputs [%1$d inputs]\n"), input);
if (input_mj)
- util::stream_format(str, " Mahjong inputs [%d inputs]\n", input_mj);
+ util::stream_format(str, _(" Mahjong inputs [%1$d inputs]\n"), input_mj);
if (input_hana)
- util::stream_format(str, " Hanafuda inputs [%d inputs]\n", input_hana);
+ util::stream_format(str, _(" Hanafuda inputs [%1$d inputs]\n"), input_hana);
if (input_gamble)
- util::stream_format(str, " Gambling inputs [%d inputs]\n", input_gamble);
+ util::stream_format(str, _(" Gambling inputs [%1$d inputs]\n"), input_gamble);
if (input_analog)
- util::stream_format(str, " Analog inputs [%d inputs]\n", input_analog);
+ util::stream_format(str, _(" Analog inputs [%1$d inputs]\n"), input_analog);
if (input_adjust)
- util::stream_format(str, " Adjuster inputs [%d inputs]\n", input_adjust);
+ util::stream_format(str, _(" Adjuster inputs [%1$d inputs]\n"), input_adjust);
if (input_keypad)
- util::stream_format(str, " Keypad inputs [%d inputs]\n", input_keypad);
+ util::stream_format(str, _(" Keypad inputs [%1$d inputs]\n"), input_keypad);
if (input_keyboard)
- util::stream_format(str, " Keyboard inputs [%d inputs]\n", input_keyboard);
+ util::stream_format(str, _(" Keyboard inputs [%1$d inputs]\n"), input_keyboard);
image_interface_iterator imgiter(*dev);
if (imgiter.count() > 0)
{
- str << "* Media Options:\n";
+ str << _("* Media Options:\n");
for (const device_image_interface &imagedev : imgiter)
- util::stream_format(str, " %s [tag: %s]\n", imagedev.image_type_name(), imagedev.device().tag());
+ util::stream_format(str, _(" %1$s [tag: %2$s]\n"), imagedev.image_type_name(), imagedev.device().tag());
}
slot_interface_iterator slotiter(*dev);
if (slotiter.count() > 0)
{
- str << "* Slot Options:\n";
+ str << _("* Slot Options:\n");
for (const device_slot_interface &slot : slotiter)
- util::stream_format(str, " %s [default: %s]\n", slot.device().tag(), slot.default_option() ? slot.default_option() : "----");
+ util::stream_format(str, _(" %1$s [default: %2$s]\n"), slot.device().tag(), slot.default_option() ? slot.default_option() : "----");
}
if ((execiter.count() + scriter.count() + snditer.count() + imgiter.count() + slotiter.count() + bios + dips + confs
+ input + input_mj + input_hana + input_gamble + input_analog + input_adjust + input_keypad + input_keyboard) == 0)
- str << "[None]\n";
+ str << _("[None]\n");
- const_cast<machine_config &>(machine().config()).device_remove(&machine().config().root_device(), m_option->name());
+ mconfig.device_remove(m_option->name());
item_append(str.str(), "", FLAG_MULTILINE, nullptr);
}