--- a/screengrabber/inc/SGModel.h Fri Apr 16 14:59:17 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-/*
-* Copyright (c) 2009 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:
-*
-*/
-
-
-
-#ifndef __SCREENGRABBER_MODEL_H__
-#define __SCREENGRABBER_MODEL_H__
-
-#include <e32std.h>
-#include <e32base.h>
-
-#include <CAknMemorySelectionSettingPage.h>
-#include <eikenv.h>
-#include <mdaaudiotoneplayer.h>
-#include <bamdesca.h>
-#include "SGStd.h"
-
-
-#define TRANSPARENCY_INDEX 30
-#define TRANSPARENCY_ALTERNATIVE_INDEX 24
-
-
-// setting keys (do not change uids of existing keys to maintain compatibility to older versions!)
-const TUid KSGSettingCaptureMode = { 0x00 };
-
-const TUid KSGSettingSingleCaptureHotkey = { 0x01 };
-const TUid KSGSettingSingleCaptureImageFormat = { 0x02 };
-const TUid KSGSettingSingleCaptureMemoryInUse = { 0x03 };
-const TUid KSGSettingSingleCaptureMemoryInUseMultiDrive = { 0x04 };
-const TUid KSGSettingSingleCaptureFileName = { 0x05 };
-
-const TUid KSGSettingSequantialCaptureHotkey = { 0x06 };
-const TUid KSGSettingSequantialCaptureImageFormat = { 0x07 };
-const TUid KSGSettingSequantialCaptureDelay = { 0x08 };
-const TUid KSGSettingSequantialCaptureMemoryInUse = { 0x09 };
-const TUid KSGSettingSequantialCaptureMemoryInUseMultiDrive = { 0x0A };
-const TUid KSGSettingSequantialCaptureFileName = { 0x0B };
-
-const TUid KSGSettingVideoCaptureHotkey = { 0x0C };
-const TUid KSGSettingVideoCaptureVideoFormat = { 0x0D };
-const TUid KSGSettingVideoCaptureMemoryInUse = { 0x0E };
-const TUid KSGSettingVideoCaptureMemoryInUseMultiDrive = { 0x0F };
-const TUid KSGSettingVideoCaptureFileName = { 0x10 };
-
-
-class CImageEncoder;
-class CFbsBitmap;
-class CFrameImageData;
-class CAknGlobalConfirmationQuery;
-class CSavedQuery;
-class CDictionaryFileStore;
-class CMGXFileManager;
-class CMGXFileNotificationHandler;
-
-class TGrabSettings
- {
-public:
- TInt iCaptureMode;
-
- TInt iSingleCaptureHotkey;
- TInt iSingleCaptureImageFormat;
- CAknMemorySelectionSettingPage::TMemory iSingleCaptureMemoryInUse;
- TDriveNumber iSingleCaptureMemoryInUseMultiDrive;
- TFileName iSingleCaptureFileName;
-
- TInt iSequantialCaptureHotkey;
- TInt iSequantialCaptureImageFormat;
- TInt iSequantialCaptureDelay;
- CAknMemorySelectionSettingPage::TMemory iSequantialCaptureMemoryInUse;
- TDriveNumber iSequantialCaptureMemoryInUseMultiDrive;
- TFileName iSequantialCaptureFileName;
-
- TInt iVideoCaptureHotkey;
- TInt iVideoCaptureVideoFormat;
- CAknMemorySelectionSettingPage::TMemory iVideoCaptureMemoryInUse;
- TDriveNumber iVideoCaptureMemoryInUseMultiDrive;
- TFileName iVideoCaptureFileName;
- };
-
-
-class TVideoFrame
- {
-public:
- TUint iWidth;
- TUint iHeight;
- TUint iXPos;
- TUint iYPos;
- TUint iDelay; // 100 = 1 sec
- TBool iEnableTransparency;
- TBool iFillsWholeScreen;
- TFileName iFileStorePath;
- };
-
-
-typedef CArrayFixSeg<TVideoFrame> CVideoFrameArray;
-
-
-class CScreenGrabberModel : public CActive, public MMdaAudioToneObserver
- {
- // active object states
- enum TState
- {
- EIdle = 0, // do nothing
- EEncodingImage, // ICL encoding of an image
- ESequenceDelay, // waiting till next capture
- ECancelCapturing, // asking to cancel capturing
- ENextVideoFrame, // get next frame for video
- ECancelVideoCapturing, // asking to cancel video capturing
- EQueryDelay // waiting till to remove query
- };
-
-public:
- static CScreenGrabberModel* NewL();
- ~CScreenGrabberModel();
- void ActivateModelL();
- void DeActivateModelL();
-
-private:
- CScreenGrabberModel();
- void ConstructL();
-
- void RunL();
- void DoCancel();
-
- void LoadSettingsL();
- void TakeScreenShotAndSaveL();
- void CaptureFrameForVideoL();
- void SaveVideoL(TInt aErr);
- void CapturingFinishedL(TInt aErr);
- void CleanTemporaryFilesL();
- TBool MemoryCardOK();
- TBool DriveOK(TDriveNumber aNumber);
- void PlayBeepSound();
- void LoadDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, TInt& aValue);
- void LoadDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, TDes& aValue);
- void SaveDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, const TInt& aValue);
- void SaveDFSValueL(CDictionaryFileStore* aDicFS, const TUid& aUid, const TDes& aValue);
- TInt UpdateFileToGallery(const TDesC& aFullPath);
-
-public:
- inline TGrabSettings GrabSettings() { return iGrabSettings; }
- void SaveSettingsL(TGrabSettings aGrabSettings);
- void ActivateCaptureKeysL(TBool aChangeKey=EFalse);
- void CancelCapturing();
- TBool HandleCaptureCommandsL(const TWsEvent& aEvent);
- void MatoPrepareComplete(TInt aError);
- void MatoPlayComplete(TInt aError);
-
-private:
- CMdaAudioToneUtility* iMdaAudioToneUtility; // a tone player
- TGrabSettings iGrabSettings; // a simple class to store the settings used in the screen capture
- CEikonEnv* iEnv; // pointer to our eikon environment
- RWindowGroup iRootWin; // application's window group
- TInt iCapturedKey; // a handle to the key which is captured
- TInt iCapturedKeyUnD; // a handle to the key which is captured, up and down
- TInt iCapturedKeyHash; // a handle to the hash key which is captured
- TInt iCapturedKeyHashUnD; // a handle to the hash key which is captured, up and down
- CImageEncoder* iImageEncoder; // engine from ICL to do the image conversion
- CFbsBitmap* iPreviouslyCapturedBitmap; // a previously captured bitmap
- TState iState; // state of this active object
- TFileName iSaveFileName; // target filename of the taken screen shot
- CFrameImageData* iFrameImageData; // frame and image block data needed by ICL
- CSavedQuery* iSavedQuery; // a class to display global queries
- RTimer iTimer; // a timer for async delays
- TBool iCapturingInProgress; // boolean to check if capturing is in progress
- TBool iStopCapturing; // boolean to specify if to ask capturing
- TUint iNumberOfTakenShots; // a number of the taken screen shots in the sequantial mode
- TUint iCurrentFrameNumber; // a number of taken frames in video mode
- TTime iPreviousFrameTaken; // time when the last frame was taken
- TSize iVideoDimensions; // dimension of the video
- TSize iPreviousFrameScreenDimension; // dimension of the screen in previous frame
- CVideoFrameArray* iVideoFrameArray; // the frames of the video
- TBool iHashKeyCapturingActivated; // captures hash key is activated
- TBool iHashKeyDown; // stores state if hash key is currently down
- TBool iGalleryUpdaterSupported; // specifies if it is possible to update the file to gallery
- TBool iGalleryUpdaterInitialized; // specifies if gallery updater has been initialized or not
- RLibrary iGalleryUpdaterDLL; // specifies pointer to Media Gallery File API DLL
- CMGXFileManager* iMGXFileManager; // Media Gallery FileManager instance
- };
-
-
-class CSavedQuery : public CActive
- {
-public:
- static CSavedQuery* NewL();
- ~CSavedQuery();
- void DisplayL(const TDesC &aText, TBool aDisplayErrorNote=EFalse);
-
-private:
- void DoCancel();
- void RunL();
-
-private:
- CSavedQuery();
- void ConstructL();
- void DisplayWithGraphicsL(const TDesC &aText, TBool aDisplayErrorNote);
- void DisplayWithoutGraphicsL(const TDesC &aText);
-
-private:
- CAknGlobalConfirmationQuery* iGlobalConfirmationQuery;
- TBool iVisible;
- };
-
-
-// these classes have been copied Media Gallery File API
-
-class MGXFileManagerFactory
- {
- public:
- static CMGXFileManager* NewFileManagerL( RFs& aFs );
- static
- CMGXFileNotificationHandler* NewFileNotificationHandlerL();
- };
-
-class CMGXFileManager : public CBase
- {
- public:
- virtual TBool SuccessFileNameL( const TDesC& aFileName,
- TDriveNumber aDrive ) = 0;
- virtual void UpdateL() = 0;
- virtual void UpdateL( const TDesC& aFullPath ) = 0;
- virtual void UpdateL( const TDesC& aOldName,
- const TDesC& aNewName ) = 0;
- virtual void UpdateL( const MDesCArray& aFileNameArray ) = 0;
- };
-
-
-#endif // __SCREENGRABBER_MODEL_H__
\ No newline at end of file