mtpdataproviders/mtpplaybackcontroldp/mtpplaybackmpximplementation/src/cmtpplaybackplaylisthelper.cpp
author hgs
Fri, 03 Sep 2010 18:38:04 +0800
changeset 49 c20dd21d1eb4
parent 29 3ae5cb0b4c02
permissions -rw-r--r--
201035_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     2
// All rights reserved.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     7
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     8
// Initial Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    10
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    11
// Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    12
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    13
// Description:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    14
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    15
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    16
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    17
 @file
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    18
 @internalComponent
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    19
*/
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    20
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    21
#include <mpxmediamusicdefs.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    22
#include <mpxmediacontainerdefs.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    23
#include <mpxmessagegeneraldefs.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    24
#include <pathinfo.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    25
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
#include <mpxcollectionhelper.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
#include <mpxcollectionhelperfactory.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
#include <mpxcollectionuihelper.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
#include <mpxcollectionhelperfactory.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
#include <mpxcollectionutility.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
#include <mpxcollectionplaylist.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
#include <mpxcollectionmessage.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
#include <mpxcollectionpath.h>
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
#include "cmtpplaybackcontrolimpl.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
#include "cmtpplaybackplaylisthelper.h"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
#include "mtpplaybackcontrolpanic.h"
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    39
#include "OstTraceDefinitions.h"
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    40
#ifdef OST_TRACE_COMPILER_IN_USE
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    41
#include "cmtpplaybackplaylisthelperTraces.h"
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    42
#endif
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
// ======== MEMBER FUNCTIONS ========
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
// CMTPPlaybackPlaylistHelper::NewL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
CMTPPlaybackPlaylistHelper* CMTPPlaybackPlaylistHelper::NewL( CMTPPlaybackControlImpl& aControlImpl )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    53
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_NEWL_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    54
    
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
    CMTPPlaybackPlaylistHelper* self = new ( ELeave ) 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
                CMTPPlaybackPlaylistHelper( aControlImpl );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
    CleanupStack::PushL( self );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
    self->ConstructL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
    CleanupStack::Pop( self );
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    60
    
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    61
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_NEWL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
    return self;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
