profilesservices/MediaFileList/Src/mediafiletest.cpp
branchRCL_3
changeset 53 8ee96d21d9bf
parent 51 8bda91a87a00
child 54 7e0eff37aedb
--- a/profilesservices/MediaFileList/Src/mediafiletest.cpp	Thu Aug 19 10:12:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2489 +0,0 @@
-/*
-* 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.
-*
-*/
-
-
-
-
-// INCLUDE FILES
-
-#include "mediafiletest.h"
-#include "mediafiledialog.h"
-#include "mediafilepreview.h"
-#include "mediafilelistdebug.h"
-
-#include <mediafilelist.rsg>
-
-#include <aknappui.h>  // for macro iAvkonAppUi
-#include <eikcapc.h>   // for CEikCaptionedControl
-#include <e32math.h>  // Math::FRand
-
-#include <bautils.h>  // bafl.lib
-#include <s32file.h>  // RFileReadStream
-
-
-
-#ifdef _DEBUG
-/******************************************************************************
- * class CMFDialogTest
- ******************************************************************************/
-
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::NewL
-//
-// -----------------------------------------------------------------------------
-CMFDialogTest* CMFDialogTest::NewL( CMediaFileDialog* aDialog )
-    {
-    CMFDialogTest* self = new (ELeave) CMFDialogTest( aDialog );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::CMFDialogTest
-// 
-// -----------------------------------------------------------------------------
-//
-CMFDialogTest::CMFDialogTest( CMediaFileDialog* aDialog )
-    {
-    iDlg = aDialog;
-    
-    iTestCounter = 0;
-    iBottomVisited = EFalse;
-    iDestroyedPtr = NULL;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Destructor
-//
-// ----------------------------------------------------------------------------
-//
-CMFDialogTest::~CMFDialogTest()
-    {
-    SetScreenSaverPeriod( iScreenSaverPeriod );
-    
-    delete iTestCaller;
-    delete iRandomNum;
-   
-    if ( iPopupNote )
-        {
-        iPopupNote->HideInfoPopupNote();
-        delete iPopupNote;
-        }
-
-    if ( iDestroyedPtr )
-        {
-        *iDestroyedPtr = ETrue;
-        iDestroyedPtr = NULL;
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::ConstructL()
-    {
-    const TInt KLongPeriod = 60*60*24; // 24 h in seconds
-    
-    iTestCaller = CMFActiveCaller::NewL( this );
-    iRandomNum = CRandomNum::NewL();
-   
-    iScreenSaverPeriod = ScreenSaverPeriodL();
-    SetScreenSaverPeriod( KLongPeriod );
-    
-    iPopupNote = CAknInfoPopupNoteController::NewL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::TestL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMFDialogTest::TestL( TInt /*aAttr*/ )
-    {
-    TInt index = 0;
-    CDesCArray *arr = new(ELeave) CDesCArrayFlat( 1 );
-    CleanupStack::PushL( arr );
-     
-    arr->AppendL(_L("random play"));
-    arr->AppendL(_L("test 1"));
-    arr->AppendL(_L("test 2"));
-
-    if ( !TMFDialogUtil::ShowListQueryL( _L("huu"), arr, &index ) )
-        {
-        CleanupStack::PopAndDestroy( arr );
-        return EFalse;
-        }
-    if ( index == 0 )
-        {
-        NextListItemL();
-        }
-    else if ( index == 1 )
-        {
-        Test1L( 0 );    
-        }
-    else if ( index == 2 )
-        {
-        Test2L( 0 );
-        }
-    else
-        {
-        }
-
-    CleanupStack::PopAndDestroy( arr );
-    return ETrue; 
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::Test1L
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::Test1L( TInt /*aAttr*/ )
-    {
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::Test2L
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::Test2L( TInt /*aAttr*/ )
-    {
-    TInt num10 = 0; TInt num11 = 0; TInt num12 = 0; 
-    TInt num13 = 0; TInt num14 = 0; TInt num15 = 0;
-    TInt num16 = 0; TInt num17 = 0; TInt num18 = 0;
-    TInt num19 = 0; TInt num20 = 0; TInt numOther = 0;
-    
-    for (TInt i=0; i<100000; i++)
-        {
-        TInt num = iRandomNum->Random( 10, 20 );
-        
-        if ( num == 10 )
-            {
-            num10++;
-            }
-        else if ( num == 11 )
-            {
-            num11++;
-            }
-        else if ( num == 12 )
-            {
-            num12++;
-            }
-        else if ( num == 13 )
-            {
-            num13++;
-            }
-        else if ( num == 14 )
-            {
-            num14++;
-            }
-        else if ( num == 15 )
-            {
-            num15++;
-            }
-        else if ( num == 16 )
-            {
-            num16++;
-            }
-        else if ( num == 17 )
-            {
-            num17++;
-            }
-        else if ( num == 18 )
-            {
-            num18++;
-            }
-        else if ( num == 19 )
-            {
-            num19++;
-            }
-        else if ( num == 20 )
-            {
-            num20++;
-            }
-        else
-            {
-            numOther++;
-            }
-      
-        }
-    
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::NextFolderL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::NextFolderL() 
-    {
-    const TInt KDelay = 2000;
-    
-    TBool destroyed = EFalse;
-    iDestroyedPtr = &destroyed;  // updated in this class destructor
-    
-    TInt currentFolder = iDlg->iState->CurrentFolder();
-    TInt currentIndex = iDlg->CurrentItemListIndex();
-    TInt folderId = iDlg->iState->FolderId( currentIndex );
-    
-    if ( currentFolder == EEFolderRoot )
-        {
-        // root folder
-        iBottomVisited = EFalse;
-        if ( iRandomNum->Match( 30 ) )
-            {
-            SimulateSearchEventL();  // search
-            }
-        else if ( folderId == EEFolderMusic || folderId == EEFolderTones ||
-             folderId == EEFolderRecordings || folderId == EEFolderVideos )
-            {
-            SimulateOpenEventL();  // go down    
-            }
-        else
-            {
-            iTestCaller->Start( ENextListItem, KDelay );
-            }
-        }
-    else if ( currentIndex == KErrNotFound )
-        {
-        // empty folder
-        SimulateBackEventL();  // go up
-        }
-    else if ( folderId == KErrNotFound )
-        {
-        // this folder has files, not subfolders
-        iBottomVisited = ETrue;
-        if ( iRandomNum->Match( 50 ) )
-            {
-            // stay in this folder and select a file
-            iTestCaller->Start( ENextListItem, KDelay );
-            return;
-            }
-        else
-            {
-            SimulateBackEventL();  // go up
-            }
-        }
-    else  // this folder has subfolders
-        {
-        TInt num = 15;
-        if ( !iBottomVisited )
-            {
-            num = 85;
-            }
-            
-        if ( iRandomNum->Match( num ) )
-            {
-            SimulateOpenEventL();  // go down 
-            }
-        else
-            {
-            SimulateBackEventL();  // go up
-            }
-        }
-    
-    // select listbox item after delay
-    if ( !destroyed )
-        {
-        iDestroyedPtr = NULL;
-        iTestCaller->Start( ENextListItem, KDelay );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::NextListItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::NextListItemL() 
-    {
-    const TInt KDelay = 250;
-    const TInt KLongDelay = 2000;
-    
-    TInt delay = KDelay;
-    
-    TInt currentIndex = iDlg->CurrentItemListIndex();
-    TInt folderId = iDlg->iState->FolderId( currentIndex );
-    
-    if ( folderId == KErrNotFound && currentIndex == 0 )
-        {
-        // this folder contain files - make delay longer to 
-        // allow first file preview
-        delay = KLongDelay;  
-        }
-        
-    TInt itemCount = iDlg->iListBox->Model()->NumberOfItems();
-    iNewIndex = iRandomNum->Random( itemCount - 1);
-   
-    if ( iDlg->iState->CurrentFolder() == EEFolderRoot )
-        {
-        if ( iRandomNum->Match( 50 ) )
-            {
-            iNewIndex = 2; // more chances to Music folder
-            }
-        }
-    
-    if ( iNewIndex == currentIndex )
-        {
-        iTestCaller->Start( ENextFolder, delay );
-        }
-    else
-        {
-        iTestCaller->Start( EMovePosition, delay );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::MovePositionL
-//
-// Scrolls listbox until selected item (iNewIndex) is found.
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::MovePositionL()
-    {
-    const TInt KMoveDelay = 150;
-    const TInt KThousand = 1000;
-   
-    TInt currentIndex = iDlg->CurrentItemListIndex();
-    TInt folderId = iDlg->iState->FolderId( currentIndex );
-    TInt itemCount = iDlg->iListBox->Model()->NumberOfItems();
-
-    TBool itemFound = EFalse;
-    if ( currentIndex == iNewIndex )
-        {
-        itemFound = ETrue; // listbox has scrolled to new item
-        }
-    if ( currentIndex == KErrNotFound )
-        {
-        itemFound = ETrue; // folder is empty
-        }
-    if ( iNewIndex >= itemCount )
-        {
-        itemFound = ETrue; // wrong folder
-        }
-
-    if ( itemFound )
-        {
-        // next listbox selection found
-        
-        TInt delay = KMoveDelay;
-        if ( folderId == KErrNotFound )
-            {
-            // selection is file - allow time for preview
-            delay = iRandomNum->Random( 3, 10 );
-            delay = delay * KThousand;
-            }
-        iTestCaller->Start( ENextFolder, delay );
-        return;
-        }
-    
-    // Simulate listbox item selection.
-    SimulateKeyEventL( EKeyUpArrow );
-    
-    //FLOG( _L("CMediaFileDialog::MovePositionL '%d/%d'"), currentIndex, iNewIndex );
-    
-    iTestCaller->Start( EMovePosition, KMoveDelay );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SimulateKeyEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SimulateKeyEventL( TInt aEvent )
-    {
-    TKeyEvent key;
-    key.iModifiers = 0;
-    key.iRepeats = 0;
-    key.iCode = aEvent;
-    key.iScanCode = aEvent;
-
-    //iListBox->SetCurrentItemIndexAndDraw( newIndex );
-    CCoeEnv::Static()->SimulateKeyEventL( key, EEventKey );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SimulateOpenEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SimulateOpenEventL()
-    {
-    TKeyEvent keyEvent;
-    keyEvent.iCode = EKeyDevice3;
-    keyEvent.iScanCode = EStdKeyDevice3;
-    keyEvent.iRepeats = 0;          
-    CCoeEnv::Static()->SimulateKeyEventL( keyEvent, EEventKey );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SimulateBackEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SimulateBackEventL()
-    {
-    TKeyEvent keyEvent;
-    keyEvent.iCode = EKeyDevice1;
-    keyEvent.iScanCode = EStdKeyDevice1;
-    keyEvent.iRepeats = 0;          
-    CCoeEnv::Static()->SimulateKeyEventL( keyEvent, EEventKey );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SimulateSearchEventL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SimulateSearchEventL()
-    {
-    // letter a 97/65
-    // letter b 98/66
-    
-    TKeyEvent keyEvent;
-    keyEvent.iCode = 97;
-    keyEvent.iScanCode = 65;
-    keyEvent.iRepeats = 0;          
-    CCoeEnv::Static()->SimulateKeyEventL( keyEvent, EEventKey );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SetScreenSaverPeriod
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SetScreenSaverPeriod( TInt aPeriod )
-    {
-    TRAP_IGNORE( SetScreenSaverPeriodL( aPeriod ) );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SetScreenSaverPeriodL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SetScreenSaverPeriodL( TInt aPeriod )
-    {
-    // from SettingsInternalCRKeys.h
-    const TUid KCRUidPersonalizationSettings = {0x101F877C};
-    const TUint32 KSettingsScreenSaverPeriod =  0x00000008;
-
-    CRepository* repository =
-                 CRepository::NewL( KCRUidPersonalizationSettings );
-    
-    // ignore error
-    repository->Set( KSettingsScreenSaverPeriod, aPeriod );
-    
-    delete repository;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::ScreenSaverPeriodL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMFDialogTest::ScreenSaverPeriodL()
-    {
-    // from SettingsInternalCRKeys.h
-    const TUid KCRUidPersonalizationSettings = {0x101F877C};
-    const TUint32 KSettingsScreenSaverPeriod =  0x00000008;
-
-    CRepository* repository =
-                 CRepository::NewL( KCRUidPersonalizationSettings );
-    
-    TInt period = 60; // 60 seconds
-    // ignore error
-    repository->Get( KSettingsScreenSaverPeriod, period );
-
-    delete repository;
-    
-    return period;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::HandleActiveCallL (from MMFActiveCallerObserver)
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::HandleActiveCallL( TInt aCallId )
-    {
-    if ( aCallId == ENextFolder )
-        {
-        //FLOG( _L("CMFDialogTest::HandleActiveCallL: ENextFolder") );
-        
-        TRAP_IGNORE( NextFolderL() );
-        iDestroyedPtr = NULL;
-        }
-    if ( aCallId == ENextListItem )
-        {
-        //FLOG( _L("CMFDialogTest::HandleActiveCallL: ENextListItem") );
-        NextListItemL();    
-        }
-
-    if ( aCallId == EMovePosition )
-        {
-        //FLOG( _L("CMFDialogTest::HandleActiveCallL: EMovePosition") );
-        
-        MovePositionL();    
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::SetTime
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::SetTime()
-    {
-    iTime = TimeBefore();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::PrintTimeL
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::PrintTimeL( const TDesC& aText )
-    {
-    TBuf<128> buf;
-    TInt milliSeconds = TimeAfter( iTime );
-    buf.Format( _L("%S %d ms"), &aText, milliSeconds );
-    
-    ShowPopupNoteL( buf );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::TimeBefore
-//
-// Function returns TTime of the current time (needed with function TimeAfter).
-// -----------------------------------------------------------------------------
-//
-TTime CMFDialogTest::TimeBefore()
-    {
-    TTime now;
-    now.UniversalTime();
-    return now;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::TimeAfter
-//
-// Function returns milliseconds passed since aBefore.
-// -----------------------------------------------------------------------------
-//
-TInt64 CMFDialogTest::TimeAfter( TTime aBefore )
-    {
-    TTime after;
-    after.UniversalTime();
-    TTimeIntervalMicroSeconds microSeconds=after.MicroSecondsFrom( aBefore ); 
-    TInt64 milliSeconds=microSeconds.Int64()/1000;
-    return milliSeconds;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMFDialogTest::ShowPopupNote
-//
-// -----------------------------------------------------------------------------
-//
-void CMFDialogTest::ShowPopupNoteL( const TDesC& aText ) 
-    {
-    const TInt KPopupDisplayTime = 3*1000;
-    const TInt KPopupDelayTime = 500;
-    
-    iPopupNote->SetTextL( aText );
-    iPopupNote->SetTimeDelayBeforeShow( KPopupDelayTime );
-    iPopupNote->SetTimePopupInView( KPopupDisplayTime );    
-    iPopupNote->ShowInfoPopupNote();    
-    }
-
-
-
-
-/******************************************************************************
- * class CRandomNum
- ******************************************************************************/
-
-
- 
-// -----------------------------------------------------------------------------
-// CRandomNum::NewLC
-// 
-// -----------------------------------------------------------------------------
-//
-CRandomNum* CRandomNum::NewLC()
-    {
-    CRandomNum* randomdata = new (ELeave) CRandomNum;
-    CleanupStack::PushL( randomdata );
-    return randomdata;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CRandomNum::NewL
-// 
-// -----------------------------------------------------------------------------
-//
-CRandomNum* CRandomNum::NewL()
-    {
-    CRandomNum* randomdata = new (ELeave) CRandomNum;
-    return randomdata;
-    }
-
-// -----------------------------------------------------------------------------
-// CRandomNum::CRandomNum
-// 
-// -----------------------------------------------------------------------------
-//
-CRandomNum::CRandomNum()
-    {
-    TTime now;
-    now.UniversalTime();
-    iSeed = now.Int64();
-    }
-
-// -----------------------------------------------------------------------------
-// CRandomNum::~CRandomNum
-// 
-// -----------------------------------------------------------------------------
-//
-CRandomNum::~CRandomNum()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CRandomNum::Random
-// 
-// Return random integer from 0 to aMax (including 0 and aMax).
-// -----------------------------------------------------------------------------
-//
-TInt CRandomNum::Random( TInt aMax )
-    {
-    TReal real = Math::FRand( iSeed ); // FRand updates iSeed
-    TReal real2 = real * ( aMax+1 );
-    TInt num = (TInt) real2;
-    return num;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CRandomNum::Random
-// 
-// Return random integer from aMin to aMax (including aMin and aMax).
-// -----------------------------------------------------------------------------
-//
-TInt CRandomNum::Random( TInt aMin, TInt aMax )
-    {
-    if ( aMin >= aMax )
-        {
-        return aMin;
-        }
-    
-    TInt range = aMax - aMin;
-    
-    TInt num = Random( range );
-    
-    return aMin + num;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CRandomNum::Match
-//
-// Return ETrue according to percentage parameter (eg. in case
-// aPercentage is 10 Match returns ETrue in 10% of the calls).
-// -----------------------------------------------------------------------------
-//
-TBool CRandomNum::Match( TInt aPercentage )
-    {
-    if ( aPercentage < 1 )
-        {
-        return EFalse;
-        }
-    
-    TInt num = Random( 99 ); // 0..99
-    num++; // 1..100
-
-    if ( num <= aPercentage )
-        {
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-
-
-
-
-
-/******************************************************************************
- * class CMediaFileDialog3
- ******************************************************************************/
-
-/*
-
-// -----------------------------------------------------------------------------
-// media file dialog resource (test code).
-// -----------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_media_file_dialog_3
-    {
-    //flags = EEikDialogFlagNoBackup | EEikDialogFlagFillAppClientRect;
-    flags=EEikDialogFlagWait | EEikDialogFlagFillAppClientRect | EEikDialogFlagNotifyEsc;
-    //buttons = R_AVKON_SOFTKEYS_OK_BACK__OK;
-    buttons = r_media_file_dialog_3_cba;
-
-    items=
-        {
-        DLG_LINE
-            {
-            type=EAknCtSingleGraphicListBox;
-            itemflags=EEikDlgItemTakesEnterKey | EEikDlgItemOfferAllHotKeys;
-            id=1;
-            control=LISTBOX
-                {
-                flags = EAknListBoxSelectionList;
-                };   
-            }
-        };
-    
-    }
-
-
-//------------------------------------------------------------------------------
-// Softkey resource
-//------------------------------------------------------------------------------
-//
-RESOURCE CBA r_media_file_dialog_3_cba
-    {
-    buttons =
-        {
-        CBA_BUTTON
-            {
-            id = EAknSoftkeyOptions;
-            txt = text_softkey_option;
-            },
-        CBA_BUTTON
-            {
-            id = EAknSoftkeyBack;
-            txt = text_softkey_back;
-            },
-        CBA_BUTTON
-            {
-            id = EAknSoftkeySelect;
-            txt = qtn_msk_select;
-            }
-        };
-    }
-
-RESOURCE MENU_BAR r_media_file_dialog_3_menu
-    {
-    titles= 
-        { 
-        MENU_TITLE 
-            { 
-            menu_pane=r_media_file_dialog_3_menu_pane;
-            }
-        };
-    }
-
-RESOURCE MENU_PANE r_media_file_dialog_3_menu_pane
-    {
-    items=
-        {
-        MENU_ITEM { command=EAknCmdOpen; txt=qtn_options_open; },
-        MENU_ITEM { command=EAknCmdHelp; txt=qtn_options_help; },
-        MENU_ITEM { command=EAknCmdExit; txt=qtn_options_exit; }        
-        };
-    }
-*/
-/*
- 
-// -----------------------------------------------------------------------------
-// CMediaFileDialog3::ShowDialogL
-// 
-// -----------------------------------------------------------------------------
-TBool CMediaFileDialog3::ShowDialogL()
-    {
-    CMediaFileDialog3* dlg = CMediaFileDialog3::NewL();
-    TBool ret = dlg->ExecuteLD( R_MEDIA_FILE_DIALOG_3 );
-
-    return ret;
-    }
-
-// ----------------------------------------------------------------------------
-// Destructor
-//
-// ----------------------------------------------------------------------------
-//
-CMediaFileDialog3::~CMediaFileDialog3()
-    {
-    delete iVideoPreviewHandler;
-    
-    if ( iAvkonAppUi )
-        {
-        iAvkonAppUi->RemoveFromStack( this );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileDialog3::CMediaFileDialog3
-// 
-// -----------------------------------------------------------------------------
-//
-CMediaFileDialog3::CMediaFileDialog3()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileDialog3::NewL
-//
-// -----------------------------------------------------------------------------
-CMediaFileDialog3* CMediaFileDialog3::NewL()
-    {
-    CMediaFileDialog3* self = new (ELeave) CMediaFileDialog3();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CMediaFileDialog3::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileDialog3::ConstructL()
-    {
-    FLOG( _L("CMediaFileDialog3::ConstructL START") );
-    
-    CAknDialog::ConstructL( R_MEDIA_FILE_DIALOG_3_MENU );
-
-    iVideoPreviewHandler = CMFVideoPreviewHandler::NewL();
-    
-    FLOG( _L("CMediaFileDialog3::ConstructL END") );
-    }
-
-// -----------------------------------------------------------------------------
-// CMediaFileDialog3::PreLayoutDynInitL
-// 
-// -----------------------------------------------------------------------------
-//
-void CMediaFileDialog3::PreLayoutDynInitL()
-    {
-    }
-
-//------------------------------------------------------------------------------
-// CMediaFileDialog3::OkToExitL
-//
-//------------------------------------------------------------------------------
-//
-TBool CMediaFileDialog3::OkToExitL(TInt aButtonId)
-    {
-    if ( aButtonId == EAknSoftkeyBack )
-        {
-        }
-
-    return CAknDialog::OkToExitL( aButtonId );
-    }
-
-
-
-//------------------------------------------------------------------------------
-// CMediaFileDialog3::ProcessCommandL
-//
-// Handle commands from menu.
-//------------------------------------------------------------------------------
-//
-void CMediaFileDialog3::ProcessCommandL(TInt aCommandId)
-    {
-    HideMenu();
-    
-    
-    switch (aCommandId)
-        {
-        case EAknCmdHelp:
-            {
-            break;
-            }
-            
-        case EAknCmdOpen:
-            {
-            CEikCaptionedControl *ctrl = Line( 1 );  // dialog has one line (listbox) with id 1
-            iVideoPreviewHandler->SetAttrL( TMFDialogUtil::EAttrDrawingWindow, (ctrl->iControl->DrawableWindow()) );
-                
-            iVideoPreviewHandler->SetAttrL( TMFDialogUtil::EAttrFileName, _L("C:\\Data\\Videos\\video2.mp4") );
-            iVideoPreviewHandler->PlayL(); 
-
-            break;
-            }
- 
-        case EAknCmdExit:
-        case EEikCmdExit:
-            {
-            // close dialog and exit calling application
-            iAvkonAppUi->ProcessCommandL( EAknCmdExit );
-            break;
-            }
-
-        default:            
-            break;
-        }
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::QueryAllL (obsolete)
-// 
-// Finds all tones, music, videos or recordings.
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::QueryAllL( TInt aAttr )
-    {
-    if ( !iSessionOpen )
-        {
-        User::Leave( KErrDisconnected );
-        }
-
-    if ( aAttr != EAttrMusic && aAttr != EAttrVideo )
-        {
-        User::Leave( KErrNotSupported );
-        }
-        
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    CMdEObjectDef& musicObjectDef = defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
-    CMdEObjectDef& videoObjectDef = defNS.GetObjectDefL( MdeConstants::Video::KVideoObject );
-   
-    delete iQuery;
-    iQuery = NULL;
-
-    if ( aAttr == EAttrVideo )
-        {
-        iQuery = iSession->NewObjectQueryL( defNS, videoObjectDef, this );
-        iQueryType = EQueryVideo;
-        }
-    else
-        {
-        iQuery = iSession->NewObjectQueryL( defNS, musicObjectDef, this );
-        iQueryType = EQueryAudio;
-        }
-    
-    
-    // set attributes that are included in query result  
-    CMdEPropertyDef& namePropertyDef = PropertyDefL( EAttrSongName );
-    iQuery->AddPropertyFilterL( &namePropertyDef );
-    
-    // define sort order
-    iQuery->AppendOrderRuleL( TMdEOrderRule( namePropertyDef, ESortAscending ) );
-    
-    iQuery->SetResultMode( EQueryResultModeItem );
-    
-    iQuery->FindL();
-    
-    iQueryType = EQueryAudio;
-    }
-*/
-
-
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::QueryArtistUnknownL (obsolete)
-// 
-// Finds all songs for aArtist that miss album property.
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::QueryArtistUnknownL( const TDesC& aArtist )
-    {
-    if ( !iSessionOpen )
-        {
-        return;
-        }
-
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    CMdEObjectDef& objectDef = defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
-
-    iQueryType = EQueryAudio;
-    
-    delete iQuery;
-    iQuery = NULL;
-    iQuery = iSession->NewObjectQueryL( defNS, objectDef, this );
-    
-    iQuery->SetResultMode( EQueryResultModeItem );
-    
-    CMdEPropertyDef& artistPropertyDef = PropertyDefL( EAttrArtist );
-    CMdEPropertyDef& namePropertyDef = PropertyDefL( EAttrSongName );
-    CMdEPropertyDef& albumPropertyDef = PropertyDefL( EAttrAlbum );
-    
-    
-    CMdELogicCondition& conditions = iQuery->Conditions();
-    
-    // add root condition: get all songs by aArtist
-    conditions.AddPropertyConditionL( artistPropertyDef, 
-                                      ETextPropertyConditionCompareEquals,
-                                      aArtist );
-                                      
-    // set attributes that are included in query result  
-    iQuery->AppendOrderRuleL( TMdEOrderRule( namePropertyDef, ESortAscending ) );
-    iQuery->AddPropertyFilterL( &namePropertyDef );
-    iQuery->AddPropertyFilterL( &artistPropertyDef );
-    
-    
-    // add other condition: get songs that do not have album attribute
-    CMdELogicCondition& albumCondition = 
-        conditions.AddLogicConditionL( ELogicConditionOperatorAnd );
-    albumCondition.AddPropertyConditionL( albumPropertyDef );
-    albumCondition.SetNegate( ETrue );
-
-    iQuery->FindL();
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler2::QueryAlbumsL (obsolete)
-// 
-// Finds all albums for aArtist.
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::QueryAlbumsL( const TDesC& aArtist )
-    {
-    if ( !iSessionOpen )
-        {
-        return;
-        }
-
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    CMdEObjectDef& objectDef = defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
-
-    iQueryType = EQueryAudio;
-    
-    delete iQuery;
-    iQuery = NULL;
-    iQuery = iSession->NewObjectQueryL( defNS, objectDef, this );
-    
-    iQuery->SetResultMode( EQueryResultModeDistinctValues );
-    
-    CMdEPropertyDef& propertyDef = PropertyDefL( EAttrAlbum );
-    
-    // distinct query requires exactly one property filter
-    CMdELogicCondition& conditions = iQuery->Conditions();
-    conditions.AddPropertyConditionL( propertyDef );
-    iQuery->AppendOrderRuleL( TMdEOrderRule( propertyDef, ESortAscending ) );
-    iQuery->AddPropertyFilterL( &propertyDef );
-    
-    CMdEPropertyDef& propertyDef2 = PropertyDefL( EAttrArtist );
-    conditions.AddPropertyConditionL( propertyDef2, 
-                            ETextPropertyConditionCompareEquals, aArtist );
-        
-    iQuery->FindL();
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::QueryArtistAlbumL (obsolete)
-// 
-// Finds songs for aArtist/aAlbum.
-// -----------------------------------------------------------------------------
-//
-
-/*
-void CMediaFileHandler::QueryArtistAlbumL( const TDesC& aArtist, const TDesC& aAlbum )
-    {
-    if ( !iSessionOpen )
-        {
-        return;
-        }
-    
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    CMdEObjectDef& objectDef = defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
-
-    iQueryType = EQueryAudio;
-
-    delete iQuery;
-    iQuery = NULL;
-    iQuery = iSession->NewObjectQueryL( defNS, objectDef, this );
-    
-    iQuery->SetResultMode( EQueryResultModeItem );
-    
-    CMdEPropertyDef& artistDef = PropertyDefL( EAttrArtist );
-    CMdEPropertyDef& albumDef = PropertyDefL( EAttrAlbum );
-    CMdEPropertyDef& nameDef = PropertyDefL( EAttrSongName );
-    
-    CMdELogicCondition& conditions = iQuery->Conditions();
-    
-    conditions.AddPropertyConditionL( artistDef, 
-                            ETextPropertyConditionCompareEquals, aArtist );
-
-    conditions.AddPropertyConditionL( albumDef, 
-                            ETextPropertyConditionCompareEquals, aAlbum );
-        
-    iQuery->AppendOrderRuleL( TMdEOrderRule( nameDef, ESortAscending ) );
-    iQuery->AddPropertyFilterL( &nameDef );
-   
-    
-    User::Leave(KErrNoMemory);
-    iQuery->FindL();
-    
-    
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::QueryL (test code)
-// 
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::QueryL( TInt aAttr )
-    {
-    if ( aAttr != EAttrArtist && aAttr != EAttrAlbum &&
-         aAttr != EAttrGenre && aAttr != EAttrComposer )
-        {
-        User::Leave( KErrNotSupported );
-        }
-   
-
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    CMdEObjectDef& objectDef = defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
-    iQuery = iSession->NewObjectQueryL( defNS, objectDef, this );
-    
-    
-    RArray<TItemId> itemIds;
-    itemIds.Append( 22 );
-    itemIds.Append( 5 );
-    itemIds.Append( 18 );
-    //itemLogicCondition->AddObjectConditionL(itemIds);
-            
-    CMdELogicCondition& conditions = iQuery->Conditions();
-    conditions.AddObjectConditionL( itemIds );
-    iQuery->SetResultMode( EQueryResultModeItem );
-    
-    itemIds.Close();
-    
-    iQuery->FindL();
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::QueryL (test code)
-// 
-// -----------------------------------------------------------------------------
-//
-
-/*
-void CMediaFileHandler::QueryL()
-    {
-    if ( !iSession )
-        {
-        User::Leave( KErrSessionClosed );
-        }
-   
-    delete iQuery;
-    iQuery = NULL;
-    
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    
-    CMdEObjectDef& objectDef = defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
-    iQuery = iSession->NewObjectQueryL( defNS, objectDef, this );
-    iQuery->SetResultMode( EQueryResultModeId );
-    iQuery->FindL();
-    
-    
-    CMdELogicCondition& conditions = iQuery->Conditions();
-    
-    //conditions.AddPropertyConditionL(composerPropertyDef, 
-    //CMdETextPropertyCondition::ECompareEquals, text);
-
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::HandleQueryCompletedOneL
-// 
-// -----------------------------------------------------------------------------
-//
-
-/*
-void CMediaFileHandler::HandleQueryCompletedOneL( CMdEQuery& aQuery, 
-                                                  TInt aError )
-    {
-    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
-    
-    CMdEObjectDef& objectDef      = defNS.GetObjectDefL( 
-                                    MdeConstants::Object::KBaseObject );
-    CMdEObjectDef& mediaObjectDef = defNS.GetObjectDefL( 
-                                    MdeConstants::MediaObject::KMediaObject );
-    CMdEObjectDef& audioObjectDef = defNS.GetObjectDefL( 
-                                    MdeConstants::Audio::KAudioObject );
-    
-    
-    CMdEPropertyDef& songPropertyDef   = objectDef.GetPropertyDefL( 
-                                         MdeConstants::Object::KTitleProperty );
-    CMdEPropertyDef& artistPropertyDef = mediaObjectDef.GetPropertyDefL( 
-                                         MdeConstants::MediaObject::KArtistProperty );
-    CMdEPropertyDef& albumPropertyDef  = audioObjectDef.GetPropertyDefL( 
-                                         MdeConstants::Audio::KAlbumProperty );
-    CMdEPropertyDef& genrePropertyDef  = mediaObjectDef.GetPropertyDefL( 
-                                         MdeConstants::MediaObject::KGenreProperty );
-
-    CMdEProperty* property = NULL;
-    
-    const RArray<TItemId>& arr = iQuery->ResultIds();
-    
-    TBuf<256> buf;
-    TInt count = arr.Count();
-    for ( TInt i=0; i<count; i++ )
-        {
-        TItemId id = arr[i];
-        CMdEObject* object = iSession->GetFullObjectL( id );
-        CleanupStack::PushL( object );
-        
-        buf = object->Uri();
-        TInt propertyCount = object->PropertyCount();
-        for ( TInt j=0; j<propertyCount; j++ )
-            {
-            CMdEProperty& pr = object->PropertyL( j );
-            const CMdEPropertyDef& prDef = pr.Def();
-            buf.Append(_L(" "));
-            buf.Append(prDef.Name());
-            }
-        TMFDialogUtil::ShowInformationQueryL( buf );
-        
-        CMdEPropertyDef& tmpDef = object->Def().GetPropertyDefL( MdeConstants::MediaObject::KArtistProperty );
-        TInt ret = object->Property( tmpDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            buf = property->TextValueL();    
-            }
-
-        
-        ret = object->Property( songPropertyDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            buf = property->TextValueL();    
-            }
-
-        ret = object->Property( artistPropertyDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            buf = property->TextValueL();    
-            }
-        
-        ret = object->Property( albumPropertyDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            buf = property->TextValueL();    
-            }
-            
-        ret = object->Property( genrePropertyDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            buf = property->TextValueL();    
-            }
-        
-
-        CleanupStack::PopAndDestroy( object );
-        }
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::HandleQueryCompletedTwoL
-// 
-// -----------------------------------------------------------------------------
-//
-
-/*
-void CMediaFileHandler::HandleQueryCompletedTwoL( CMdEQuery& aQuery,
-                                                  TInt aError )
-    {
-    TBuf<256> buf;
-    
-    TInt count = iQuery->Count();
-    for ( TInt i=0; i<count; i++ )
-        {
-        buf = iQuery->ResultDistinctValue( i );
-       
-        CMdEObject& object = iQuery->Result( i );
-        
-        buf = object.Uri();
-        TInt propertyCount = object.PropertyCount();
-        for ( TInt j=0; j<propertyCount; j++ )
-            {
-            CMdEProperty& pr = object.PropertyL( j );
-            const CMdEPropertyDef& prDef = pr.Def();
-            buf.Append(_L(" "));
-            buf.Append(prDef.Name());
-            }
-        TMFDialogUtil::ShowInformationQueryL( buf );
-        
-        CMdEProperty* property = NULL;
-        CMdEPropertyDef& propDef = object.Def().GetPropertyDefL( MdeConstants::Audio::KAlbumProperty );
-        TInt ret = object.Property( propDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            buf = property->TextValueL();    
-            }
-        }
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::ResultCount
-// 
-// -----------------------------------------------------------------------------
-//
-
-/*
-TInt CMediaFileHandler::ResultCount()
-    {
-    if ( iQueryType == EQueryRomFile )
-        {
-        return iRomFileList.Count();
-        }
-         
-    if ( iQueryType == ESearchVideo )
-        {
-        return iSearchList->Count();
-        }
-
-    if ( !iQuery || !iQueryReady || !iSessionOpen )
-        {
-        return 0;
-        }
-        
-    TInt count = 0;
-    TQueryResultMode resultMode = iQuery->ResultMode();
-    
-    if ( resultMode == EQueryResultModeDistinctValues ||
-         resultMode == EQueryResultModeItem ||
-         resultMode == EQueryResultModeCount )
-        {
-        count = iQuery->Count();
-        }
-    else if ( resultMode == EQueryResultModeId )
-        {
-        count = iQuery->Count();
-        const RArray<TItemId>& arr = iQuery->ResultIds();
-        count = arr.Count();
-        }
-    
-    return count;
-    }
-*/    
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::GetRecentFileAttribute
-// 
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::GetRecentFileAttribute( TInt aIndex, TInt aAttr, TDes& aValue )
-    {
-    TInt count = iRecentList->Count();
-    
-    __ASSERT_ALWAYS( aIndex >= 0 && aIndex < count, Panic( KErrGeneral ) );
-    
-    if ( aAttr == EAttrFullName )
-        {
-        StrCopy( aValue, iRecentList->FileName( aIndex ) );
-        }
-    else if ( aAttr == EAttrSongName || aAttr == EAttrFileName )
-        {
-        TParsePtrC parse( iRecentList->FileName( aIndex ) );
-        StrCopy( aValue, parse.Name() );
-        }
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::RecentFileAttribute
-// 
-// -----------------------------------------------------------------------------
-//
-/*
-TInt CMediaFileHandler::RecentFileAttribute( TInt aIndex, TInt aAttr )
-    {
-    TInt count = iRecentList->Count();
-    __ASSERT_ALWAYS( aIndex >= 0 && aIndex < count, Panic( KErrGeneral ) );
-    
-    TInt ret = KErrNotFound;
-    
-    if ( aAttr == EAttrMediaType )
-        {
-        ret = EAttrMusic;
-        }
-    if ( aAttr == EAttrStorageType )
-        {
-        ret = EPhoneMemory;
-        }
-
-    return ret;
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::Attribute
-// 
-// -----------------------------------------------------------------------------
-//
-/*
-TInt CMediaFileHandler::Attribute( TInt aIndex, TInt aAttr )
-    {
-    if ( iQueryType == EQueryRomFile )
-        {
-        return RomFileAttribute( aIndex, aAttr );
-        }
-    if ( iQueryType == ESearchVideo )
-         {
-         return iSearchList->Attribute( aIndex, aAttr );
-         }
-  
-    if ( aAttr == EAttrMediaType )
-        {
-        if ( iQueryType == EQueryVideo )
-            {
-            return EAttrVideo;
-            }
-        else
-            {
-            return EAttrMusic;
-            }
-        }
-    else if ( aAttr == EAttrStorageType )
-         {
-         TInt ret = CMediaFileHandler::EPhoneMemory;
-
-         if ( !iQuery || !iQueryReady || !iSessionOpen )
-              {
-              return ret;
-              }
-         TQueryResultMode resultMode = iQuery->ResultMode();
-         if ( resultMode != EQueryResultModeItem )
-             {
-             return ret;
-             }
-         
-         CMdEObject& object = iQuery->Result( aIndex );
-         if ( iDriveUtil->IsMemoryCard( object.Uri() ) )
-             {
-             ret = CMediaFileHandler::EMemoryCard;
-             }
-         else if ( iDriveUtil->IsMassStorage( object.Uri() ) )
-             {
-             ret = CMediaFileHandler::EMassStorage;
-             }
-         return ret;
-         }
-    
-    else if ( aAttr == EAttrMediaFileId )
-          {
-          if ( !iQuery || !iQueryReady || !iSessionOpen )
-              {
-              return KErrNotFound;
-              }
-          CMdEObject& object = iQuery->Result( aIndex );
-          return object.Id();
-          }
-
-    return KErrNotFound;
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::GetAttributeL
-// 
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::GetAttributeL( TInt aIndex, TInt aAttr, TDes& aValue )
-    {
-    aValue = KNullDesC;
-    
-    if ( iQueryType == EQueryRomFile )
-        {
-        GetRomFileAttribute( aIndex, aAttr, aValue );
-        return;
-        }
-    if ( iQueryType == ESearchVideo )
-        {
-        if ( iSessionOpen )
-            {
-            iSearchList->SetSession( iSession );
-            }
-        else
-            {
-            iSearchList->SetSession( NULL );
-            }
-        iSearchList->GetAttributeL( aIndex, aAttr, aValue );
-        return;
-        }
-    
-
-    if ( !iQuery || !iQueryReady || !iSessionOpen )
-        {
-        return;
-        }
-
-    TInt count = ResultCount();
-    __ASSERT_ALWAYS( aIndex >= 0 && aIndex < count, Panic( KErrGeneral ) );
-    
-    TQueryResultMode resultMode = iQuery->ResultMode();
-    
-    if ( resultMode == EQueryResultModeDistinctValues )
-        {
-        TPtrC ptr = iQuery->ResultDistinctValue( aIndex );
-        StrCopy( aValue, ptr );
-        }
-
-    if ( resultMode == EQueryResultModeItem )
-        {
-        CMdEObject& object = iQuery->Result( aIndex );
-        
-        if ( aAttr == EAttrFullName )
-            {
-            StrCopy( aValue, object.Uri() );
-            return;
-            }
-        
-        CMdEPropertyDef& propDef = PropertyDefL( aAttr );
-        CMdEProperty* property = NULL;
-        TInt ret = object.Property( propDef, property, 0 );
-        if ( ret != KErrNotFound )
-            {
-            StrCopy( aValue, property->TextValueL() );
-            }
-        else if ( aAttr == EAttrSongName || aAttr == EAttrFileName)
-            {
-            TParsePtrC parse( object.Uri() );
-            StrCopy( aValue, parse.Name() );
-            }
-        }
-    }
-*/    
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::UpdateRecentListL
-//
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::UpdateRecentListL()
-    {
-    if ( !iSessionOpen )
-        {
-        return;
-        }
-    
-    TInt count = iRecentList->Count();
-    
-    for ( TInt i=0; i<count; i++ )
-        {
-        TItemId id = iRecentList->Id( i );
-        CMdEObject* object = NULL;
-        
-        TInt err = KErrNone;
-        TRAP( err, object = iSession->GetFullObjectL( id ) );
-        if ( err != KErrNone || !object )
-            {
-            iRecentList->SetPresent( EFalse, i );
-            }
-        else
-            {
-            CleanupStack::PushL( object );
-            iRecentList->SetFileNameL( object->Uri(), i );
-            CleanupStack::PopAndDestroy( object );
-            }        
-        }
-        
-    iRecentList->Clean();
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::StoreRecentFileL
-//
-// -----------------------------------------------------------------------------
-//
-/*
-void CMediaFileHandler::StoreRecentFileL( TInt aIndex )
-    {
-    if ( iQueryType == EQueryRomFile )
-        {
-        return;  // tones not part of recent files
-        }
-    
-    if ( iQueryType == EQueryRecentFile )
-        {
-        TInt64 id = iRecentList->Id( aIndex );
-        iRecentList->AddItemL( id );
-        return;
-        }
-        
-    if ( !iQuery || !iQueryReady || !iSessionOpen )
-        {
-        return;
-        }
-
-    TQueryResultMode resultMode = iQuery->ResultMode();
-    if ( resultMode == EQueryResultModeItem )
-        {
-        CMdEObject& object = iQuery->Result( aIndex );
-        TItemId id = object.Id();
-        iRecentList->AddItemL( id );
-        }
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::HandleQueryCompletedL
-//
-// -----------------------------------------------------------------------------
-//
-
-/*
-void CMediaFileHandler::HandleQueryCompletedL( CMdEQuery& aQuery, TInt aError )
-    {
-    iQueryReady = ETrue;
-    
-    if ( !iQuery )
-        {
-        iObserver->HandleMFEventL( MMediaFileHandlerObserver::EError, KErrCancel );
-        return;  // query has been canceled
-        }
-    
-    if ( aError != KErrNone )
-        {
-        iObserver->HandleMFEventL( MMediaFileHandlerObserver::EError, aError );
-        return;
-        }
-    
-    TQueryResultMode resultMode = iQuery->ResultMode();
-    
-    if ( resultMode == EQueryResultModeDistinctValues )
-        {
-        iObserver->HandleMFEventL( MMediaFileHandlerObserver::EQueryComplete, aError );
-        }
-    else if ( resultMode == EQueryResultModeId )
-        {
-        // const RArray<TItemId>& arr = iQuery->ResultIds();
-        // CopyArrayL( iResultArray, arr );
-        //
-        // copy this arr into member iResultIds and perform full search
-        // for the whole set or a partial search if result set is very large
-        // partial search indexes could be in another member iPartialResultdIds
-        // observer gets notified after the first partial search
-        
-        iObserver->HandleMFEventL( MMediaFileHandlerObserver::EError, KErrNotSupported );
-        }
-    else if ( resultMode == EQueryResultModeCount )
-        {
-        iObserver->HandleMFEventL( MMediaFileHandlerObserver::EUnknownQueryComplete, aError );
-        }
-    else if ( resultMode == EQueryResultModeItem )
-        {
-        if ( iQueryType == ESearchAudio )
-            {
-            iSearchList->Reset();
-            iSearchList->TakeResultL( iQuery, EAttrMusic );
-            SearchVideoL( iSearchText );
-            }
-        else if ( iQueryType == ESearchVideo )
-            {
-            iSearchList->TakeResultL( iQuery, EAttrVideo );
-            iSearchList->Sort();
-            iObserver->HandleMFEventL( MMediaFileHandlerObserver::EQueryComplete, aError );
-            }
-        else
-            {
-            iObserver->HandleMFEventL( MMediaFileHandlerObserver::EQueryComplete, aError );
-            }
-        }
-    else
-        {
-        iObserver->HandleMFEventL( MMediaFileHandlerObserver::EError, KErrNotSupported );
-        }
-    }
-*/
-
-
-/*
-    //private:
-        //void ReadDirectoryL( const TDesC& aDirectory );
-        //void ReadRomFilesL();
-        //void SortRomFiles();
-        //static TInt CompareFileName( const TFileName& aFirst, const TFileName& aSecond );
-        //static TInt CompareStr( const TFileName& aFirst, const TFileName& aSecond );
-  
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::ReadRomFilesL (to be removed)
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHandler::ReadRomFilesL()
-    {
-    _LIT( KFormat, "%S%S" );
-    
-    iRomFileList.Reset();
-    
-    TFileName fileName;
-    fileName.Format( KFormat, &PathInfo::RomRootPath(), &PathInfo::SoundsPath() );
-    TRAP_IGNORE( ReadDirectoryL( fileName ) );
-    
-    fileName.Format( KFormat, &PathInfo::RomRootPath(), &PathInfo::DigitalSoundsPath() );
-    TRAP_IGNORE( ReadDirectoryL( fileName ) );
-
-    fileName.Format( KFormat, &PathInfo::RomRootPath(), &PathInfo::SimpleSoundsPath() );
-    TRAP_IGNORE( ReadDirectoryL( fileName ) );
-
-    TInt count = iRomFileList.Count();
-    for ( TInt i=0; i<count; i++ )
-        {
-        fileName = iRomFileList[i];
-        }
-        
-    SortRomFiles();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::ReadDirectoryL (to be removed)
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHandler::ReadDirectoryL( const TDesC& aDirectory )
-    {
-    _LIT( KFormat, "%S%S" );
-    
-    TBuf<128> buf( aDirectory );
-    
-    CDir* dir = NULL;
-    RFs fsSession;
-    User::LeaveIfError( fsSession.Connect() ); 
-    CleanupClosePushL( fsSession );
-    
-    if ( !BaflUtils::FolderExists( fsSession, aDirectory ) )
-        {
-        User::Leave( KErrNotFound );
-        }
-    
-    TInt err = fsSession.GetDir( aDirectory, KEntryAttNormal, ESortByName, dir );
-    User::LeaveIfError( err );
-    CleanupStack::PushL( dir );
-    
-    TInt count = dir->Count();
-    
-    for ( TInt i=0; i<count; i++ )
-        {
-        const TEntry item = (*dir)[i];
-        TFileName fullName;
-        fullName.Format( KFormat, &aDirectory, &item.iName );
-        iRomFileList.Append( fullName );
-        }
-
-    CleanupStack::PopAndDestroy( dir );
-
-    CleanupStack::PopAndDestroy(); // fsSession
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::SortRomFiles (to be removed)
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHandler::SortRomFiles()
-    {
-    iRomFileList.Sort(TLinearOrder<TFileName>(CMediaFileHandler::CompareFileName));
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::QueryRomFilesL (to be removed)
-// 
-// Finds all tones from rom directories.
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHandler::QueryRomFilesL( TInt aAttr )
-    {
-    QueryEmptyL();
-    
-    iQueryType = EQueryRomFile;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::GetRomFileAttribute (to be removed)
-// 
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHandler::GetRomFileAttribute( TInt aIndex, TInt aAttr, TDes& aValue )
-    {
-    TInt count = iRomFileList.Count();
-    
-    __ASSERT_ALWAYS( aIndex >= 0 && aIndex < count, Panic( KErrGeneral ) );
-    
-    if ( aAttr == EAttrFullName )
-        {
-        StrCopy( aValue, iRomFileList[aIndex] );
-        }
-    else if ( aAttr == EAttrSongName || aAttr == EAttrFileName )
-        {
-        TParsePtrC parse( iRomFileList[aIndex] );
-        StrCopy( aValue, parse.Name() );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::RomFileAttribute (to be removed)
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CMediaFileHandler::RomFileAttribute( TInt aIndex, TInt aAttr )
-    {
-    TInt count = iRomFileList.Count();
-    
-    __ASSERT_ALWAYS( aIndex >= 0 && aIndex < count, Panic( KErrGeneral ) );
-    
-    TInt ret = KErrNotFound;
-    if ( aAttr == EAttrMediaType )
-        {
-        ret = EMediaTypeTone;
-        }
-    else if ( aAttr == EAttrStorageType )
-        {
-        ret = EPhoneMemory;
-        }
-    
-    return ret;
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::CompareFileName
-//
-// -----------------------------------------------------------------------------
-//
-/*
-TInt CMediaFileHandler::CompareFileName(const TFileName& aFirst, const TFileName& aSecond)
-    {
-    TParsePtrC parseFirst( aFirst );
-    TParsePtrC parseSecond( aSecond );
-    
-    return parseFirst.Name().Compare( parseSecond.Name() );
-    }
-*/
-
-// -----------------------------------------------------------------------------
-// CMediaFileHandler::CompareStr
-//
-// -----------------------------------------------------------------------------
-//
-/*
-TInt CMediaFileHandler::CompareStr(const TFileName& aFirst, const TFileName& aSecond)
-    {
-    return aFirst.Compare( aSecond );
-    }
-*/
-
-
-
-/*******************************************************************************
- * class TMediaFileHistoryItem
- *******************************************************************************/
-
-/*
-// -----------------------------------------------------------------------------
-// TMediaFileHistoryItem::Id
-//
-// -----------------------------------------------------------------------------
-//
-TInt64 TMediaFileHistoryItem::Id()
-    {
-    return iId;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TMediaFileHistoryItem::SetId
-//
-// -----------------------------------------------------------------------------
-//
-void TMediaFileHistoryItem::SetId( TInt64 aId )
-    {
-    iId = aId;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TMediaFileHistoryItem::Time
-//
-// -----------------------------------------------------------------------------
-//
-TTime TMediaFileHistoryItem::Time()
-    {
-    return iTime;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TMediaFileHistoryItem::SetTime
-//
-// -----------------------------------------------------------------------------
-//
-void TMediaFileHistoryItem::SetTime( TTime aTime )
-    {
-    iTime = aTime;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TMediaFileHistoryItem::InternalizeL
-//
-// -----------------------------------------------------------------------------
-//
-void TMediaFileHistoryItem::InternalizeL( RReadStream& aStream )
-    {
-    aStream >> iId;
-
-    if ( iId < 0 )
-        {
-        User::Leave( KErrCorrupt );
-        }
-
-    TInt64 temp = 0;
-    aStream >> temp;
-    
-    if ( temp <= 0 )
-        {
-        User::Leave( KErrCorrupt );
-        }
-    TTime time( temp );
-    iTime = time;
-    
-    iPresent = ETrue;
-    iFullName = KNullDesC;
-    }
-
-
-// -----------------------------------------------------------------------------
-// TMediaFileHistoryItem::ExternalizeL
-//
-// -----------------------------------------------------------------------------
-//
-void TMediaFileHistoryItem::ExternalizeL( RWriteStream& aStream )
-    {
-    aStream << iId;
-    aStream << iTime.Int64();
-    }
-*/
-
-
-
-/*******************************************************************************
- * class CMediaFileHistory
- *******************************************************************************/
-
-/*
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CMediaFileHistory* CMediaFileHistory::NewL()
-    {
-    CMediaFileHistory* self = new (ELeave) CMediaFileHistory();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop(self );
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::CMediaFileHistory
-// 
-// -----------------------------------------------------------------------------
-//
-CMediaFileHistory::CMediaFileHistory()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::ConstructL
-//
-// Note: Sessionpath in emulator is '\epoc32\winscw\c\private\2000F85A'
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::ConstructL()
-    {
-    _LIT( KHistoryFile, "MediaFileHistory" );
-    const TInt KHistoryDrive = EDriveC;
-    
-    User::LeaveIfError( iFsSession.Connect() );
-    User::LeaveIfError( iFsSession.SetSessionToPrivate( KHistoryDrive ) );
-    
-    User::LeaveIfError( iFsSession.SessionPath( iPath ) );
-    BaflUtils::EnsurePathExistsL( iFsSession, iPath );
-    iPath.Append( KHistoryFile );
-    
-    TInt err = KErrNone;
-    TRAP( err, ReadHistoryL() );
-    
-    if ( err != KErrNone && err != KErrNoMemory )
-        {
-        // history file was just created or it is corrupted
-        iList.Reset();
-        }
-    } 
-
-
-// ----------------------------------------------------------------------------
-// Destructor
-//
-// ----------------------------------------------------------------------------
-//
-CMediaFileHistory::~CMediaFileHistory()
-    {
-    Clean();
-    
-    TRAP_IGNORE( WriteHistoryL() );
-    
-    iList.Close();
-    iFsSession.Close();
-    }
-    
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::AddItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::AddItemL( TInt64 aId )
-    {
-    TMediaFileHistoryItem item;
-    
-    TTime t;
-    t.UniversalTime();
-    
-    item.SetTime( t );
-    item.SetId( aId );
-    
-    AddItemL( item );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::Count
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMediaFileHistory::Count()
-    {
-    return iList.Count();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::Reset
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::Reset()
-    {
-    iList.Reset();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::SetFileNameL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::SetFileNameL( const TDesC& aFullName, TInt aIndex )
-    {
-    if ( aIndex < 0 || aIndex >= iList.Count() )
-        {
-        TMFDialogUtil::Panic( KErrArgument );
-        }
-        
-    TMediaFileHistoryItem& item = iList[aIndex];
-    TMFDialogUtil::StrCopy( item.iFullName, aFullName );
-    }
-    
-    
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::FileName
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMediaFileHistory::FileName( TInt aIndex )
-    {
-    if ( aIndex < 0 || aIndex >= iList.Count() )
-        {
-        TMFDialogUtil::Panic( KErrArgument );
-        }
-        
-    TMediaFileHistoryItem& item = iList[aIndex];
-    return item.iFullName;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::SetPresent
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::SetPresent( TBool aPresent, TInt aIndex )
-    {
-    if ( aIndex < 0 || aIndex >= iList.Count() )
-        {
-        TMFDialogUtil::Panic( KErrArgument );
-        }
-        
-    TMediaFileHistoryItem& item = iList[aIndex];
-    item.iPresent = aPresent;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::Id
-//
-// -----------------------------------------------------------------------------
-//
-TInt64 CMediaFileHistory::Id( TInt aIndex )
-    {
-    if ( aIndex < 0 || aIndex >= iList.Count() )
-        {
-        TMFDialogUtil::Panic( KErrArgument );
-        }
-        
-    TMediaFileHistoryItem& item = iList[aIndex];
-    return item.iId;
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::InternalizeL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::InternalizeL( RReadStream& aStream )
-    {
-    TInt count = aStream.ReadInt32L();
-    if ( count < 0 || count > KMaxHistoryItemCount )
-        {
-        User::Leave( KErrCorrupt );
-        }
-    
-    for ( TInt i=0; i<count; i++ )
-        {
-        TMediaFileHistoryItem item;
-        TInt err = KErrNone;
-        TRAP( err, item.InternalizeL( aStream ) );
-        if ( err != KErrNone )
-            {
-            User::Leave( err );
-            }
-        iList.AppendL( item );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::ExternalizeL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::ExternalizeL(RWriteStream& aStream)
-    {
-    TInt count = iList.Count();
-    aStream.WriteInt32L( count );
-        
-    for ( TInt i=0; i<count; i++ )
-        {
-        TMediaFileHistoryItem& item = iList[i];
-        item.ExternalizeL( aStream );
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::ReadHistoryL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::ReadHistoryL()
-    {
-    RFile file;
-    TInt err = file.Open( iFsSession, iPath, EFileRead );
-    if ( err == KErrNotFound )
-        {
-        err = file.Create( iFsSession, iPath, EFileRead );
-        }
-    User::LeaveIfError( err );
-        
-    CleanupClosePushL( file );
-    
-    RFileReadStream stream( file, 0 );
-    CleanupClosePushL( stream );
-
-    TRAP( err, InternalizeL( stream ) );
-    User::LeaveIfError( err );
-
-    CleanupStack::PopAndDestroy( &stream );
-    CleanupStack::PopAndDestroy( &file );
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::WriteHistoryL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::WriteHistoryL()
-    {
-    RFile file;
-    User::LeaveIfError( file.Replace( iFsSession, iPath, EFileWrite ) );
-    CleanupClosePushL( file );
-    
-    RFileWriteStream stream( file, 0 );
-    CleanupClosePushL( stream );
-
-    TInt err = KErrNone;
-    TRAP( err, ExternalizeL( stream ) );
-    
-    if ( err == KErrNone )
-        {
-        TRAP( err, stream.CommitL() );
-        User::LeaveIfError( err );
-        }
-
-    CleanupStack::PopAndDestroy( &stream );
-    CleanupStack::PopAndDestroy( &file );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::Clean
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::Clean()
-    {
-    Sort();
-    
-    for (;;)
-        {
-        TInt ret = RemoveOldItem();
-        if ( !ret )
-            {
-            break;
-            }
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::RemoveOldItem
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMediaFileHistory::RemoveOldItem()
-    {
-    TInt count = iList.Count();
-    
-    for ( TInt i=0; i<count; i++ )
-        {
-        TMediaFileHistoryItem& item= iList[i];
-        if ( !item.iPresent )
-            {
-            iList.Remove( i );
-            return ETrue;
-            }
-        }
-    
-    count = iList.Count();
-    
-    if ( count > KMaxHistoryItemCount )
-        {
-        iList.Remove( count - 1 );
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::AddItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::AddItemL( TMediaFileHistoryItem aItem )
-    {
-    TInt index = ItemIndex( aItem.iId );
-    if ( index != KErrNotFound )
-        {
-        iList.Remove(index);
-        }
-
-    User::LeaveIfError( iList.Append( aItem ) );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::ItemIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMediaFileHistory::ItemIndex( TInt aId )
-    {
-    TInt count = iList.Count();
-    
-    for (TInt i=0; i<count; i++)
-        {
-        TMediaFileHistoryItem& item= iList[i];
-        if ( item.iId == aId )
-            {
-            return i;
-            }
-        }
-        
-    return KErrNotFound;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::Item
-//
-// -----------------------------------------------------------------------------
-//
-TMediaFileHistoryItem& CMediaFileHistory::Item( TInt aIndex )
-    {
-    if ( aIndex < 0 || aIndex >= iList.Count() )
-        {
-        TMFDialogUtil::Panic( KErrArgument );
-        }
-
-    return iList[aIndex];
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::Sort
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::Sort()
-    {
-    iList.Sort( TLinearOrder<TMediaFileHistoryItem>(CMediaFileHistory::CompareItems) );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::CompareItems
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMediaFileHistory::CompareItems( const TMediaFileHistoryItem& aFirst, 
-                                      const TMediaFileHistoryItem& aSecond )
-    {
-    if ( aFirst.iTime > aSecond.iTime )
-        {
-        return -1;
-        }
-    else if ( aFirst.iTime < aSecond.iTime )
-        {
-        return 1;
-        }
-    return 0;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMediaFileHistory::GetTimeText
-//
-// -----------------------------------------------------------------------------
-//
-void CMediaFileHistory::GetTimeText( TDes& aText, TTime aTime )
-    {
-    _LIT( KFormat, "%02d.%02d.%04d %02d:%02d:%02d" );
-    
-    TDateTime dt = aTime.DateTime();
-    aText.Format( KFormat, dt.Day()+1, dt.Month()+1, dt.Year(),  dt.Hour(), dt.Minute(), dt.Second() );
-    }
-
-*/
-
-#endif  // #ifdef _DEBUG
-
-//  End of File  
-