mpx/tsrc/public/basic/collectiontest/src/collectionbrowser.cpp
author hgs
Tue, 21 Sep 2010 11:25:55 -0500
changeset 62 b276843a15ba
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
62
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  MpxCollectionTest test module.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// INCLUDE FILES
hgs
parents:
diff changeset
    19
#include <mpxcollectionutility.h>
hgs
parents:
diff changeset
    20
#include <mpxcollectionpath.h>
hgs
parents:
diff changeset
    21
#include <mpxcollectionplaylist.h>
hgs
parents:
diff changeset
    22
#include <mpxplaybackframeworkdefs.h>
hgs
parents:
diff changeset
    23
#include <mpxcollectionmessage.h>
hgs
parents:
diff changeset
    24
#include <mpxcollectionframeworkdefs.h>
hgs
parents:
diff changeset
    25
#include <mpxmessagegeneraldefs.h> // KMPXMessageGeneralEvent, KMPXMessageGeneralType
hgs
parents:
diff changeset
    26
#include <mpxmediageneraldefs.h>
hgs
parents:
diff changeset
    27
#include <mpxmediaarray.h>
hgs
parents:
diff changeset
    28
#include <mpxmediacontainerdefs.h>
hgs
parents:
diff changeset
    29
#include <mpxattribute.h>
hgs
parents:
diff changeset
    30
#include <stiflogger.h>
hgs
parents:
diff changeset
    31
#include <testutility.h>
hgs
parents:
diff changeset
    32
#include <testplaybackutility.h>
hgs
parents:
diff changeset
    33
#include <testplaybackview.h>
hgs
parents:
diff changeset
    34
#include "pathoptionmenu.h" 
hgs
parents:
diff changeset
    35
#include "collectionbrowser.h"
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
// MACROS
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// DATA TYPES
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    44
// CCollectionBrowser::NewL
hgs
parents:
diff changeset
    45
// Two-phased constructor.
hgs
parents:
diff changeset
    46
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
//
hgs
parents:
diff changeset
    48
/*
hgs
parents:
diff changeset
    49
CCollectionBrowser* CCollectionBrowser::NewL(CConsoleMain* aConsoleMain,
hgs
parents:
diff changeset
    50
                                             CTestBaseView* aParent,
hgs
parents:
diff changeset
    51
                                             const TDesC16& aName,
hgs
parents:
diff changeset
    52
                                             CStifLogger* aLogger,
hgs
parents:
diff changeset
    53
                                             CMPXCollectionPath* aPath)
hgs
parents:
diff changeset
    54
    {
hgs
parents:
diff changeset
    55
    CCollectionBrowser* self = CCollectionBrowser::NewL(aConsoleMain,
hgs
parents:
diff changeset
    56
                                                        aParent,
hgs
parents:
diff changeset
    57
                                                        aName,
hgs
parents:
diff changeset
    58
                                                        aLogger);    
hgs
parents:
diff changeset
    59
    CleanupStack::PopAndDestroy(self);
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
    return self;
hgs
parents:
diff changeset
    62
    }
hgs
parents:
diff changeset
    63
   */ 
hgs
parents:
diff changeset
    64
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    65
// CCollectionBrowser::NewLC
hgs
parents:
diff changeset
    66
// Two-phased constructor.
hgs
parents:
diff changeset
    67
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    68
//
hgs
parents:
diff changeset
    69
CCollectionBrowser* CCollectionBrowser::NewLC(CConsoleMain* aConsoleMain,
hgs
parents:
diff changeset
    70
                                              CTestBaseView* aParent,
hgs
parents:
diff changeset
    71
                                              const TDesC16& aName,
hgs
parents:
diff changeset
    72
                                              CStifLogger* aLogger,
hgs
parents:
diff changeset
    73
                                              CMPXCollectionPath* aPath)
hgs
parents:
diff changeset
    74
    {
hgs
parents:
diff changeset
    75
    CCollectionBrowser* self = new (ELeave) CCollectionBrowser(aConsoleMain,
hgs
parents:
diff changeset
    76
                                                               aParent,
hgs
parents:
diff changeset
    77
                                                               aName,
hgs
parents:
diff changeset
    78
                                                               aLogger);
hgs
parents:
diff changeset
    79
    
hgs
parents:
diff changeset
    80
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    81
    self->ConstructL(aPath);
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
    return self;
hgs
parents:
diff changeset
    84
    }
