diff options
author | Max Horn | 2012-02-29 11:43:21 +0100 |
---|---|---|
committer | Max Horn | 2012-02-29 11:43:21 +0100 |
commit | 92d219715f1fc8b3535cfce370084bd56596c2ef (patch) | |
tree | a3d4a2eae9fee032aaf0f441f7796c1a64ffa454 | |
parent | 657206bc5b840006ea9f98767ade937f9fc0fab0 (diff) | |
download | scummvm-rg350-92d219715f1fc8b3535cfce370084bd56596c2ef.tar.gz scummvm-rg350-92d219715f1fc8b3535cfce370084bd56596c2ef.tar.bz2 scummvm-rg350-92d219715f1fc8b3535cfce370084bd56596c2ef.zip |
COMMON: Replace OptionsDialog::renderType2GUIO by API in rendermode.h
-rw-r--r-- | common/rendermode.cpp | 41 | ||||
-rw-r--r-- | common/rendermode.h | 6 | ||||
-rw-r--r-- | gui/options.cpp | 29 | ||||
-rw-r--r-- | gui/options.h | 2 |
4 files changed, 49 insertions, 29 deletions
diff --git a/common/rendermode.cpp b/common/rendermode.cpp index 62b67faee5..1ca67c1878 100644 --- a/common/rendermode.cpp +++ b/common/rendermode.cpp @@ -22,6 +22,7 @@ #include "common/rendermode.h" +#include "common/gui_options.h" #include "common/str.h" #include "common/translation.h" @@ -43,6 +44,26 @@ const RenderModeDescription g_renderModes[] = { {0, 0, kRenderDefault} }; +struct RenderGUIOMapping { + RenderMode id; + const char *guio; +}; + +// TODO: Merge s_renderGUIOMapping into g_renderModes? the kRenderDefault +// could be used to indicate "any" mode when passed to renderMode2GUIO (if +// we wanted to merge allRenderModesGUIOs back into) +static const RenderGUIOMapping s_renderGUIOMapping[] = { + { kRenderHercG, GUIO_RENDERHERCGREEN }, + { kRenderHercA, GUIO_RENDERHERCAMBER }, + { kRenderCGA, GUIO_RENDERCGA }, + { kRenderEGA, GUIO_RENDEREGA }, + { kRenderVGA, GUIO_RENDERVGA }, + { kRenderAmiga, GUIO_RENDERAMIGA }, + { kRenderFMTowns, GUIO_RENDERFMTOWNS }, + { kRenderPC9821, GUIO_RENDERPC9821 }, + { kRenderPC9801, GUIO_RENDERPC9801 } +}; + DECLARE_TRANSLATION_ADDITIONAL_CONTEXT("Hercules Green", "lowres") DECLARE_TRANSLATION_ADDITIONAL_CONTEXT("Hercules Amber", "lowres") @@ -77,5 +98,25 @@ const char *getRenderModeDescription(RenderMode id) { return 0; } +String renderMode2GUIO(RenderMode id) { + Common::String res; + + for (int i = 0; i < ARRAYSIZE(s_renderGUIOMapping); i++) { + if (id == s_renderGUIOMapping[i].id) + res += s_renderGUIOMapping[i].guio; + } + + return res; +} + +String allRenderModesGUIOs() { + Common::String res; + + for (int i = 0; i < ARRAYSIZE(s_renderGUIOMapping); i++) { + res += s_renderGUIOMapping[i].guio; + } + + return res; +} } // End of namespace Common diff --git a/common/rendermode.h b/common/rendermode.h index c2fece77ee..945c4e7d9d 100644 --- a/common/rendermode.h +++ b/common/rendermode.h @@ -61,6 +61,12 @@ extern RenderMode parseRenderMode(const String &str); extern const char *getRenderModeCode(RenderMode id); extern const char *getRenderModeDescription(RenderMode id); +// TODO: Rename the following to something better; also, document it +extern String renderMode2GUIO(RenderMode id); + +// TODO: Rename the following to something better; also, document it +extern String allRenderModesGUIOs(); + } // End of namespace Common diff --git a/gui/options.cpp b/gui/options.cpp index 5085f9cdd9..39f8d9ccb6 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -750,7 +750,7 @@ void OptionsDialog::addGraphicControls(GuiObject *boss, const Common::String &pr } // RenderMode popup - const Common::String allFlags = renderType2GUIO((uint32)-1); + const Common::String allFlags = Common::allRenderModesGUIOs(); bool renderingTypeDefined = (strpbrk(_guioptions.c_str(), allFlags.c_str()) != NULL); _renderModePopUpDesc = new StaticTextWidget(boss, prefix + "grRenderPopupDesc", _("Render mode:"), _("Special dithering modes supported by some games")); @@ -759,7 +759,7 @@ void OptionsDialog::addGraphicControls(GuiObject *boss, const Common::String &pr _renderModePopUp->appendEntry(""); const Common::RenderModeDescription *rm = Common::g_renderModes; for (; rm->code; ++rm) { - Common::String renderGuiOption = renderType2GUIO(rm->id); + Common::String renderGuiOption = Common::renderMode2GUIO(rm->id); if ((_domain == Common::ConfigManager::kApplicationDomain) || (_domain != Common::ConfigManager::kApplicationDomain && !renderingTypeDefined) || (_guioptions.contains(renderGuiOption))) _renderModePopUp->appendEntry(_c(rm->description, context), rm->id); } @@ -1040,31 +1040,6 @@ void OptionsDialog::saveMusicDeviceSetting(PopUpWidget *popup, Common::String se ConfMan.removeKey(setting, _domain); } -Common::String OptionsDialog::renderType2GUIO(uint32 renderType) { - static const struct { - Common::RenderMode type; - const char *guio; - } renderGUIOMapping[] = { - { Common::kRenderHercG, GUIO_RENDERHERCGREEN }, - { Common::kRenderHercA, GUIO_RENDERHERCAMBER }, - { Common::kRenderCGA, GUIO_RENDERCGA }, - { Common::kRenderEGA, GUIO_RENDEREGA }, - { Common::kRenderVGA, GUIO_RENDERVGA }, - { Common::kRenderAmiga, GUIO_RENDERAMIGA }, - { Common::kRenderFMTowns, GUIO_RENDERFMTOWNS }, - { Common::kRenderPC9821, GUIO_RENDERPC9821 }, - { Common::kRenderPC9801, GUIO_RENDERPC9801 } - }; - Common::String res; - - for (int i = 0; i < ARRAYSIZE(renderGUIOMapping); i++) { - if (renderType == renderGUIOMapping[i].type || renderType == (uint32)-1) - res += renderGUIOMapping[i].guio; - } - - return res; -} - int OptionsDialog::getSubtitleMode(bool subtitles, bool speech_mute) { if (_guioptions.contains(GUIO_NOSUBTITLES)) return kSubtitlesSpeech; // Speech only diff --git a/gui/options.h b/gui/options.h index 83c9d60d59..05b3cac617 100644 --- a/gui/options.h +++ b/gui/options.h @@ -85,8 +85,6 @@ protected: bool loadMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicType preferredType = MT_AUTO); void saveMusicDeviceSetting(PopUpWidget *popup, Common::String setting); - Common::String renderType2GUIO(uint32 renderType); - TabWidget *_tabWidget; int _graphicsTabId; int _midiTabId; |