diff options
Diffstat (limited to 'backends/platform/tizen/application.cpp')
-rw-r--r-- | backends/platform/tizen/application.cpp | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/backends/platform/tizen/application.cpp b/backends/platform/tizen/application.cpp new file mode 100644 index 0000000000..8236ebef67 --- /dev/null +++ b/backends/platform/tizen/application.cpp @@ -0,0 +1,140 @@ +/* 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. + * + */ + +#include "engines/engine.h" + +#include "backends/platform/tizen/form.h" +#include "backends/platform/tizen/system.h" +#include "backends/platform/tizen/application.h" + +Application *TizenScummVM::createInstance() { + logEntered(); + return new TizenScummVM(); +} + +TizenScummVM::TizenScummVM() : _appForm(0) { + logEntered(); +} + +TizenScummVM::~TizenScummVM() { + logEntered(); + if (g_system) { + TizenSystem *system = (TizenSystem *)g_system; + system->destroyBackend(); + delete system; + g_system = 0; + } +} + +bool TizenScummVM::OnAppInitialized(void) { + logEntered(); + _appForm->SetOrientation(Tizen::Ui::ORIENTATION_LANDSCAPE); + return true; +} + +bool TizenScummVM::OnAppWillTerminate(void) { + logEntered(); + return true; +} + +bool TizenScummVM::OnAppInitializing(AppRegistry &appRegistry) { + logEntered(); + _appForm = systemStart(this); + return (_appForm != NULL); +} + +bool TizenScummVM::OnAppTerminating(AppRegistry &appRegistry, bool forcedTermination) { + logEntered(); + return true; +} + +void TizenScummVM::OnUserEventReceivedN(RequestId requestId, IList *args) { + MessageBox messageBox; + int modalResult; + + logEntered(); + + if (requestId == USER_MESSAGE_EXIT) { + // normal program termination + Terminate(); + } else if (requestId == USER_MESSAGE_EXIT_ERR) { + // assertion failure termination + String *message = NULL; + if (args) { + message = (String *)args->GetAt(0); + } + if (!message) { + message = new String("Unknown error"); + } + messageBox.Construct(L"Oops...", *message, MSGBOX_STYLE_OK); + messageBox.ShowAndWait(modalResult); + Terminate(); + } else if (requestId == USER_MESSAGE_EXIT_ERR_CONFIG) { + // the config file was corrupted + messageBox.Construct(L"Config file corrupted", + L"Settings have been reverted, please restart.", MSGBOX_STYLE_OK); + messageBox.ShowAndWait(modalResult); + Terminate(); + } +} + +void TizenScummVM::OnForeground(void) { + logEntered(); + pauseGame(false); +} + +void TizenScummVM::OnBackground(void) { + logEntered(); + pauseGame(true); +} + +void TizenScummVM::OnBatteryLevelChanged(BatteryLevel batteryLevel) { + logEntered(); +} + +void TizenScummVM::OnLowMemory(void) { + logEntered(); +} + +void TizenScummVM::OnScreenOn(void) { + logEntered(); +} + +void TizenScummVM::OnScreenOff(void) { + logEntered(); +} + +void TizenScummVM::OnScreenBrightnessChanged(int brightness) { + logEntered(); +} + +void TizenScummVM::pauseGame(bool pause) { + if (_appForm) { + if (pause && g_engine && !g_engine->isPaused()) { + _appForm->pushKey(Common::KEYCODE_SPACE); + } + + if (g_system) { + ((TizenSystem *)g_system)->setMute(pause); + } + } +} |