hgs
parents:
diff changeset
    85
    
hgs
parents:
diff changeset
    86
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    87
// Destructor
hgs
parents:
diff changeset
    88
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    89
CCollectionBrowser::~CCollectionBrowser()
hgs
parents:
diff changeset
    90
    {
hgs
parents:
diff changeset
    91
    iLogger->Log(_L("+CCollectionBrowser::~CCollectionBrowser"));
hgs
parents:
diff changeset
    92
    
hgs
parents:
diff changeset
    93
    if(iCollectionUtility)   
hgs
parents:
diff changeset
    94
    	iCollectionUtility->Close();
hgs
parents:
diff changeset
    95
    if(iCollectionPath)
hgs
parents:
diff changeset
    96
        delete iCollectionPath;
hgs
parents:
diff changeset
    97
    if(iPlaybackUtility)
hgs
parents:
diff changeset
    98
        delete iPlaybackUtility;
hgs
parents:
diff changeset
    99
    iLogger->Log(_L("-CCollectionBrowser::~CCollectionBrowser"));
hgs
parents:
diff changeset
   100
    }
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   103
// From CTestBaseView
hgs
parents:
diff changeset
   104
// Initialize the view before display view
hgs
parents:
diff changeset
   105
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   106
void CCollectionBrowser::InitializeViewL()
hgs
parents:
diff changeset
   107
    {
hgs
parents:
diff changeset
   108
    iLogger->Log(_L("+CCollectionBrowser::InitializeViewL"));	
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
/*
hgs
parents:
diff changeset
   111
    // Resynchronize podcast databases
hgs
parents:
diff changeset
   112
    TUid collection = KPodcastCollection; 
hgs
parents:
diff changeset
   113
    collection = iCollectionUtility->
hgs
parents:
diff changeset
   114
                    Collection().CollectionIDL( collection );
hgs
parents:
diff changeset
   115
    TRAP_IGNORE( 
hgs
parents:
diff changeset
   116
        iCollectionUtility->
hgs
parents:
diff changeset
   117
            Collection().CommandL( EMcCmdCollectionInit, 
hgs
parents:
diff changeset
   118
                                   collection.iUid ) );
hgs
parents:
diff changeset
   119
    
hgs
parents:
diff changeset
   120
    // Resynchronize music collection databases
hgs
parents:
diff changeset
   121
    collection = KLocalCollection; 
hgs
parents:
diff changeset
   122
    collection = iCollectionUtility->
hgs
parents:
diff changeset
   123
                    Collection().CollectionIDL( collection );
hgs
parents:
diff changeset
   124
    iCollectionUtility->Collection().CommandL( EMcCmdCollectionInit, 
hgs
parents:
diff changeset
   125
                                               collection.iUid );
hgs
parents:
diff changeset
   126
*/
hgs
parents:
diff changeset
   127
    
hgs
parents:
diff changeset
   128
    // ConstructL() did the Utility->NewL() already.
hgs
parents:
diff changeset
   129
                                       
hgs
parents:
diff changeset
   130
    if( iCollectionPath )
hgs
parents:
diff changeset
   131
        iCollectionUtility->Collection().OpenL(*iCollectionPath);
hgs
parents:
diff changeset
   132
    else
hgs
parents:
diff changeset
   133
        iCollectionUtility->Collection().OpenL(); 
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
    iLogger->Log(_L("-CCollectionBrowser::InitializeViewL"));
hgs
parents:
diff changeset
   136
    }
hgs
parents:
diff changeset
   137
    
hgs
parents:
diff changeset
   138
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   139
// From CTestBaseView
hgs
parents:
diff changeset
   140
// Cleanup the view before deactivate/destroy view
hgs
parents:
diff changeset
   141
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   142
void CCollectionBrowser::CleanupViewL()
hgs
parents:
diff changeset
   143
    {
hgs
parents:
diff changeset
   144
    if(iPlaybackUtility)
hgs
parents:
diff changeset
   145
        {
hgs
parents:
diff changeset
   146
        delete iPlaybackUtility;
hgs
parents:
diff changeset
   147
        iPlaybackUtility = NULL;      
hgs
parents:
diff changeset
   148
        }    
hgs
parents:
diff changeset
   149
    }
hgs
parents:
diff changeset
   150
    
hgs
parents:
diff changeset
   151
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   152
// From CTestBaseView
hgs
parents:
diff changeset
   153
