--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/screengrabber/src/enginewrapper.cpp Mon May 03 12:32:02 2010 +0300
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include <eikenv.h>
+#include <APGTASK.H>
+#include <hbdeviceprogressdialog.h>
+#include "enginewrapper.h"
+
+#include "settingsview.h"
+#include "sgengine.h"
+#include "mainview.h"
+#include "notifications.h"
+
+
+// ---------------------------------------------------------------------------
+
+EngineWrapper::EngineWrapper()
+: iSGEngine(0), iProgressNote(0)
+{
+}
+
+// ---------------------------------------------------------------------------
+
+EngineWrapper::~EngineWrapper()
+{
+ if (iSGEngine) {
+ iSGEngine->DeActivateModelL();
+ delete iSGEngine;
+ }
+ if(iProgressNote){
+ delete iProgressNote;
+ }
+}
+
+// ---------------------------------------------------------------------------
+
+bool EngineWrapper::init()
+{
+ TRAPD(error, iSGEngine = SGEngine::NewL(this));
+
+
+ if (error == KErrNone) {
+ TRAP(error, iSGEngine->ActivateModelL());
+ }
+
+ if (error != KErrNone) {
+ return false;
+ }
+ else {
+ return true;
+ }
+
+}
+
+// ---------------------------------------------------------------------------
+
+GrabSettings EngineWrapper::getGrabSettings()
+{
+ TGrabSettings tSettings = iSGEngine->GrabSettings();
+ GrabSettings settings;
+
+ // Convert TGrabSettings to GrabSettings
+ settings.mCaptureMode = tSettings.iCaptureMode;
+
+ // Single image settings
+ settings.mSingleCaptureHotkey = tSettings.iSingleCaptureHotkey;
+ settings.mSingleCaptureImageFormat = tSettings.iSingleCaptureImageFormat;
+ settings.mSingleCaptureMemoryInUseMultiDrive = tSettings.iSingleCaptureMemoryInUseMultiDrive;
+ settings.mSingleCaptureFileName = QString((QChar*)tSettings.iSingleCaptureFileName.Ptr(),tSettings.iSingleCaptureFileName.Length());
+
+ //Seguantial image settings
+ settings.mSequantialCaptureDelay = tSettings.iSequantialCaptureDelay;
+ settings.mSequantialCaptureHotkey = tSettings.iSequantialCaptureHotkey;
+ settings.mSequantialCaptureImageFormat = tSettings.iSequantialCaptureImageFormat;
+ settings.mSequantialCaptureMemoryInUseMultiDrive = tSettings.iSequantialCaptureMemoryInUseMultiDrive;
+ settings.mSequantialCaptureDelay = tSettings.iSequantialCaptureDelay;
+ //convert TFilename to QString
+ settings.mSequantialCaptureFileName = QString((QChar*)tSettings.iSequantialCaptureFileName.Ptr(),tSettings.iSequantialCaptureFileName.Length());
+
+
+ // Video settings
+ settings.mVideoCaptureHotkey = tSettings.iVideoCaptureHotkey;
+ settings.mVideoCaptureVideoFormat = tSettings.iVideoCaptureVideoFormat;
+ settings.mVideoCaptureMemoryInUseMultiDrive = tSettings.iVideoCaptureMemoryInUseMultiDrive;
+ //convert TFilename to QString
+ settings.mVideoCaptureFileName = QString((QChar*)tSettings.iVideoCaptureFileName.Ptr(),tSettings.iVideoCaptureFileName.Length());
+
+ return settings;
+}
+
+// ---------------------------------------------------------------------------
+
+bool EngineWrapper::saveSettings(const GrabSettings& settings)
+{
+ TGrabSettings tSettings;
+ // Convert GrabSettings to TGrabSettings
+ tSettings.iCaptureMode = settings.mCaptureMode;
+
+ tSettings.iSingleCaptureHotkey = settings.mSingleCaptureHotkey;
+ tSettings.iSingleCaptureImageFormat = settings.mSingleCaptureImageFormat;
+ tSettings.iSingleCaptureMemoryInUseMultiDrive = settings.mSingleCaptureMemoryInUseMultiDrive;
+ //convert TFilename to QString
+ tSettings.iSingleCaptureFileName = TFileName(settings.mSingleCaptureFileName.utf16());
+ tSettings.iSequantialCaptureDelay = settings.mSequantialCaptureDelay;
+ tSettings.iSequantialCaptureHotkey = settings.mSequantialCaptureHotkey;
+ tSettings.iSequantialCaptureImageFormat = settings.mSequantialCaptureImageFormat;
+ tSettings.iSequantialCaptureMemoryInUseMultiDrive = settings.mSequantialCaptureMemoryInUseMultiDrive;
+ tSettings.iSequantialCaptureDelay = settings.mSequantialCaptureDelay;
+ //convert TFilename to QString
+ tSettings.iSequantialCaptureFileName = TFileName(settings.mSequantialCaptureFileName.utf16());
+
+ tSettings.iVideoCaptureHotkey = settings.mVideoCaptureHotkey;
+ tSettings.iVideoCaptureVideoFormat = settings.mVideoCaptureVideoFormat;
+ tSettings.iVideoCaptureMemoryInUseMultiDrive = settings.mVideoCaptureMemoryInUseMultiDrive;
+ //convert TFilename to QString
+ tSettings.iVideoCaptureFileName = TFileName(settings.mVideoCaptureFileName.utf16());
+ TRAPD(error, iSGEngine->SaveSettingsL(tSettings));
+
+ if (error == KErrNone) {
+ TRAP(error, iSGEngine->ActivateCaptureKeysL(true));
+ }
+
+ if (error == KErrNone) {
+ return true;
+ }
+ else {
+ return false;
+ }
+
+
+}
+
+// ---------------------------------------------------------------------------
+
+
+void EngineWrapper::ShowImageCapturedNote()
+{
+ Notifications::imageCaptured();
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::ShowErrorMessage(const TDesC16& aErrorMessage)
+{
+ QString errorMessage((QChar*)aErrorMessage.Ptr(),aErrorMessage.Length());
+ Notifications::error(errorMessage);
+
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::sendUIToBackground()
+{
+ CCoeEnv* coeEnv = CCoeEnv::Static();
+ TApaTask selfTask(coeEnv->WsSession());
+ selfTask.SetWgId(coeEnv->RootWin().Identifier());
+ selfTask.SendToBackground();
+}
+
+// ---------------------------------------------------------------------------
+
+
+#if defined(HB_QT_S60_EVENT_FILTER)
+bool EngineWrapper::handleCaptureCommands(const TWsEvent* aEvent)
+#else
+bool EngineWrapper::handleCaptureCommands(const QSymbianEvent *aEvent)
+#endif
+{
+ TBool retVal = ETrue;
+ TRAPD(errorCode, retVal = iSGEngine->HandleCaptureCommandsL(aEvent));
+ if (errorCode != KErrNone) {
+ Notifications::error("Error occured when capturing screen.");
+ }
+
+ return convertTBoolToBool(retVal);
+
+}
+
+// ---------------------------------------------------------------------------
+
+bool EngineWrapper::convertTBoolToBool(TBool value)
+{
+ if (value) {
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::ShowSequantialImagesCapturedNote(TInt amount)
+{
+ Notifications::sequantialImagesCaptured(amount);
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::ShowVideoCapturedNote()
+{
+ Notifications::videoCaptured();
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::ShowProgressBar(int max)
+{
+ iProgressNote = Notifications::showProgressBar(max);
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::IncrementProgressbarValue()
+{
+ iProgressNote->setProgressValue(iProgressNote->progressValue() + 1);
+}
+
+// ---------------------------------------------------------------------------
+
+void EngineWrapper::CloseProgressbar()
+{
+ delete iProgressNote;
+ iProgressNote = 0;
+}
+
+void EngineWrapper::EnableRcpOfFoc(TBool aState)
+{
+ iSGEngine->EnableRcpOfFoc(aState);
+}
+
+void EngineWrapper::LoadSettings(void)
+{
+ iSGEngine->LoadSettingsL();
+}
+
+// ---------------------------------------------------------------------------