/* 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) #include "common/scummsys.h" #include "backends/events/maemosdl/maemosdl-events.h" bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) { // List of special N810 keys: // SDLK_F4 -> menu // SDLK_F5 -> home // SDLK_F6 -> fullscreen // SDLK_F7 -> zoom + // SDLK_F8 -> zoom - switch (ev.type) { case SDL_KEYDOWN:{ if (ev.key.keysym.sym == SDLK_F4) { event.type = Common::EVENT_MAINMENU; return true; } else if (ev.key.keysym.sym == SDLK_F6) { // handled in keyup } else if (ev.key.keysym.sym == SDLK_F7) { event.type = Common::EVENT_RBUTTONDOWN; processMouseEvent(event, _km.x, _km.y); return true; } else if (ev.key.keysym.sym == SDLK_F8) { event.type = Common::EVENT_MBUTTONDOWN; processMouseEvent(event, _km.x, _km.y); return true; } break; } case SDL_KEYUP: { if (ev.key.keysym.sym == SDLK_F4) { event.type = Common::EVENT_MAINMENU; return true; } else if (ev.key.keysym.sym == SDLK_F6) { bool currentState = ((OSystem_SDL *)g_system)->getGraphicsManager()->getFeatureState(OSystem::kFeatureFullscreenMode); g_system->beginGFXTransaction(); ((OSystem_SDL *)g_system)->getGraphicsManager()->setFeatureState(OSystem::kFeatureFullscreenMode, !currentState); g_system->endGFXTransaction(); return true; } else if (ev.key.keysym.sym == SDLK_F7) { event.type = Common::EVENT_RBUTTONUP; processMouseEvent(event, _km.x, _km.y); return true; } else if (ev.key.keysym.sym == SDLK_F8) { event.type = Common::EVENT_MBUTTONUP; processMouseEvent(event, _km.x, _km.y); return true; } break; } } // Invoke parent implementation of this method return SdlEventSource::remapKey(ev, event); } #endif