// Handle number key press
hgs
parents:
diff changeset
   154
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   155
void CCollectionBrowser::HandleNumKeyL()
hgs
parents:
diff changeset
   156
    {
hgs
parents:
diff changeset
   157
    /*
hgs
parents:
diff changeset
   158
    TKeyCode key = LastKeyPressed();
hgs
parents:
diff changeset
   159
    if((int)key == '1')
hgs
parents:
diff changeset
   160
        {
hgs
parents:
diff changeset
   161
        CPathOptionMenu* pathOptionMenu = 
hgs
parents:
diff changeset
   162
                CPathOptionMenu::NewL(iConsoleMain,
hgs
parents:
diff changeset
   163
                                     this,
hgs
parents:
diff changeset
   164
                                     KTxtPathOptionMenu,
hgs
parents:
diff changeset
   165
                                     iLogger);
hgs
parents:
diff changeset
   166
        CleanupStack::PushL(pathOptionMenu);
hgs
parents:
diff changeset
   167
        CMPXCollectionPath* path = iCollectionUtility->Collection().PathL();
hgs
parents:
diff changeset
   168
        CleanupStack::PushL(path);
hgs
parents:
diff changeset
   169
        path->SelectL(CurrentIndex());   //change to selected path
hgs
parents:
diff changeset
   170
        pathOptionMenu->SetPathL(*path);
hgs
parents:
diff changeset
   171
        CleanupStack::PopAndDestroy(path);
hgs
parents:
diff changeset
   172
        NextViewL(pathOptionMenu);
hgs
parents:
diff changeset
   173
        CleanupStack::Pop(pathOptionMenu);
hgs
parents:
diff changeset
   174
        iChild = static_cast<CTestBaseView*>(pathOptionMenu);
hgs
parents:
diff changeset
   175
        }
hgs
parents:
diff changeset
   176
    */
hgs
parents:
diff changeset
   177
    }
hgs
parents:
diff changeset
   178
    
hgs
parents:
diff changeset
   179
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   180
// From CTestBaseView
hgs
parents:
diff changeset
   181
// Handle left key press
hgs
parents:
diff changeset
   182
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   183
void CCollectionBrowser::HandleLeftKeyL()
hgs
parents:
diff changeset
   184
    {
hgs
parents:
diff changeset
   185
    iLogger->Log(_L("+CCollectionBrowser::HandleLeftKeyL"));
hgs
parents:
diff changeset
   186
    CMPXCollectionPath* currPath = iCollectionUtility->Collection().PathL();
hgs
parents:
diff changeset
   187
    CleanupStack::PushL( currPath );
hgs
parents:
diff changeset
   188
    if(currPath->Levels() > 1)
hgs
parents:
diff changeset
   189
        {
hgs
parents:
diff changeset
   190
        iCollectionUtility->Collection().BackL();
hgs
parents:
diff changeset
   191
        }
hgs
parents:
diff changeset
   192
    // otherwise current path is at or below root level, thereofeore, no back call
hgs
parents:
diff changeset
   193
    CleanupStack::PopAndDestroy( currPath );
hgs
parents:
diff changeset
   194
    iLogger->Log(_L("-CCollectionBrowser::HandleLeftKeyL"));
hgs
parents:
diff changeset
   195
    }
hgs
parents:
diff changeset
   196
        
hgs
parents:
diff changeset
   197
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   198
// From CTestBaseView
hgs
parents:
diff changeset
   199
// Handle right/enter key press
hgs
parents:
diff changeset
   200
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   201
void CCollectionBrowser::HandleRightKeyL()
hgs
parents:
diff changeset
   202
    {
hgs
parents:
diff changeset
   203
    iLogger->Log(_L("+CCollectionBrowser::HandleRightKeyL"));
hgs
parents:
diff changeset
   204
    TInt count = ItemCount();
hgs
parents:
diff changeset
   205
    TInt index = CurrentIndex();
hgs
parents:
diff changeset
   206
    
hgs
parents:
diff changeset
   207
    if(count > 0 && index >= 0 && index < count)
hgs
parents:
diff changeset
   208
        {
hgs
parents:
diff changeset
   209
        iCollectionUtility->Collection().OpenL( index );
hgs
parents:
diff changeset
   210
        }
hgs
parents:
diff changeset
   211
    iLogger->Log(_L("-CCollectionBrowser::HandleRightKeyL"));
hgs
parents:
diff changeset
   212
    }
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   215
// CCollectionBrowser::HandleCollectionMediaL
hgs
parents:
diff changeset
   216
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   217
//
hgs
parents:
diff changeset
   218