// CMTPPlaybackPlaylistHelper::~CMTPPlaybackPlaylistHelper
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
CMTPPlaybackPlaylistHelper::~CMTPPlaybackPlaylistHelper()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    71
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_CMTPPLAYBACKPLAYLISTHELPER_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
    if( iCollectionUiHelper )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
        iCollectionUiHelper->Close();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    78
    if ( iCollectionHelper )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    79
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    80
        iCollectionHelper->Close();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
    if( iCollectionUtil ) 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
        iCollectionUtil->Close();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
    delete iPlayObject;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    90
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_CMTPPLAYBACKPLAYLISTHELPER_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
// CMTPPlaybackPlaylistHelper::GetPlayListFromCollectionL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
//// Get Playlist via aMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
void CMTPPlaybackPlaylistHelper::GetPlayListFromCollectionL( const TMTPPbDataSuid& aPlayObject )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   100
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_GETPLAYLISTFROMCOLLECTIONL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
    //Reset
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
    ResetPlaySource();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
    iPlayCategory = aPlayObject.Category();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
    iPlayObject = aPlayObject.Suid().AllocL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
    switch ( iPlayCategory )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
        case EMTPPbCatPlayList:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
            OpenMusicPlayListPathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   113
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
            break;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
        case EMTPPbCatAlbum:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
            OpenMusicAblumPathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
            break;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
        default:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
            Panic( EMTPPBCollectionErrCall );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
            break;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   127
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_GETPLAYLISTFROMCOLLECTIONL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
// CMTPPlaybackPlaylistHelper::GetPlayListFromCollectionL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
// Get Playlist via index
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   134
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   135
void CMTPPlaybackPlaylistHelper::GetPlayListFromCollectionL( TInt aIndex )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   136
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   137
    OstTraceFunctionEntry0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_GETPLAYLISTFROMCOLLECTIONL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   138
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   139
    iSongIndex = aIndex;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   140
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   141
    UpdatePathAndOpenL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   142
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   143
    OstTraceFunctionExit0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_GETPLAYLISTFROMCOLLECTIONL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   144
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   145
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   146
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   147
// CMTPPlaybackPlaylistHelper::GetMTPPBSuidFromCollectionL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   148
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   149
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   150
TMTPPbDataSuid CMTPPlaybackPlaylistHelper::GetMTPPBSuidFromCollectionL( 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   151
        const CMPXCollectionPlaylist& aPlaylist )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   152
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   153
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_GETMTPPBSUIDFROMCOLLECTIONL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   154
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   155
    CMPXCollectionPath* path = iCollectionUiHelper->MusicPlaylistPathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   156
    if ( path->Id() == aPlaylist.Path().Id( KMTPPlaybackPlaylistAblumLevel -1 ))
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   157
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   158
        iPlayCategory = EMTPPbCatPlayList;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   159
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   160
    else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   161
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   162
        iPlayCategory = EMTPPbCatAlbum;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   163
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   164
    TFileName uri = ItemIdToUriL( aPlaylist.Path().Id( KMTPPlaybackPlaylistAblumLevel ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   165
    TMTPPbDataSuid dataSuid( iPlayCategory, uri );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   166
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   167
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_GETMTPPBSUIDFROMCOLLECTIONL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   168
    return dataSuid;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   169
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   170
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   171
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   172
// CMTPPlaybackPlaylistHelper::MTPPbCategory
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   173
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   174
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   175
TMTPPbCategory CMTPPlaybackPlaylistHelper::MTPPbCategory() const
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   176
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   177
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_MTPPBCATEGORY_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   178
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_MTPPBCATEGORY_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   179
    return iPlayCategory;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   180
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   181
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   182
// CMTPPlaybackPlaylistHelper::MTPPbSuid
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   183
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   184
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   185
TFileName CMTPPlaybackPlaylistHelper::MTPPbSuid() const
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   186
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   187
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_MTPPBSUID_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   188
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_MTPPBSUID_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   189
    return TFileName( *iPlayObject );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   190
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   191
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   192
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   193
// From MMPXCollectionObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   194
// Handle completion of a asynchronous command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   195
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   196
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   197
void CMTPPlaybackPlaylistHelper::HandleCollectionMessage( CMPXMessage* aMsg, TInt aErr )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   198
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   199
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_HANDLECOLLECTIONMESSAGE_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   200
    OstTrace1( TRACE_NORMAL, CMTPPLAYBACKPLAYLISTHELPER_HANDLECOLLECTIONMESSAGE, "CMTPPlaybackPlaylistHelper::HandleCollectionMessage( %d )", aErr );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   201
    
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   202
    if (( KErrNone == aErr ) && aMsg )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   203
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   204
        TRAP( aErr, DoHandleCollectionMessageL( *aMsg ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   205
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   206
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   207
    if ( KErrNone != aErr )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   208
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   209
        TInt error = MTPPlaybackControlImpl().MapError( aErr );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   210
        MTPPlaybackControlImpl().DoHandleError( error );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   211
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   212
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   213
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_HANDLECOLLECTIONMESSAGE_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   214
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   215
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   216
// From MMPXCollectionObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   217
// ---------------------------------------------------------------------------  
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   218
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   219
void CMTPPlaybackPlaylistHelper::HandleOpenL( const CMPXMedia& aEntries, 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   220
        TInt /*aIndex*/, TBool /*aComplete*/, TInt aError )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   221
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   222
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_HANDLEOPENL_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   223
    OstTrace1( TRACE_FLOW, CMTPPLAYBACKPLAYLISTHELPER_HANDLEOPENL, "CMTPPlaybackPlaylistHelper::HandleOpenL( %d )", aError );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   224
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   225
    if ( KErrNone == aError )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   226
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   227
        TRAP( aError, DoHandleOpenL( aEntries ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   228
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   229
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   230
    if ( KErrNone != aError )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   231
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   232
        TInt error = MTPPlaybackControlImpl().MapError( aError );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   233
        MTPPlaybackControlImpl().DoHandleError( error );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   234
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   235
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   236
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_HANDLEOPENL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   237
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   238
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   239
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   240
// From MMPXCollectionObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   241
// ---------------------------------------------------------------------------  
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   242
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   243
void CMTPPlaybackPlaylistHelper::HandleOpenL( const CMPXCollectionPlaylist& aPlaylist,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   244
        TInt aError )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   245
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   246
    OstTraceFunctionEntry0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_HANDLEOPENL_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   247
    OstTrace1( TRACE_FLOW, DUP1_CMTPPLAYBACKPLAYLISTHELPER_HANDLEOPENL, "CMTPPlaybackPlaylistHelper::HandleOpenL( aPlaylist, aError = %d )", aError );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   248
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   249
    if ( KErrNone == aError )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   250
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   251
        TRAP( aError, MTPPlaybackControlImpl().GetPlaylistFromCollectionCompleteL( aPlaylist ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   252
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   253
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   254
    if ( KErrNone != aError )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   255
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   256
        TInt error = MTPPlaybackControlImpl().MapError( aError );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   257
        MTPPlaybackControlImpl().DoHandleError( error );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   258
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   259
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   260
    OstTraceFunctionExit0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_HANDLEOPENL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   261
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   262
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   263
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   264
// From MMPXCollectionMediaObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   265
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   266
void CMTPPlaybackPlaylistHelper::HandleCollectionMediaL( const CMPXMedia& /*aMedia*/, TInt /*aError*/ )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   267
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   268
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_HANDLECOLLECTIONMEDIAL_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   269
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_HANDLECOLLECTIONMEDIAL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   270
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   271
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   272
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   273
// CMTPPlaybackPlaylistHelper::CMTPPlaybackPlaylistHelper
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   274
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   275
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   276
CMTPPlaybackPlaylistHelper::CMTPPlaybackPlaylistHelper( CMTPPlaybackControlImpl& aControlImpl )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   277
        : iCollectionUiHelper( NULL ),
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   278
          iCollectionHelper( NULL ),
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   279
          iCollectionUtil( NULL ),
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   280
          iPlayObject( NULL ),
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   281
          iMTPPlaybackControl( aControlImpl )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   282
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   283
    OstTraceFunctionEntry0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_CMTPPLAYBACKPLAYLISTHELPER_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   284
    OstTraceFunctionExit0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_CMTPPLAYBACKPLAYLISTHELPER_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   285
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   286
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   287
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   288
// CMTPPlaybackPlaylistHelper::ConstructL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   289
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   290
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   291
void CMTPPlaybackPlaylistHelper::ConstructL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   292
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   293
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_CONSTRUCTL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   294
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   295
    iCollectionUiHelper = CMPXCollectionHelperFactory::NewCollectionUiHelperL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   296
    iCollectionUtil = MMPXCollectionUtility::NewL( this, KMcModeDefault );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   297
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   298
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_CONSTRUCTL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   299
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   300
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   301
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   302
// CMTPPlaybackPlaylistHelper::DoHandleCollectionMessage
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   303
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   304
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   305
void CMTPPlaybackPlaylistHelper::DoHandleCollectionMessageL( const CMPXMessage& aMsg )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   306
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   307
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_DOHANDLECOLLECTIONMESSAGEL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   308
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   309
    TMPXMessageId id( aMsg.ValueTObjectL<TMPXMessageId>( KMPXMessageGeneralId ) );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   310
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   311
    if ( KMPXMessageGeneral == id )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   312
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   313
        TInt event( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   314
        TInt type( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralType ) );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   315
        TInt data( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralData ) );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   316
        
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   317
        OstTraceExt2( TRACE_FLOW, CMTPPLAYBACKPLAYLISTHELPER_DOHANDLECOLLECTIONMESSAGEL, "Event code is 0x%X, type code is 0x%X", static_cast<TUint32>( event ), type );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   318
        OstTrace1( TRACE_FLOW, DUP1_CMTPPLAYBACKPLAYLISTHELPER_DOHANDLECOLLECTIONMESSAGEL, "Data code is 0x%X", data );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   319
        
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   320
        if ( event == TMPXCollectionMessage::EPathChanged &&
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   321
             type == EMcPathChangedByOpen && 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   322
             data == EMcContainerOpened )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   323
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   324
            iCollectionUtil->Collection().OpenL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   325
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   326
        else if ( event == TMPXCollectionMessage::EPathChanged &&
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   327
                  type == EMcPathChangedByOpen &&
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   328
                  data == EMcItemOpened )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   329
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   330
            iCollectionUtil->Collection().OpenL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   331
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   332
        else if ( event == TMPXCollectionMessage::ECollectionChanged )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   333
            {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   334
            OstTrace0( TRACE_NORMAL, DUP2_CMTPPLAYBACKPLAYLISTHELPER_DOHANDLECOLLECTIONMESSAGEL, "Ignore this event" );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   335
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   336
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   337
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   338
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_DOHANDLECOLLECTIONMESSAGEL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   339
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   340
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   341
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   342
// CMTPPlaybackPlaylistHelper::DoHandleOpenL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   343
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   344
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   345
void CMTPPlaybackPlaylistHelper::DoHandleOpenL( const CMPXMedia& aEntries )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   346
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   347
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_DOHANDLEOPENL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   348
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   349
    if ( EMTPPbCatAlbum == iPlayCategory )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   350
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   351
        UpdateAlbumPathAndOpenL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   352
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   353
    else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   354
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   355
        //playlist
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   356
        if ( -1 == iPathIndex )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   357
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   358
            //first, the top path
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   359
            UpdatePlaylistPathIndexL( aEntries );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   360
                
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   361
            if ( -1 == iPathIndex )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   362
                {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   363
                MTPPlaybackControlImpl().DoHandleError( KPlaybackErrParamInvalid );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   364
                }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   365
            else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   366
                {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   367
                iCollectionUtil->Collection().OpenL( iPathIndex );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   368
                }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   369
                }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   370
        else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   371
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   372
            //open the first song when initObject
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   373
            iCollectionUtil->Collection().OpenL( iSongIndex );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   374
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   375
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   376
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   377
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_DOHANDLEOPENL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   378
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   379
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   380
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   381
// CMTPPlaybackPlaylistHelper::OpenMusicPlayListPathL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   382
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   383
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   384
void CMTPPlaybackPlaylistHelper::OpenMusicPlayListPathL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   385
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   386
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_OPENMUSICPLAYLISTPATHL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   387
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   388
    CMPXCollectionPath* path = iCollectionUiHelper->MusicPlaylistPathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   389
    CleanupStack::PushL( path );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   390
    iCollectionUtil->Collection().OpenL( *path );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   391
    CleanupStack::PopAndDestroy( path );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   392
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   393
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_OPENMUSICPLAYLISTPATHL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   394
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   395
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   396
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   397
// CMTPPlaybackPlaylistHelper::OpenMusicAblumPathL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   398
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   399
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   400
void CMTPPlaybackPlaylistHelper::OpenMusicAblumPathL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   401
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   402
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_OPENMUSICABLUMPATHL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   403
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   404
    CMPXCollectionPath* path = iCollectionUiHelper->MusicMenuPathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   405
    CleanupStack::PushL( path );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   406
    path->AppendL(KMPXCollectionArtistAlbum);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   407
    iCollectionUtil->Collection().OpenL( *path );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   408
    CleanupStack::PopAndDestroy( path );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   409
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   410
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_OPENMUSICABLUMPATHL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   411
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   412
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   413
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   414
// CMTPPlaybackPlaylistHelper::ResetPlaySource
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   415
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   416
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   417
void CMTPPlaybackPlaylistHelper::ResetPlaySource()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   418
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   419
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_RESETPLAYSOURCE_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   420
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   421
    iPathIndex = -1;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   422
    iSongIndex = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   423
    delete iPlayObject;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   424
    iPlayObject = NULL;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   425
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   426
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_RESETPLAYSOURCE_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   427
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   428
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   429
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   430
// CMTPPlaybackPlaylistHelper::UpdatePlaylistPathIndexL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   431
// ----------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   432
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   433
void CMTPPlaybackPlaylistHelper::UpdatePlaylistPathIndexL( const CMPXMedia& aEntries )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   434
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   435
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_UPDATEPLAYLISTPATHINDEXL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   436
    __ASSERT_DEBUG( iPlayCategory == EMTPPbCatPlayList, Panic( EMTPPBCollectionErrCall ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   437
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   438
    const CMPXMediaArray* refArray = aEntries.Value<CMPXMediaArray> ( KMPXMediaArrayContents );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   439
    TInt count = refArray->Count();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   440
    const TMPXItemId playlistId = UriToItemIdL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   441
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   442
    for ( TInt i=0; i<count; ++i )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   443
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   444
        CMPXMedia* container = refArray->AtL(i);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   445
        /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   446
         * Try to find out the next path according to the 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   447
         * playlist's ItemId
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   448
         */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   449
        if ( container->IsSupported( KMPXMediaGeneralId ))
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   450
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   451
            const TMPXItemId tempId = container->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   452
            if ( tempId == playlistId )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   453
                {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   454
                iPathIndex = i;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   455
                break;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   456
                }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   457
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   458
       }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   459
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   460
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_UPDATEPLAYLISTPATHINDEXL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   461
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   462
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   463
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   464
// return instance of CollectionHelper.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   465
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   466
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   467
MMPXCollectionHelper* CMTPPlaybackPlaylistHelper::CollectionHelperL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   468
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   469
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_COLLECTIONHELPERL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   470
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   471
    if ( iCollectionHelper == NULL )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   472
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   473
        iCollectionHelper = CMPXCollectionHelperFactory::NewCollectionCachedHelperL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   474
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   475
        // Do a search for a song ID that does not exist
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   476
        RArray<TInt> contentIDs;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   477
        CleanupClosePushL( contentIDs ); // + contentIDs
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   478
        contentIDs.AppendL( KMPXMediaIdGeneral );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   479
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   480
        CMPXMedia* searchMedia = CMPXMedia::NewL( contentIDs.Array() );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   481
        CleanupStack::PopAndDestroy( &contentIDs ); // - contentIDs
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   482
        CleanupStack::PushL( searchMedia ); // + searchMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   483
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   484
        searchMedia->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   485
        searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   486
        searchMedia->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   487
                KMTPPlaybackInvalidSongID );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   488
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   489
        /*
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   490
        * store root
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   491
        */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   492
        TChar driveChar = 'c';
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   493
        TInt driveNumber;
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   494
        TInt ret = RFs::CharToDrive( driveChar, driveNumber );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   495
        LEAVEIFERROR( ret, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   496
                OstTrace0( TRACE_ERROR, CMTPPLAYBACKPLAYLISTHELPER_COLLECTIONHELPERL, "Can't get driveNumber" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   497
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   498
        // get root path
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   499
        TBuf<KStorageRootMaxLength> storeRoot;
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   500
        ret = PathInfo::GetRootPath( storeRoot, driveNumber );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   501
        LEAVEIFERROR( ret, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   502
                        OstTrace0( TRACE_ERROR, DUP1_CMTPPLAYBACKPLAYLISTHELPER_COLLECTIONHELPERL, "Can't get storeRoot" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   503
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   504
        searchMedia->SetTextValueL( KMPXMediaGeneralDrive, storeRoot );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   505
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   506
        RArray<TMPXAttribute> songAttributes;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   507
        CleanupClosePushL( songAttributes ); // + songAttributes
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   508
        songAttributes.AppendL( KMPXMediaGeneralId );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   509
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   510
        CMPXMedia* foundMedia = NULL;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   511
        TRAPD( err, foundMedia = iCollectionHelper->FindAllL(
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   512
                *searchMedia,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   513
                songAttributes.Array() ) );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   514
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   515
        CleanupStack::PopAndDestroy( &songAttributes ); // - songAttributes
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   516
        CleanupStack::PopAndDestroy( searchMedia ); // - searchMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   517
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   518
        CleanupStack::PushL( foundMedia ); // + foundMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   519
            
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   520
        if ( err != KErrNone )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   521
            {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   522
            iCollectionHelper->Close();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   523
            iCollectionHelper = NULL;
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   524
            LEAVEIFERROR( KErrGeneral, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   525
                    OstTrace0( TRACE_ERROR, DUP2_CMTPPLAYBACKPLAYLISTHELPER_COLLECTIONHELPERL, "MPX database error" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   526
            }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   527
        CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   528
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   529
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   530
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_COLLECTIONHELPERL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   531
    return iCollectionHelper;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   532
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   533
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   534
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   535
// CMTPPlaybackPlaylistHelper::UriToItemIdL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   536
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   537
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   538
const TMPXItemId CMTPPlaybackPlaylistHelper::UriToItemIdL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   539
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   540
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_URITOITEMIDL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   541
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   542
    TMPXItemId itemId( KMPXInvalidItemId );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   543
    TInt error = KErrNone;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   544
    CMPXMedia* result = NULL;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   545
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   546
    RArray<TMPXAttribute> atts; 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   547
    CleanupClosePushL( atts );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   548
    atts.AppendL( KMPXMediaGeneralId );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   549
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   550
    if ( EMTPPbCatPlayList == iPlayCategory )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   551
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   552
        TRAP( error, result = CollectionHelperL()->GetL( *iPlayObject, atts.Array(), EMPXPlaylist ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   553
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   554
    else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   555
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   556
        TRAP( error, result = CollectionHelperL()->GetL( *iPlayObject, atts.Array(), EMPXAbstractAlbum ));
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   557
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   558
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   559
    if ( error != KErrNone )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   560
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   561
        CleanupStack::PopAndDestroy( &atts );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   562
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   563
    else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   564
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   565
        CleanupStack::PushL( result );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   566
        itemId = result->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   567
        CleanupStack::PopAndDestroy( result );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   568
        CleanupStack::PopAndDestroy( &atts );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   569
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   570
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   571
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_URITOITEMIDL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   572
    return itemId;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   573
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   574
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   575
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   576
// CMTPPlaybackPlaylistHelper::ItemIdToUriL.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   577
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   578
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   579
const TFileName CMTPPlaybackPlaylistHelper::ItemIdToUriL( const TMPXItemId& aId )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   580
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   581
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_ITEMIDTOURIL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   582
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   583
    TFileName itemUri( KNullDesC );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   584
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   585
    RArray<TInt> contentIDs;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   586
    CleanupClosePushL( contentIDs ); // + contentIDs
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   587
    contentIDs.AppendL( KMPXMediaIdGeneral );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   588
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   589
    CMPXMedia* searchMedia = CMPXMedia::NewL( contentIDs.Array() );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   590
    CleanupStack::PopAndDestroy( &contentIDs ); // - contentIDs
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   591
    CleanupStack::PushL( searchMedia ); // + searchMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   592
        
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   593
    searchMedia->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   594
    if ( iPlayCategory == EMTPPbCatPlayList )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   595
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   596
        searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXPlaylist );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   597
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   598
    else
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   599
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   600
        searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXAbstractAlbum );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   601
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   602
    searchMedia->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, aId );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   603
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   604
    RArray<TMPXAttribute> resultAttributes;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   605
    CleanupClosePushL( resultAttributes ); // + resultAttributes
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   606
    resultAttributes.AppendL( KMPXMediaGeneralUri );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   607
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   608
    CMPXMedia* foundMedia = CollectionHelperL()->FindAllL(
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   609
                    *searchMedia,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   610
                    resultAttributes.Array() );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   611
                    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   612
    CleanupStack::PopAndDestroy( &resultAttributes ); // - resultAttributes
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   613
    CleanupStack::PopAndDestroy( searchMedia ); // - searchMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   614
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   615
    CleanupStack::PushL( foundMedia ); // + foundMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   616
    if ( !foundMedia->IsSupported( KMPXMediaArrayCount ))
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   617
        {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   618
        LEAVEIFERROR( KErrNotSupported, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   619
                OstTrace0( TRACE_ERROR, CMTPPLAYBACKPLAYLISTHELPER_ITEMIDTOURIL, "ItemId convert to Uri error" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   620
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   621
    else if ( *foundMedia->Value<TInt>( KMPXMediaArrayCount ) != 1 )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   622
        {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   623
        LEAVEIFERROR( KErrNotSupported, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   624
                OstTrace0( TRACE_ERROR, DUP1_CMTPPLAYBACKPLAYLISTHELPER_ITEMIDTOURIL, "ItemId convert to Uri error" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   625
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   626
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   627
    const CMPXMediaArray* tracksArray = foundMedia->Value<CMPXMediaArray> ( KMPXMediaArrayContents );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   628
    CMPXMedia* item = tracksArray->AtL(0);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   629
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   630
    if ( item->IsSupported( KMPXMediaGeneralUri ))
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   631
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   632
        itemUri = item->ValueText(KMPXMediaGeneralUri);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   633
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   634
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   635
    CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   636
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   637
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_ITEMIDTOURIL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   638
    return itemUri;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   639
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   640
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   641
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   642
// CMTPPlaybackPlaylistHelper::FindAlbumSongsL
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   643
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   644
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   645
CMPXMedia* CMTPPlaybackPlaylistHelper::FindAlbumSongsL( const TMPXItemId& aAlbumId )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   646
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   647
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_FINDALBUMSONGSL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   648
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   649
    // Fetch the songs for the selected album
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   650
    CMPXMedia* findCriteria = CMPXMedia::NewL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   651
    CleanupStack::PushL( findCriteria );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   652
    findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   653
    findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   654
    findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, aAlbumId );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   655
    RArray<TMPXAttribute> attrs;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   656
    CleanupClosePushL( attrs );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   657
    attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   658
                                 EMPXMediaGeneralTitle |
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   659
                                 EMPXMediaGeneralId ) );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   660
    attrs.Append( KMPXMediaMusicAlbumTrack );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   661
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   662
    CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *findCriteria,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   663
            attrs.Array() );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   664
    CleanupStack::PopAndDestroy( &attrs );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   665
    CleanupStack::PopAndDestroy( findCriteria );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   666
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   667
    if ( !foundMedia->IsSupported( KMPXMediaArrayCount ) )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   668
        {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   669
        LEAVEIFERROR( KErrNotSupported, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   670
                OstTrace0( TRACE_ERROR, CMTPPLAYBACKPLAYLISTHELPER_FINDALBUMSONGSL, "Find album song error" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   671
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   672
    TInt foundItemCount = *foundMedia->Value<TInt>( KMPXMediaArrayCount );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   673
    if ( foundItemCount == 0 )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   674
        {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   675
        LEAVEIFERROR( KErrNotFound, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   676
                OstTrace0( TRACE_ERROR, DUP1_CMTPPLAYBACKPLAYLISTHELPER_FINDALBUMSONGSL, "Can't find album song" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   677
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   678
    if ( !foundMedia->IsSupported( KMPXMediaArrayContents ) )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   679
        {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   680
        LEAVEIFERROR( KErrNotSupported, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   681
                OstTrace0( TRACE_ERROR, DUP2_CMTPPLAYBACKPLAYLISTHELPER_FINDALBUMSONGSL, "Find album song error" ));
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   682
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   683
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   684
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_FINDALBUMSONGSL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   685
    return foundMedia;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   686
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   687
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   688
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   689
// CMTPPlaybackPlaylistHelper::UpdatePathAndOpenL.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   690
// aParam: const CMPXMedia& aAlbums
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   691
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   692
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   693
void CMTPPlaybackPlaylistHelper::UpdateAlbumPathAndOpenL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   694
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   695
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_UPDATEALBUMPATHANDOPENL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   696
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   697
    RArray<TMPXItemId> ids;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   698
    CleanupClosePushL(ids);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   699
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   700
    CMPXCollectionPath* cpath = iCollectionUtil->Collection().PathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   701
    CleanupStack::PushL( cpath );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   702
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   703
    if (cpath->Levels() == 3)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   704
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   705
        // go back one level before amending path with new levels
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   706
        cpath->Back();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   707
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   708
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   709
    const TMPXItemId id = UriToItemIdL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   710
    if ( KMPXInvalidItemId == id )
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   711
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   712
        MTPPlaybackControlImpl().DoHandleError( KPlaybackErrParamInvalid );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   713
        CleanupStack::PopAndDestroy( cpath );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   714
        CleanupStack::PopAndDestroy(&ids);
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   715
        OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_UPDATEALBUMPATHANDOPENL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   716
        return;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   717
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   718
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   719
    ids.AppendL(id);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   720
    cpath->AppendL( ids.Array() ); // top level items
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   721
    cpath->Set( 0 );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   722
    ids.Reset();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   723
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   724
    CMPXMedia* songs = FindAlbumSongsL( id );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   725
    CleanupStack::PushL( songs );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   726
    const CMPXMediaArray* tracksArray = songs->Value<CMPXMediaArray> ( KMPXMediaArrayContents );
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   727
    if ( const_cast<CMPXMediaArray*>(tracksArray) == NULL )
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   728
        {
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   729
        LEAVEIFERROR( KErrNoMemory, 
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   730
                            OstTrace0( TRACE_ERROR, CMTPPLAYBACKPLAYLISTHELPER_UPDATEALBUMPATHANDOPENL, "Find album song error" ));
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   731
        }
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   732
    TUint count = tracksArray->Count();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   733
    for (TInt i=0; i<count; ++i)
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   734
        {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   735
        CMPXMedia* song = tracksArray->AtL(i);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   736
        const TMPXItemId id = song->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   737
        ids.AppendL(id);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   738
        }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   739
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   740
    cpath->AppendL(ids.Array()); // top level items
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   741
    cpath->Set( iSongIndex );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   742
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   743
    iCollectionUtil->Collection().OpenL(*cpath);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   744
    CleanupStack::PopAndDestroy( songs );    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   745
    CleanupStack::PopAndDestroy( cpath );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   746
    CleanupStack::PopAndDestroy(&ids);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   747
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   748
    OstTraceFunctionExit0( DUP1_CMTPPLAYBACKPLAYLISTHELPER_UPDATEALBUMPATHANDOPENL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   749
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   750
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   751
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   752
// CMTPPlaybackPlaylistHelper::UpdatePathAndOpenL.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   753
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   754
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   755
void CMTPPlaybackPlaylistHelper::UpdatePathAndOpenL()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   756
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   757
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_UPDATEPATHANDOPENL_ENTRY );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   758
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   759
    RArray<TMPXItemId> ids;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   760
    CleanupClosePushL(ids);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   761
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   762
    CMPXCollectionPath* cpath = iCollectionUtil->Collection().PathL();
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   763
    CleanupStack::PushL( cpath );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   764
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   765
    cpath->Set( iSongIndex );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   766
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   767
    iCollectionUtil->Collection().OpenL(*cpath);  
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   768
    CleanupStack::PopAndDestroy( cpath );
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   769
    CleanupStack::PopAndDestroy(&ids);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   770
    
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   771
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_UPDATEPATHANDOPENL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   772
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   773
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   774
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   775
// CMTPPlaybackPlaylistHelper::MTPPlaybackControlImpl.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   776
// ---------------------------------------------------------------------------
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   777
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   778
CMTPPlaybackControlImpl& CMTPPlaybackPlaylistHelper::MTPPlaybackControlImpl()
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   779
    {
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   780
    OstTraceFunctionEntry0( CMTPPLAYBACKPLAYLISTHELPER_MTPPLAYBACKCONTROLIMPL_ENTRY );
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
   781
    OstTraceFunctionExit0( CMTPPLAYBACKPLAYLISTHELPER_MTPPLAYBACKCONTROLIMPL_EXIT );
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   782
    return iMTPPlaybackControl;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   783
    }
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   784
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   785