diff -r 8ee96d21d9bf -r 7e0eff37aedb profilesservices/MediaFileList/Inc/mediafiletest.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/profilesservices/MediaFileList/Inc/mediafiletest.h Wed Sep 01 12:20:44 2010 +0100 @@ -0,0 +1,275 @@ +/* +* Copyright (c) 2007 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: Class create for testing. +* +*/ + + +#ifndef MEDIAFILETEST_H_ +#define MEDIAFILETEST_H_ + + +// INCLUDES +#include "mediafiledialogutils.h" + +#include +#include +#include // Math::FRand +#include // CAknInfoPopupNoteController + +// for metadata engine +#include + + + +#ifdef _DEBUG + +// CLASS DECLARATION +class CMFVideoPreviewHandler; +class CMediaFileDialog; +class CMdeTest; + + +/** +* CRandomNum +* +* CRandomNum is used for generating random numbers. +*/ +NONSHARABLE_CLASS (CRandomNum) : public CBase + { + public: + static CRandomNum* NewLC(); + static CRandomNum* NewL(); + ~CRandomNum(); + private: + CRandomNum(); + + public: + TInt Random(TInt aMax); + TInt Random( TInt aMin, TInt aMax ); + TBool Match(TInt aPercentage); + + private: + TInt64 iSeed; + }; + + + +/** +* CMFDialogTest +*/ +NONSHARABLE_CLASS (CMFDialogTest) : public CBase, + public MMFActiveCallerObserver + { + enum TNextStep + { + ENextFolder = 0, + ENextListItem = 1, + EMovePosition = 2 + }; + + public:// Constructors and destructor + + static CMFDialogTest* NewL( CMediaFileDialog* aDialog ); + virtual ~CMFDialogTest(); + + private: + + CMFDialogTest( CMediaFileDialog* aDialog ); + void ConstructL(); + + public: + + TBool TestL( TInt aAttr ); + void Test1L( TInt aAttr ); + void Test2L( TInt aAttr ); + void PrintTimeL( const TDesC& aText ); + void SetTime(); + + private: + void NextListItemL(); + void MovePositionL(); + void NextFolderL(); + + private: + void SimulateKeyEventL( TInt aEvent ); + void SimulateOpenEventL(); + void SimulateBackEventL(); + void SimulateSearchEventL(); + + private: // from MMFActiveCallerObserver + void HandleActiveCallL( TInt aCallId ); + + private: + void SetScreenSaverPeriod( TInt aPeriod ); + void SetScreenSaverPeriodL( TInt aPeriod ); + TInt ScreenSaverPeriodL(); + private: + static TInt64 TimeAfter( TTime aBefore ); + static TTime TimeBefore(); + private: + void ShowPopupNoteL( const TDesC& aText ); + + + public: + TTime iTime; + TInt iTestCounter; + TInt iBottomVisited; + TInt* iDestroyedPtr; + private: + CMediaFileDialog* iDlg; + CRandomNum* iRandomNum; + CMFActiveCaller* iTestCaller; + TInt iNewIndex; + TInt iScreenSaverPeriod; + + // popup note + CAknInfoPopupNoteController* iPopupNote; + + }; + + + + +/** +* CMediaFileDialog3 +* +*/ +/* +NONSHARABLE_CLASS (CMediaFileDialog3) : public CAknDialog + { + + public:// Constructors and destructor + static CMediaFileDialog3* NewL(); + virtual ~CMediaFileDialog3(); + + public: + static TBool ShowDialogL(); + private: + + CMediaFileDialog3(); + + void ConstructL(); + + private: + void PreLayoutDynInitL(); + TBool OkToExitL( TInt aButtonId ); + void ProcessCommandL(TInt aCommandId); + + private: + CMFVideoPreviewHandler* iVideoPreviewHandler; + }; + +*/ + + +/** +* TMediaFileHistoryItem +* +*/ +NONSHARABLE_CLASS (TMediaFileHistoryItem) + { + public: + void SetId( TInt64 aId ); + TInt64 Id(); + void SetTime( TTime aTime ); + TTime Time(); + void InternalizeL( RReadStream& aStream ); + void ExternalizeL( RWriteStream& aStream ); + + + public: + // media file id + TInt64 iId; + + // time stamp + TTime iTime; + + // media file name and path + TFileName iFullName; + + // does item exist + TBool iPresent; + }; + + + +/** +* CMediaFileHistory +* +* CMediaFileHistory is used for storing list of mediafile ids +* (and time stapms). These ids refer to most recently selected +* ringing tones. Notice that each media file list client has its +* own most recent list (in its private folder). +* +*/ +NONSHARABLE_CLASS (CMediaFileHistory) : public CBase + { + static const TInt KMaxHistoryItemCount = 3; + + public: + static CMediaFileHistory* NewL(); + virtual ~CMediaFileHistory(); + + private: + CMediaFileHistory(); + void ConstructL(); + + public: // public api + void AddItemL( TInt64 aId ); + TInt Count(); + void Sort(); + void Clean(); + void SetPresent( TBool aPresent, TInt aIndex ); + void SetFileNameL( const TDesC& aFullName, TInt aIndex ); + const TDesC& FileName( TInt aIndex ); + TInt64 Id( TInt aIndex ); + + private: + void WriteHistoryL(); + void ReadHistoryL(); + TInt ItemIndex( TInt aId ); + void AddItemL( TMediaFileHistoryItem aItem ); + TMediaFileHistoryItem& Item( TInt index ); + + TBool RemoveOldItem(); + void Reset(); + + private: + void InternalizeL( RReadStream& aStream ); + void ExternalizeL( RWriteStream& aStream ); + + + private: + static TInt CompareItems( const TMediaFileHistoryItem& aFirst, + const TMediaFileHistoryItem& aSecond ); + + private: + static void GetTimeText( TDes& aText, TTime aTime ); + + private: + // list of query items + RArray iList; + + // file server session + RFs iFsSession; + + // history file path + TFileName iPath; + }; + + +#endif // #ifdef _DEBUG + +#endif /*MEDIAFILETEST_H_*/