void CCollectionBrowser::HandleCollectionMediaL(
hgs
parents:
diff changeset
   219
                        const CMPXMedia& aMedia, 
hgs
parents:
diff changeset
   220
                        TInt aError)
hgs
parents:
diff changeset
   221
    {
hgs
parents:
diff changeset
   222
    if(aError == KErrNone)
hgs
parents:
diff changeset
   223
        {
hgs
parents:
diff changeset
   224
        // Assume root plugins title will be returned only
hgs
parents:
diff changeset
   225
        // see CCollectionBrowser::HandleOpenL
hgs
parents:
diff changeset
   226
        TMPXAttribute titleAttr(KMPXMediaIdGeneral,EMPXMediaGeneralTitle);
hgs
parents:
diff changeset
   227
        if( aMedia.IsSupported(titleAttr) )
hgs
parents:
diff changeset
   228
            {
hgs
parents:
diff changeset
   229
            const TDesC& title = aMedia.ValueText( titleAttr );
hgs
parents:
diff changeset
   230
 //           TestUtility::TestLog(iLogger, _L("%S\n"), &title);
hgs
parents:
diff changeset
   231
            AddItemL(title);
hgs
parents:
diff changeset
   232
            }
hgs
parents:
diff changeset
   233
        DisplayViewL();
hgs
parents:
diff changeset
   234
        }
hgs
parents:
diff changeset
   235
    }
hgs
parents:
diff changeset
   236
            
hgs
parents:
diff changeset
   237
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   238
// CCollectionBrowser::HandleCollectionMessageL
hgs
parents:
diff changeset
   239
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   240
//
hgs
parents:
diff changeset
   241
void CCollectionBrowser::HandleCollectionMessageL(const CMPXMessage& aMsg)
hgs
parents:
diff changeset
   242
    {
hgs
parents:
diff changeset
   243
    iLogger->Log(_L("+CCollectionBrowser::HandleCollectionMessageL"));
hgs
parents:
diff changeset
   244
        
hgs
parents:
diff changeset
   245
    if( aMsg.IsSupported(KMPXMessageGeneralEvent) &&
hgs
parents:
diff changeset
   246
        aMsg.IsSupported(KMPXMessageGeneralType) ) 
hgs
parents:
diff changeset
   247
        {
hgs
parents:
diff changeset
   248
        TMPXCollectionMessage::TEvent event = 
hgs
parents:
diff changeset
   249
        *aMsg.Value<TMPXCollectionMessage::TEvent>( KMPXMessageGeneralEvent );
hgs
parents:
diff changeset
   250
        TInt type = *aMsg.Value<TInt>( KMPXMessageGeneralType );
hgs
parents:
diff changeset
   251
        TInt data = *aMsg.Value<TInt>( KMPXMessageGeneralData );
hgs
parents:
diff changeset
   252
        TMPXCollectionMessage message(event, type, data);
hgs
parents:
diff changeset
   253
    
hgs
parents:
diff changeset
   254
    	if (message.Event() == TMPXCollectionMessage::EPathChanged && 
hgs
parents:
diff changeset
   255
    	    message.Type() == EMcPathChangedByOpen)
hgs
parents:
diff changeset
   256
    		{ 
hgs
parents:
diff changeset
   257
    		// Open new entries
hgs
parents:
diff changeset
   258
        	iCollectionUtility->Collection().OpenL();
hgs
parents:
diff changeset
   259
       		}    
hgs
parents:
diff changeset
   260
       		
hgs
parents:
diff changeset
   261
  	    iLogger->Log(_L("CCollectionBrowser: Message %d Returned: type=%d data=%d"), 
hgs
parents:
diff changeset
   262
                                                             message.Event(), 
hgs
parents:
diff changeset
   263
                                                             message.Type(), 
hgs
parents:
diff changeset
   264
                                                             message.Data());
hgs
parents:
diff changeset
   265
    
hgs
parents:
diff changeset
   266
   		iLogger->Log(_L("-CCollectionBrowser::HandleCollectionMessageL"));
hgs
parents:
diff changeset
   267
    	}
hgs
parents:
diff changeset
   268
    }
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   271
// CCollectionBrowser::HandleCollectionMessageL
hgs
parents:
diff changeset
   272
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   273
//
hgs
parents:
diff changeset
   274
