summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/moptions.cpp
diff options
context:
space:
mode:
author npwoods <npwoods@mess.org>2019-06-28 17:30:09 -0400
committer R. Belmont <rb6502@users.noreply.github.com>2019-06-28 17:30:09 -0400
commit697ff7bd7149d635a838543b65409dd42d739087 (patch)
tree23d49d81fd2b87ed565fac5c758b73b678fa7ad2 /src/frontend/mame/ui/moptions.cpp
parentcec557538d0d55b11780e83ac60e0fef68b37e0d (diff)
Changed the various usages of UI_*COLOR to be calls to src/frontend/mame/ui/moptions.h (#5282)
* Changed the various usages of UI_*COLOR to be calls to src/frontend/mame/ui/moptions.h The various UI_*COLOR macros were implemented as calls to decode_ui_color, which cached the values for the various options in a static array, which was obviously a gross hack. This refactoring is strategic because I am trying to confine awareness of mame_ui_manager to code in src/frontend/mame/ui, and the implementation of decode_ui_color() relied on the ability to access mame_ui_manager as a singleton from outside this code. * Created a ui_colors object, so that queries for UI RGB values would not always require parsing strings * Converted a few more options().zyx_color() to colors().zyx_color() * A few more misses from earlier
Diffstat (limited to 'src/frontend/mame/ui/moptions.cpp')
-rw-r--r--src/frontend/mame/ui/moptions.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/frontend/mame/ui/moptions.cpp b/src/frontend/mame/ui/moptions.cpp
index 9b070962932..1b4779ddaf0 100644
--- a/src/frontend/mame/ui/moptions.cpp
+++ b/src/frontend/mame/ui/moptions.cpp
@@ -88,3 +88,22 @@ ui_options::ui_options() : core_options()
{
add_entries(ui_options::s_option_entries);
}
+
+//-------------------------------------------------
+// rgb_value - decode an RGB option
+//-------------------------------------------------
+
+rgb_t ui_options::rgb_value(const char *option) const
+{
+ // find the entry
+ core_options::entry::shared_ptr entry = get_entry(option);
+
+ // look up the value, and sanity check the result
+ const char *value = entry->value();
+ int len = strlen(value);
+ if (len != 8)
+ value = entry->default_value().c_str();
+
+ // convert to an rgb_t
+ return rgb_t((uint32_t)strtoul(value, nullptr, 16));
+}