diff options
Diffstat (limited to 'backends')
-rw-r--r-- | backends/platform/maemo/maemo-common.h | 56 | ||||
-rw-r--r-- | backends/platform/maemo/maemo.cpp | 13 | ||||
-rw-r--r-- | backends/platform/maemo/maemo.h | 12 |
3 files changed, 79 insertions, 2 deletions
diff --git a/backends/platform/maemo/maemo-common.h b/backends/platform/maemo/maemo-common.h new file mode 100644 index 0000000000..be256ad340 --- /dev/null +++ b/backends/platform/maemo/maemo-common.h @@ -0,0 +1,56 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#if defined(MAEMO) + +#ifndef PLATFORM_SDL_MAEMO_COMMON_H +#define PLATFORM_SDL_MAEMO_COMMON_H + +enum MaemoModelType { + kMaemoModelTypeN800 = 1, + kMaemoModelTypeN810 = 2, + kMaemoModelTypeN900 = 4, + kMaemoModelTypeInvalid = 0 +}; + +struct MaemoModel { + const char *hwId; + MaemoModelType modelType; + bool hwKeyboard; +}; + +static const MaemoModel maemoModels[] = { +// N800 + {"RX-34", kMaemoModelTypeN800, false}, +// N810 + {"RX-44", kMaemoModelTypeN810, true}, +// N810W + {"RX-48", kMaemoModelTypeN810, true}, +// N900 + {"RX-51", kMaemoModelTypeN900, true}, + {0, kMaemoModelTypeInvalid, true} +}; + + +#endif // ifndef PLATFORM_SDL_MAEMO_COMMON_H + +#endif // if defined(MAEMO) diff --git a/backends/platform/maemo/maemo.cpp b/backends/platform/maemo/maemo.cpp index 1fb7ad0691..da5b61916f 100644 --- a/backends/platform/maemo/maemo.cpp +++ b/backends/platform/maemo/maemo.cpp @@ -22,6 +22,8 @@ #if defined(MAEMO) +#define FORBIDDEN_SYMBOL_EXCEPTION_getenv + #include "common/scummsys.h" #include "common/config-manager.h" @@ -45,6 +47,8 @@ void OSystem_SDL_Maemo::initBackend() { ConfMan.set("vkeybdpath", DATA_PATH); + _maemoModel = MaemoModel(detectMaemoModel()); + // Call parent implementation of this method OSystem_POSIX::initBackend(); } @@ -92,6 +96,15 @@ void OSystem_SDL_Maemo::setWindowCaption(const char *caption) { setXWindowName(cap.c_str()); } +const MaemoModel OSystem_SDL_Maemo::detectMaemoModel() { + Common::String deviceHwId = Common::String(getenv("SCUMMVM_MAEMO_DEVICE")); + const MaemoModel *model; + for (model = maemoModels; model->hwId; model++) { + if (deviceHwId.equals(model->hwId)) + return *model; + } + return *model; +} #endif diff --git a/backends/platform/maemo/maemo.h b/backends/platform/maemo/maemo.h index a7f2ec35bb..e177000a16 100644 --- a/backends/platform/maemo/maemo.h +++ b/backends/platform/maemo/maemo.h @@ -26,6 +26,8 @@ #define PLATFORM_SDL_MAEMO_H #include "backends/platform/sdl/posix/posix.h" +#include "backends/platform/maemo/maemo-common.h" + class OSystem_SDL_Maemo : public OSystem_POSIX { public: @@ -36,10 +38,16 @@ public: virtual void fatalError(); virtual void setWindowCaption(const char *caption); + MaemoModel getMaemoModel() { return _maemoModel; } + private: virtual void setXWindowName(const char *caption); + const MaemoModel detectMaemoModel(); + MaemoModel _maemoModel; + }; -#endif -#endif +#endif // ifndef PLATFORM_SDL_MAEMO_H + +#endif // if defined(MAEMO) |