void CCollectionBrowser::HandleOpenL(const CMPXMedia& aEntries,
hgs
parents:
diff changeset
   275
                                     TInt aIndex,TBool aComplete,TInt aError)
hgs
parents:
diff changeset
   276
    {
hgs
parents:
diff changeset
   277
    iLogger->Log(_L("+CCollectionBrowser::HandleOpenL"));
hgs
parents:
diff changeset
   278
    if(!aEntries.IsSupported(TMPXAttribute(KMPXMediaIdContainer,EMPXMediaArrayContents)) ||
hgs
parents:
diff changeset
   279
       !aEntries.IsSupported(TMPXAttribute(KMPXMediaIdContainer,EMPXMediaArrayCount)) )
hgs
parents:
diff changeset
   280
        User::Panic(_L("NOT appropiate array media"), -1);
hgs
parents:
diff changeset
   281
    
hgs
parents:
diff changeset
   282
    CMPXMediaArray* media = 
hgs
parents:
diff changeset
   283
            aEntries.ValueCObjectL<CMPXMediaArray>( TMPXAttribute(KMPXMediaIdContainer, EMPXMediaArrayContents) );
hgs
parents:
diff changeset
   284
    CleanupStack::PushL( media );
hgs
parents:
diff changeset
   285
        
hgs
parents:
diff changeset
   286
    (void)aComplete;
hgs
parents:
diff changeset
   287
    iItems->Reset();
hgs
parents:
diff changeset
   288
    if(aError == KErrNone)
hgs
parents:
diff changeset
   289
        {
hgs
parents:
diff changeset
   290
        TMPXAttribute uidAttr(KMPXMediaIdGeneral,EMPXMediaGeneralId);
hgs
parents:
diff changeset
   291
        TMPXAttribute titleAttr(KMPXMediaIdGeneral,EMPXMediaGeneralTitle);
hgs
parents:
diff changeset
   292
        
hgs
parents:
diff changeset
   293
        CMPXCollectionPath* currPath = iCollectionUtility->Collection().PathL();
hgs
parents:
diff changeset
   294
        CleanupStack::PushL( currPath );
hgs
parents:
diff changeset
   295
        
hgs
parents:
diff changeset
   296
        for(TInt i=0; i<media->Count(); i++)
hgs
parents:
diff changeset
   297
            {
hgs
parents:
diff changeset
   298
            const CMPXMedia* entry = ( *media )[i];
hgs
parents:
diff changeset
   299
            if(currPath->Levels() == 1)
hgs
parents:
diff changeset
   300
                {
hgs
parents:
diff changeset
   301
                // Assume at root level, use MediaL to get plugin name
hgs
parents:
diff changeset
   302
                CMPXCollectionPath* rootPath = CMPXCollectionPath::NewL();
hgs
parents:
diff changeset
   303
                CleanupStack::PushL( rootPath );
hgs
parents:
diff changeset
   304
                TMPXItemId uid = entry->ValueTObjectL<TMPXItemId>( uidAttr );
hgs
parents:
diff changeset
   305
                rootPath->AppendL( uid );
hgs
parents:
diff changeset
   306
                RArray<TMPXAttribute> attrs;
hgs
parents:
diff changeset
   307
                CleanupClosePushL( attrs );
hgs
parents:
diff changeset
   308
                attrs.Append( titleAttr );
hgs
parents:
diff changeset
   309
                
hgs
parents:
diff changeset
   310
                iCollectionUtility->Collection().MediaL(*rootPath, attrs.Array());
hgs
parents:
diff changeset
   311
                CleanupStack::PopAndDestroy(2, rootPath );  //attrs, rootPath
hgs
parents:
diff changeset
   312
                }
hgs
parents:
diff changeset
   313
            else
hgs
parents:
diff changeset
   314
                {
hgs
parents:
diff changeset
   315
                // Assume browsing within plugin already
hgs
parents:
diff changeset
   316
                const TDesC& title = entry->ValueText( titleAttr );
hgs
parents:
diff changeset
   317
 //               TestUtility::TestLog(iLogger, _L("%S\n"), &title);
hgs
parents:
diff changeset
   318
                AddItemL(title);
hgs
parents:
diff changeset
   319
                }
hgs
parents:
diff changeset
   320
            }
hgs
parents:
diff changeset
   321
        CleanupStack::PopAndDestroy( currPath );
hgs
parents:
diff changeset
   322
        }
hgs
parents:
diff changeset
   323
    iPosOnScreen = aIndex;
hgs
parents:
diff changeset
   324
    DisplayViewL();
hgs
parents:
diff changeset
   325
    
hgs
parents:
diff changeset
   326
    CleanupStack::PopAndDestroy(media);
hgs
parents:
diff changeset
   327
    iLogger->Log(_L("-CCollectionBrowser::HandleOpenL"));
hgs
parents:
diff changeset
   328
    }
hgs
parents:
diff changeset
   329
        
hgs
parents:
diff changeset
   330
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   331
// CCollectionBrowser::HandleCollectionMessageL
hgs
parents:
diff changeset
   332
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   333
//
hgs
parents:
diff changeset
   334
void CCollectionBrowser::HandleOpenL(const CMPXCollectionPlaylist& aPlaylist,TInt aError)
hgs
parents:
diff changeset
   335
    {
hgs
parents:
diff changeset
   336
    (void)aError;
hgs
parents:
diff changeset
   337
    CTestPlaybackView* view = CTestPlaybackView::NewL(iConsoleMain,
hgs
parents:
diff changeset
   338
                                                     this,
hgs
parents:
diff changeset
   339
                                                     KTxtTestPlaybackView,
hgs
parents:
diff changeset
   340
                                                     iLogger);
hgs
parents:
diff changeset
   341
    iPlaybackUtility = CTestPlaybackUtility::NewL(KPbModeNewPlayer,
hgs
parents:
diff changeset
   342
                                                  view,
hgs
parents:
diff changeset
   343
                                                  iLogger);
hgs
parents:
diff changeset
   344
    view->AddObserver(iPlaybackUtility);
hgs
parents:
diff changeset
   345
    CleanupStack::PushL(view);
hgs
parents:
diff changeset
   346
    iPlaybackUtility->InitL(aPlaylist);
hgs
parents:
diff changeset
   347
    CleanupStack::Pop(view);
hgs
parents:
diff changeset
   348
    iChild = static_cast<CTestBaseView*>(view);
hgs
parents:
diff changeset
   349
    NextViewL(iChild);
hgs
parents:
diff changeset
   350
    }
hgs
parents:
diff changeset
   351
    
hgs
parents:
diff changeset
   352
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   353
// C++ default constructor.
hgs
parents:
diff changeset
   354
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   355
CCollectionBrowser::CCollectionBrowser(CConsoleMain* aConsoleMain,
hgs
parents:
diff changeset
   356
                                       CTestBaseView* aParent,
hgs
parents:
diff changeset
   357
                                       const TDesC& aName,
hgs
parents:
diff changeset
   358
                                       CStifLogger* aLogger)
hgs
parents:
diff changeset
   359
    : CTestMenuView(aConsoleMain, aParent, aName)
hgs
parents:
diff changeset
   360
    {
hgs
parents:
diff changeset
   361
    iCollectionUtility = NULL; // set by ConstructL()
hgs
parents:
diff changeset
   362
    iLogger = aLogger;
hgs
parents:
diff changeset
   363
    iCollectionPath = NULL;  // set by ConstructL() if path != NULL
hgs
parents:
diff changeset
   364
    iPlaybackUtility = NULL;    
hgs
parents:
diff changeset
   365
    }
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   368
// Second phase constructor
hgs
parents:
diff changeset
   369
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   370
void CCollectionBrowser::ConstructL(CMPXCollectionPath* aPath)
hgs
parents:
diff changeset
   371
    {    
hgs
parents:
diff changeset
   372
    iLogger->Log(_L("+CCollectionBrowser::ConstructL"));
hgs
parents:
diff changeset
   373
    iCollectionUtility = MMPXCollectionUtility::NewL(this);
hgs
parents:
diff changeset
   374
    if(aPath)
hgs
parents:
diff changeset
   375
        {
hgs
parents:
diff changeset
   376
        iCollectionPath = CMPXCollectionPath::NewL(*aPath);
hgs
parents:
diff changeset
   377
        }
hgs
parents:
diff changeset
   378
    CTestMenuView::ConstructL();
hgs
parents:
diff changeset
   379
    iLogger->Log(_L("-CCollectionBrowser::ConstructL"));
hgs
parents:
diff changeset
   380
    }
hgs
parents:
diff changeset
   381