mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp
author hgs
Tue, 24 Aug 2010 03:36:14 -0500
changeset 51 560ce2306a17
parent 47 4cc1412daed0
child 55 f3930dda3342
permissions -rw-r--r--
201033
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description: Wrapper for mpx collection framework utilities - private implementation.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include <QStringList>
43
hgs
parents: 38
diff changeset
    19
#include <QRegExp>
hgs
parents: 38
diff changeset
    20
#include <QFileInfo>
hgs
parents: 38
diff changeset
    21
#include <QDateTime>
hgs
parents: 38
diff changeset
    22
#include <QTime>
hgs
parents: 38
diff changeset
    23
#include <QDate>
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <s32strm.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <s32mem.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <apgcli.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <apacmdln.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <mpxplaybackutility.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include <mpxcollectionutility.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <mpxharvesterutility.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <mpxcollectionpath.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <mpxcollectionmessage.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <mpxcollectionplaylist.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include <mpxmessagecontainerdefs.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include <mpxmediacollectiondetaildefs.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include <mpxmediamusicdefs.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include <mpxmediageneraldefs.h>
43
hgs
parents: 38
diff changeset
    40
#include <mpxmediaaudiodefs.h>
hgs
parents: 38
diff changeset
    41
#include <mpxmediadrmdefs.h>
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include <mpxcollectionplugin.hrh>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
#include <mpxmessagegeneraldefs.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
#include <mpxmediacontainerdefs.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
#include <mpxcollectionmessagedefs.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
#include <mpxparameter.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
#include <mpxcollectionhelperfactory.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
#include <mpxcollectionuihelper.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
#include <mpxcollectionopenutility.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
#include <mpxmediaarray.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
#include <mpxmedia.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
#include <mpxlog.h>
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
#include "mpmpxcollectionframeworkwrapper_p.h"
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
#include "mpmpxcollectionframeworkwrapper.h"
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
#include "mpmpxcollectiondata.h"
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
#include "mpcommondefs.h"
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
#include "mptrace.h"
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
#include "mpsettingsmanager.h"
43
hgs
parents: 38
diff changeset
    60
#include "mpsongdata.h"
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
51
hgs
parents: 47
diff changeset
    62
const TInt KIncrementalDelay = 0;
hgs
parents: 47
diff changeset
    63
const TInt KIncrementalFetchBlockSize = 1000;
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
const TInt KMPXChunkSize = 100;  // number of songs added in each chunk, IncAddL
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
_LIT( KPlaylistPath, "C:\\Data\\Playlists\\" ); // Todo
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
    \class MpMpxCollectionFrameworkWrapperPrivate
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
    \brief Wrapper for mpx framework utilities - private implementation.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
    This is a private implementation of the mpx framework wrapper utilties interface.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
*/
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
MpMpxCollectionFrameworkWrapperPrivate::MpMpxCollectionFrameworkWrapperPrivate( MpMpxCollectionFrameworkWrapper *wrapper )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    : q_ptr( wrapper ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
      iCollectionUtility( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
      iCollectionUiHelper( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
      iIncrementalOpenUtil( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
      iIsolatedCollectionHelper( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
      iPlaybackUtility( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
      iCollectionData( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
      iIsolatedCollectionData( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
      iFirstIncrementalOpen( EFalse ),
35
hgs
parents: 34
diff changeset
    88
      iUserPlaylists( 0 ),
hgs
parents: 34
diff changeset
    89
      iRepeatFeature( ETrue ),
hgs
parents: 34
diff changeset
    90
      iShuffleFeature( ETrue ),
36
hgs
parents: 35
diff changeset
    91
      iReopen( EFalse ),
38
hgs
parents: 37
diff changeset
    92
      iShuffleAll( EFalse ),
hgs
parents: 37
diff changeset
    93
      iRestoreDefaultPath( EFalse ),
43
hgs
parents: 38
diff changeset
    94
      iRestorePathIndex( 0 ),
hgs
parents: 38
diff changeset
    95
	  iSongData( 0 )
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
    TX_LOG
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
MpMpxCollectionFrameworkWrapperPrivate::~MpMpxCollectionFrameworkWrapperPrivate()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    delete iCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    delete iIsolatedCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
    if ( iCollectionUtility ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
        iCollectionUtility->Collection().CancelRequest();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
        iCollectionUtility->Close();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    if ( iCollectionUiHelper ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
        iCollectionUiHelper->Close();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
    if ( iPlaybackUtility ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
        iPlaybackUtility->Close();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    delete iIncrementalOpenUtil;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
    delete iIsolatedCollectionHelper;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    delete iUserPlaylists;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
 */
43
hgs
parents: 38
diff changeset
   132
void MpMpxCollectionFrameworkWrapperPrivate::init( TUid hostUid, MpSongData *songData )
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
{
43
hgs
parents: 38
diff changeset
   134
    TX_ENTRY
hgs
parents: 38
diff changeset
   135
    iHostUid = hostUid;
hgs
parents: 38
diff changeset
   136
    iSongData = songData;
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
    TRAPD( err, DoInitL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
    }
43
hgs
parents: 38
diff changeset
   141
    TX_EXIT
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
void MpMpxCollectionFrameworkWrapperPrivate::openCollection( TCollectionContext context )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
    TRAPD( err, DoOpenCollectionL( context ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
void MpMpxCollectionFrameworkWrapperPrivate::openCollectionItem( int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
    TRAPD( err, DoOpenCollectionItemL( index ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
void MpMpxCollectionFrameworkWrapperPrivate::reopenCollection()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
    TRAPD( err, DoReopenCollectionL() );
35
hgs
parents: 34
diff changeset
   172
    if ( err == KErrNone ) {
hgs
parents: 34
diff changeset
   173
        iReopen = ETrue;
hgs
parents: 34
diff changeset
   174
    }
hgs
parents: 34
diff changeset
   175
    else {
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
void MpMpxCollectionFrameworkWrapperPrivate::back()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    TRAPD( err, DoBackL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
void MpMpxCollectionFrameworkWrapperPrivate::findPlaylists( QStringList &playlists )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
    TRAPD( err, DoFindPlaylistsL( playlists ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
void MpMpxCollectionFrameworkWrapperPrivate::createPlaylist( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    TRAPD( err, DoCreatePlaylistL( playlistName, selection, collectionData ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
void MpMpxCollectionFrameworkWrapperPrivate::saveToPlaylist( int playlistIndex, QList<int> &selection )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
    TRAPD( err, DoSaveToPlaylistL( playlistIndex, selection ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
void MpMpxCollectionFrameworkWrapperPrivate::saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
    TRAPD( err, DoSaveToCurrentPlaylistL( selection, collectionData ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
} 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
void MpMpxCollectionFrameworkWrapperPrivate::deleteSongs( QList<int> &selection )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
{
35
hgs
parents: 34
diff changeset
   239
    TCollectionContext context = iCollectionData->context();
hgs
parents: 34
diff changeset
   240
    int err;
hgs
parents: 34
diff changeset
   241
    if ( context == ECollectionContextArtistAlbumsTBone
hgs
parents: 34
diff changeset
   242
         || context == ECollectionContextAlbumsTBone ) {
hgs
parents: 34
diff changeset
   243
        TRAP( err, DoDeleteAlbumSongsL( selection ) );
hgs
parents: 34
diff changeset
   244
    }
hgs
parents: 34
diff changeset
   245
    else {
hgs
parents: 34
diff changeset
   246
        TRAP( err, DoDeleteSongsL( selection ) );
hgs
parents: 34
diff changeset
   247
    }
hgs
parents: 34
diff changeset
   248
    if ( err == KErrNone ) {
hgs
parents: 34
diff changeset
   249
        // send signal that deleting has started.
hgs
parents: 34
diff changeset
   250
        emit q_ptr->deleteStarted(iCollectionData->context(), selection.count());
hgs
parents: 34
diff changeset
   251
    }
hgs
parents: 34
diff changeset
   252
    else{
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
void MpMpxCollectionFrameworkWrapperPrivate::renamePlaylist( QString &newName, int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
{      
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
    TRAPD( err, DoRenamePlaylistL( newName, index ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
    TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
void MpMpxCollectionFrameworkWrapperPrivate::renamePlaylist( QString &newName )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
{      
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
    TRAPD( err, DoRenamePlaylistL( newName ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
    TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
void MpMpxCollectionFrameworkWrapperPrivate::setShuffle( bool active )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
    TRAPD( err, DoSetShuffleL( active ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
void MpMpxCollectionFrameworkWrapperPrivate::previewItem( int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
{
35
hgs
parents: 34
diff changeset
   294
    TCollectionContext context = iCollectionData->context();
hgs
parents: 34
diff changeset
   295
    int err;
hgs
parents: 34
diff changeset
   296
    if ( context == ECollectionContextArtistAlbumsTBone
hgs
parents: 34
diff changeset
   297
         || context == ECollectionContextAlbumsTBone ) {
hgs
parents: 34
diff changeset
   298
        TRAP( err, DoPreviewAlbumSongL( index ) );
hgs
parents: 34
diff changeset
   299
    }
hgs
parents: 34
diff changeset
   300
    else {
hgs
parents: 34
diff changeset
   301
        TRAP( err, DoPreviewSongL( index ) );
hgs
parents: 34
diff changeset
   302
    }
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
 void MpMpxCollectionFrameworkWrapperPrivate::openIsolatedCollection( TCollectionContext context )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
    TRAPD( err, DoOpenIsolatedCollectionL( context ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
void MpMpxCollectionFrameworkWrapperPrivate::releaseIsolatedCollection()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
    delete iIsolatedCollectionHelper;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
    iIsolatedCollectionHelper = 0;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
    delete iIsolatedCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
    iIsolatedCollectionData = 0;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
void MpMpxCollectionFrameworkWrapperPrivate::reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
    TRAPD( err, DoReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
 */
35
hgs
parents: 34
diff changeset
   344
void MpMpxCollectionFrameworkWrapperPrivate::cancel()
hgs
parents: 34
diff changeset
   345
{
hgs
parents: 34
diff changeset
   346
    iCollectionUiHelper->Cancel();
hgs
parents: 34
diff changeset
   347
}
hgs
parents: 34
diff changeset
   348
hgs
parents: 34
diff changeset
   349
/*!
hgs
parents: 34
diff changeset
   350
 \internal
hgs
parents: 34
diff changeset
   351
 */
hgs
parents: 34
diff changeset
   352
void MpMpxCollectionFrameworkWrapperPrivate::findAlbumSongs( int index )
hgs
parents: 34
diff changeset
   353
{
hgs
parents: 34
diff changeset
   354
    TRAPD( err, DoFindAlbumSongsL( index ) );
hgs
parents: 34
diff changeset
   355
    if ( err != KErrNone ) {
hgs
parents: 34
diff changeset
   356
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 34
diff changeset
   357
    }
hgs
parents: 34
diff changeset
   358
}
hgs
parents: 34
diff changeset
   359
hgs
parents: 34
diff changeset
   360
/*!
hgs
parents: 34
diff changeset
   361
 \internal
hgs
parents: 34
diff changeset
   362
 */
hgs
parents: 34
diff changeset
   363
void MpMpxCollectionFrameworkWrapperPrivate::playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
hgs
parents: 34
diff changeset
   364
{
hgs
parents: 34
diff changeset
   365
    TRAPD( err, DoPlayAlbumSongsL( albumIndex, songIndex, collectionData ? collectionData : iCollectionData ) );
hgs
parents: 34
diff changeset
   366
    if ( err != KErrNone ) {
hgs
parents: 34
diff changeset
   367
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 34
diff changeset
   368
    }
hgs
parents: 34
diff changeset
   369
}
hgs
parents: 34
diff changeset
   370
hgs
parents: 34
diff changeset
   371
/*!
hgs
parents: 34
diff changeset
   372
 \internal
hgs
parents: 34
diff changeset
   373
 */
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
MpMpxCollectionData *MpMpxCollectionFrameworkWrapperPrivate::collectionData()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
    return iCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
 \internal
36
hgs
parents: 35
diff changeset
   381
 */
hgs
parents: 35
diff changeset
   382
void MpMpxCollectionFrameworkWrapperPrivate::openShuffleAllSongsPath()
hgs
parents: 35
diff changeset
   383
{
hgs
parents: 35
diff changeset
   384
    TX_ENTRY
hgs
parents: 35
diff changeset
   385
    TRAPD( err, DoOpenCollectionL(ECollectionContextAllSongs) );
hgs
parents: 35
diff changeset
   386
    if ( err != KErrNone ) {
hgs
parents: 35
diff changeset
   387
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 35
diff changeset
   388
    }
hgs
parents: 35
diff changeset
   389
    else {
hgs
parents: 35
diff changeset
   390
        iShuffleAll = ETrue; 
hgs
parents: 35
diff changeset
   391
    }
hgs
parents: 35
diff changeset
   392
    TX_EXIT
hgs
parents: 35
diff changeset
   393
}
hgs
parents: 35
diff changeset
   394
hgs
parents: 35
diff changeset
   395
/*!
hgs
parents: 35
diff changeset
   396
 \internal
38
hgs
parents: 37
diff changeset
   397
 */
43
hgs
parents: 38
diff changeset
   398
void MpMpxCollectionFrameworkWrapperPrivate::retrieveSongDetails( int index )
hgs
parents: 38
diff changeset
   399
{
hgs
parents: 38
diff changeset
   400
    TX_ENTRY
hgs
parents: 38
diff changeset
   401
    TRAPD( err, DoRetrieveSongDetailsL(index) );
hgs
parents: 38
diff changeset
   402
    if ( err != KErrNone ) {
hgs
parents: 38
diff changeset
   403
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 38
diff changeset
   404
    }
hgs
parents: 38
diff changeset
   405
    TX_EXIT
hgs
parents: 38
diff changeset
   406
}
hgs
parents: 38
diff changeset
   407
hgs
parents: 38
diff changeset
   408
/*!
hgs
parents: 38
diff changeset
   409
 \internal
hgs
parents: 38
diff changeset
   410
 */
38
hgs
parents: 37
diff changeset
   411
void MpMpxCollectionFrameworkWrapperPrivate::savePath( QByteArray &data )
hgs
parents: 37
diff changeset
   412
{
hgs
parents: 37
diff changeset
   413
    TX_ENTRY
hgs
parents: 37
diff changeset
   414
    TRAPD( err, DoSavePathL( data ) );
hgs
parents: 37
diff changeset
   415
    if ( err != KErrNone ) {
hgs
parents: 37
diff changeset
   416
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 37
diff changeset
   417
    }
hgs
parents: 37
diff changeset
   418
    TX_EXIT
hgs
parents: 37
diff changeset
   419
    
hgs
parents: 37
diff changeset
   420
}
hgs
parents: 37
diff changeset
   421
hgs
parents: 37
diff changeset
   422
/*!
hgs
parents: 37
diff changeset
   423
 \internal
hgs
parents: 37
diff changeset
   424
 */
hgs
parents: 37
diff changeset
   425
void MpMpxCollectionFrameworkWrapperPrivate::restorePath( const QByteArray &data )
hgs
parents: 37
diff changeset
   426
{
hgs
parents: 37
diff changeset
   427
    TX_ENTRY
hgs
parents: 37
diff changeset
   428
    TRAPD( err, DoRestorePathL( data ) );
hgs
parents: 37
diff changeset
   429
    if ( err != KErrNone ) {
hgs
parents: 37
diff changeset
   430
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 37
diff changeset
   431
    }
hgs
parents: 37
diff changeset
   432
    TX_EXIT
hgs
parents: 37
diff changeset
   433
}
hgs
parents: 37
diff changeset
   434
hgs
parents: 37
diff changeset
   435
hgs
parents: 37
diff changeset
   436
/*!
hgs
parents: 37
diff changeset
   437
 \internal
35
hgs
parents: 34
diff changeset
   438
 Result of open or re-open operation to the Collection Framework.
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
void MpMpxCollectionFrameworkWrapperPrivate::HandleOpenL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
    const CMPXMedia& aEntries,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
    TInt aIndex,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
    TBool aComplete,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
    TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
    Q_UNUSED( aIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
    TX_UNUSED( aComplete );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
    TX_ENTRY_ARGS( "aError=" << aError << "aComplete=" << aComplete );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
    if ( aError == KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
        if ( iFirstIncrementalOpen ) {
36
hgs
parents: 35
diff changeset
   451
            iFirstIncrementalOpen = EFalse;
hgs
parents: 35
diff changeset
   452
            if( iShuffleAll ) {
hgs
parents: 35
diff changeset
   453
                iShuffleAll = EFalse;
51
hgs
parents: 47
diff changeset
   454
                TX_LOG_ARGS( "Path is ready" );
36
hgs
parents: 35
diff changeset
   455
                DoPlayAllSongsPlaylistL();
hgs
parents: 35
diff changeset
   456
            }
35
hgs
parents: 34
diff changeset
   457
            iCollectionData->setMpxMedia( aEntries, iReopen );
hgs
parents: 34
diff changeset
   458
            iReopen = EFalse;
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
        }
51
hgs
parents: 47
diff changeset
   460
        else {
hgs
parents: 47
diff changeset
   461
            iCollectionData->incrementalOpenUpdate();
hgs
parents: 47
diff changeset
   462
        }
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
    else {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
void MpMpxCollectionFrameworkWrapperPrivate::HandleOpenL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
    const CMPXCollectionPlaylist& aPlaylist,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
    TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
    TX_ENTRY_ARGS( "aError=" << aError );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
    if ( aError == KErrNone ) {
35
hgs
parents: 34
diff changeset
   480
        //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
   481
        createPlaybackUtilityL();
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
        iPlaybackUtility->InitL( aPlaylist, ETrue );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
        emit q_ptr->collectionPlaylistOpened();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
    else {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
void MpMpxCollectionFrameworkWrapperPrivate::HandleCollectionMessage( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
    CMPXMessage* aMsg,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
    TInt aErr )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
    TX_ENTRY_ARGS( "aErr=" << aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
    if ( aErr == KErrNone && aMsg )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
        TRAP_IGNORE( DoHandleCollectionMessageL( *aMsg ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
void MpMpxCollectionFrameworkWrapperPrivate::HandleCollectionMediaL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
    const CMPXMedia& aMedia,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
    TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
{
43
hgs
parents: 38
diff changeset
   513
    TX_ENTRY
hgs
parents: 38
diff changeset
   514
    if ( KErrNone != aError ){
hgs
parents: 38
diff changeset
   515
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
hgs
parents: 38
diff changeset
   516
        TX_EXIT
hgs
parents: 38
diff changeset
   517
        return;
hgs
parents: 38
diff changeset
   518
    }
hgs
parents: 38
diff changeset
   519
    iSongData->setMpxMedia( aMedia );
hgs
parents: 38
diff changeset
   520
    TX_EXIT
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
 Handles the completion of any collection helper event.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
void MpMpxCollectionFrameworkWrapperPrivate::HandleOperationCompleteL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
    TCHelperOperation aOperation,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
    TInt aErr,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
    void* aArgument )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
    TX_ENTRY_ARGS( "aErr=" << aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
    switch( aOperation ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
    case EDeleteOp:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
        emit q_ptr->songsDeleted( KErrNone == aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
    case EAddOp:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
        emit q_ptr->playlistSaved( KErrNone == aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
    case ERenameOp:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
        emit q_ptr->playlistsRenamed( KErrNone == aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
    default:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   545
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
    if ( aArgument ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
        delete ( CBase* )aArgument;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
void MpMpxCollectionFrameworkWrapperPrivate::HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
    TX_ENTRY_ARGS( "aError=" << aError );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
    if ( aError == KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
        if ( iIsolatedCollectionData ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
            delete iIsolatedCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
            iIsolatedCollectionData = 0;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
        }  
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
        iIsolatedCollectionData = new MpMpxCollectionData();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
        iIsolatedCollectionData->setMpxMedia( aEntries );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
        emit q_ptr->isolatedCollectionOpened( iIsolatedCollectionData );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
    else {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
 */
38
hgs
parents: 37
diff changeset
   576
void MpMpxCollectionFrameworkWrapperPrivate::HandleIsolatedOpenRestorePathL( const CMPXCollectionPath& aPath, TInt aError )
hgs
parents: 37
diff changeset
   577
{
hgs
parents: 37
diff changeset
   578
    TX_ENTRY_ARGS( "aError=" << aError );
hgs
parents: 37
diff changeset
   579
    if ( aError == KErrNone ) {
hgs
parents: 37
diff changeset
   580
        CMPXCollectionPath* cpath = CMPXCollectionPath::NewL( aPath );
hgs
parents: 37
diff changeset
   581
        CleanupStack::PushL( cpath );
hgs
parents: 37
diff changeset
   582
        if ( cpath->Count() <= 0 ) {
hgs
parents: 37
diff changeset
   583
            //There are no entries on the path
hgs
parents: 37
diff changeset
   584
            if ( !iRestoreDefaultPath ) {
hgs
parents: 37
diff changeset
   585
                //Try restoring default path if not already tried
hgs
parents: 37
diff changeset
   586
                //This is a special case where a playlist's songs where on the MMC and it was removed
hgs
parents: 37
diff changeset
   587
                iRestoreDefaultPath = ETrue;
hgs
parents: 37
diff changeset
   588
                iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
   589
                CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
hgs
parents: 37
diff changeset
   590
                CleanupStack::PushL( cpath );
hgs
parents: 37
diff changeset
   591
                iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
   592
                CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
   593
            }
hgs
parents: 37
diff changeset
   594
            else {
hgs
parents: 37
diff changeset
   595
                //emit signal to go back to collection view because there is no music
hgs
parents: 37
diff changeset
   596
                emit q_ptr->restorePathFailed();
hgs
parents: 37
diff changeset
   597
            }
hgs
parents: 37
diff changeset
   598
        }
hgs
parents: 37
diff changeset
   599
        else if ( iRestorePathIndex ) {
hgs
parents: 37
diff changeset
   600
            //If RestorePathIndex equals zero there is no need to check with previous index
hgs
parents: 37
diff changeset
   601
            //just go and create playlist below
hgs
parents: 37
diff changeset
   602
            if ( iRestorePathIndex == cpath->IndexOfId( iRestorePathIndexId ) ) {
hgs
parents: 37
diff changeset
   603
                //Song is in path and maintains previous position
hgs
parents: 37
diff changeset
   604
                cpath->Set( iRestorePathIndex );
hgs
parents: 37
diff changeset
   605
                CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 37
diff changeset
   606
                CleanupStack::PushL( playList );
hgs
parents: 37
diff changeset
   607
                createPlaybackUtilityL();
hgs
parents: 37
diff changeset
   608
                iPlaybackUtility->InitL( *playList, EFalse );
hgs
parents: 37
diff changeset
   609
                CleanupStack::PopAndDestroy( playList );
hgs
parents: 37
diff changeset
   610
            }
hgs
parents: 37
diff changeset
   611
            else { 
hgs
parents: 37
diff changeset
   612
                //Re open path starting at the beginning of the collection
hgs
parents: 37
diff changeset
   613
                iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
   614
                cpath->Back(); 
hgs
parents: 37
diff changeset
   615
                iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
   616
            }
hgs
parents: 37
diff changeset
   617
        }
hgs
parents: 37
diff changeset
   618
        else {
hgs
parents: 37
diff changeset
   619
            //We create a playlist right away since there is no need to check the index for the first element
hgs
parents: 37
diff changeset
   620
            CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 37
diff changeset
   621
            CleanupStack::PushL( playList );
hgs
parents: 37
diff changeset
   622
            createPlaybackUtilityL();
hgs
parents: 37
diff changeset
   623
            iPlaybackUtility->InitL( *playList, EFalse );
hgs
parents: 37
diff changeset
   624
            CleanupStack::PopAndDestroy( playList );
hgs
parents: 37
diff changeset
   625
        }
hgs
parents: 37
diff changeset
   626
        CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
   627
    }
hgs
parents: 37
diff changeset
   628
    else if ( aError == KErrNotFound ) {
hgs
parents: 37
diff changeset
   629
        //Path not found (e.g. MMC removed) try restoring default path
hgs
parents: 37
diff changeset
   630
        iRestoreDefaultPath = ETrue;
hgs
parents: 37
diff changeset
   631
        iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
   632
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
hgs
parents: 37
diff changeset
   633
        CleanupStack::PushL( cpath );
hgs
parents: 37
diff changeset
   634
        iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
   635
        CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
   636
    }
hgs
parents: 37
diff changeset
   637
    else {
hgs
parents: 37
diff changeset
   638
        //Open path failed
hgs
parents: 37
diff changeset
   639
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
hgs
parents: 37
diff changeset
   640
    }
hgs
parents: 37
diff changeset
   641
    TX_EXIT
hgs
parents: 37
diff changeset
   642
}
hgs
parents: 37
diff changeset
   643
hgs
parents: 37
diff changeset
   644
/*!
hgs
parents: 37
diff changeset
   645
 \internal
hgs
parents: 37
diff changeset
   646
 */
35
hgs
parents: 34
diff changeset
   647
void MpMpxCollectionFrameworkWrapperPrivate::HandleFindAllL( const CMPXMedia& aResults, TBool aComplete, TInt aError )
hgs
parents: 34
diff changeset
   648
{
hgs
parents: 34
diff changeset
   649
    Q_UNUSED( aComplete );
hgs
parents: 34
diff changeset
   650
    TX_ENTRY_ARGS( "aError=" << aError );
hgs
parents: 34
diff changeset
   651
hgs
parents: 34
diff changeset
   652
    if ( aError == KErrNone ) {
hgs
parents: 34
diff changeset
   653
        iCollectionData->setAlbumContent( aResults );
hgs
parents: 34
diff changeset
   654
    }
hgs
parents: 34
diff changeset
   655
}
hgs
parents: 34
diff changeset
   656
hgs
parents: 34
diff changeset
   657
/*!
hgs
parents: 34
diff changeset
   658
 \internal
hgs
parents: 34
diff changeset
   659
 */
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
void MpMpxCollectionFrameworkWrapperPrivate::DoInitL()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
    TX_ENTRY
43
hgs
parents: 38
diff changeset
   663
    iCollectionUtility = MMPXCollectionUtility::NewL( this, iHostUid );
hgs
parents: 38
diff changeset
   664
    iCollectionUiHelper = CMPXCollectionHelperFactory:: NewCollectionUiHelperL( iHostUid );
hgs
parents: 38
diff changeset
   665
    iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this, iHostUid );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
    iCollectionData = new MpMpxCollectionData();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   667
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
void MpMpxCollectionFrameworkWrapperPrivate::DoOpenCollectionL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
    TCollectionContext aContext )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
    TX_ENTRY_ARGS( "aContext=" << aContext );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
    switch ( aContext ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
    case ECollectionContextAllSongs:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
        CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   683
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
    case ECollectionContextArtists:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   690
        CleanupStack::PushL( cpath );
35
hgs
parents: 34
diff changeset
   691
        cpath->AppendL( BrowseArtist );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
    case ECollectionContextAlbums:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   697
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   698
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   699
        CleanupStack::PushL( cpath );
35
hgs
parents: 34
diff changeset
   700
        cpath->AppendL( BrowseAlbum );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
    case ECollectionContextPlaylists:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicPlaylistPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
        CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   712
        }
35
hgs
parents: 34
diff changeset
   713
    case ECollectionContextAlbumsMediaWall:
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   715
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   716
        CleanupStack::PushL( cpath );
35
hgs
parents: 34
diff changeset
   717
        cpath->AppendL( BrowseAlbumMediaWall );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   719
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   722
    default:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   723
        TX_LOG_ARGS( "Error: Unexpected context; should never get here." );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   727
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   728
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
void MpMpxCollectionFrameworkWrapperPrivate::DoOpenCollectionItemL( TInt aIndex )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
    {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
    TX_ENTRY_ARGS( "aIndex=" << aIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
    iCollectionUtility->Collection().OpenL( aIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   738
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
void MpMpxCollectionFrameworkWrapperPrivate::DoIncrementalOpenL()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   743
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   744
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
    // Cancel any reads
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   746
    iIncrementalOpenUtil->Stop();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   747
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   748
    // Start the read
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   749
    iFirstIncrementalOpen = ETrue;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   750
    RArray<TMPXAttribute> attrs;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   751
    CleanupClosePushL( attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   752
    TArray<TMPXAttribute> ary = attrs.Array();
51
hgs
parents: 47
diff changeset
   753
    iIncrementalOpenUtil->SetDelay( KIncrementalDelay );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
    iIncrementalOpenUtil->StartL( ary, KIncrementalFetchBlockSize,
51
hgs
parents: 47
diff changeset
   755
            0, CMPXCollectionOpenUtility::EFetchDown );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   756
    CleanupStack::PopAndDestroy( &attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   757
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   758
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   759
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   760
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   763
void MpMpxCollectionFrameworkWrapperPrivate::DoReopenCollectionL()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   764
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   765
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   766
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   767
    CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   768
    cpath->Back();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
    iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   770
    CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   771
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   772
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   773
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   774
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   776
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   777
void MpMpxCollectionFrameworkWrapperPrivate::DoBackL()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   780
    iCollectionUtility->Collection().BackL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   781
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   782
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   783
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   786
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   787
void MpMpxCollectionFrameworkWrapperPrivate::DoFindPlaylistsL( QStringList &playlists )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   788
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   789
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   790
    delete iUserPlaylists;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   791
    iUserPlaylists = NULL;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   792
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   793
    RArray<TMPXAttribute> attrs;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   794
    CleanupClosePushL( attrs );
45
hgs
parents: 43
diff changeset
   795
    attrs.AppendL( KMPXMediaGeneralId );
hgs
parents: 43
diff changeset
   796
    attrs.AppendL( KMPXMediaGeneralTitle );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   797
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   798
    CMPXMedia* criteria = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   799
    CleanupStack::PushL( criteria );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   800
    criteria->SetTObjectValueL<TMPXGeneralType>( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   801
        KMPXMediaGeneralType, EMPXGroup );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   802
    criteria->SetTObjectValueL<TMPXGeneralCategory>( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   803
        KMPXMediaGeneralCategory, EMPXPlaylist );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   804
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   805
    // Look up collection UID and set to criteria
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   806
    RArray<TUid> ary;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   807
    CleanupClosePushL( ary );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   808
    ary.AppendL( TUid::Uid( EMPXCollectionPluginMusic ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   809
    TUid musicCollection = iCollectionUtility->CollectionIDL( ary.Array() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   810
    CleanupStack::PopAndDestroy( &ary );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   811
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   812
    criteria->SetTObjectValueL<TUid>( KMPXMediaGeneralCollectionId, musicCollection );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   813
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   814
    iUserPlaylists = iCollectionUtility->Collection().FindAllL( *criteria, attrs.Array() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   815
    CleanupStack::PopAndDestroy( criteria );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   816
    CleanupStack::PopAndDestroy( &attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   817
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   818
    if ( iUserPlaylists ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   819
        const CMPXMediaArray* mediaArray =
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   820
            iUserPlaylists->Value<CMPXMediaArray>( KMPXMediaArrayContents );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   821
        User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   822
        TInt count = mediaArray->Count();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   823
        for ( TInt i = 0; i < count; i++ ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   824
            CMPXMedia* media( mediaArray->AtL( i ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   825
            const TDesC& titleText = media->ValueText( KMPXMediaGeneralTitle );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   826
            if ( titleText.Compare( KNullDesC ) != 0 ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   827
            playlists += QString::fromUtf16( titleText.Ptr(), titleText.Length() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   828
            }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   829
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   830
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   831
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   832
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   833
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   834
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   835
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   836
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   837
void MpMpxCollectionFrameworkWrapperPrivate::DoCreatePlaylistL( QString &playlistName, QList<int> &selection, MpMpxCollectionData* collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   838
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   839
    TX_ENTRY_ARGS( "playlistName=" << playlistName );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   840
    CMPXMedia* tracks = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   841
    CleanupStack::PushL( tracks );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   842
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   843
    TPtrC ptr( reinterpret_cast<const TText*>( playlistName.constData() ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   844
    tracks->SetTextValueL( KMPXMediaGeneralTitle, ptr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   845
    tracks->SetTextValueL( KMPXMediaGeneralUri, KPlaylistPath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   846
    //if collection data is not provided we use the browsing collection.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   847
    PreparePlaylistMediaL( *tracks, selection, collectionData ? collectionData : iCollectionData );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   848
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   849
    iCollectionUiHelper->IncAddL( *tracks, this, KMPXChunkSize );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   850
    CleanupStack::PopAndDestroy( tracks );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   851
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   852
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   853
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   854
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   855
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   856
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   857
void MpMpxCollectionFrameworkWrapperPrivate::DoSaveToPlaylistL( TMPXItemId playlistId, QList<int> &selection, MpMpxCollectionData *collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   858
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   859
    TX_ENTRY_ARGS( "playlistId=" << int( playlistId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   860
    
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   861
    CMPXMedia* tracks = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   862
    CleanupStack::PushL( tracks );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   863
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   864
    RArray<TUid> ary;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   865
    CleanupClosePushL( ary );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   866
    ary.AppendL( TUid::Uid( EMPXCollectionPluginMusic ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   867
    TUid musicCollection = iCollectionUtility->CollectionIDL( ary.Array() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   868
    CleanupStack::PopAndDestroy( &ary );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   869
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   870
    tracks->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, playlistId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   871
    tracks->SetTObjectValueL<TUid>( KMPXMediaGeneralCollectionId, musicCollection );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   872
    PreparePlaylistMediaL( *tracks, selection, collectionData );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   873
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   874
    iCollectionUiHelper->IncAddL( *tracks, this, KMPXChunkSize );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   875
    CleanupStack::PopAndDestroy( tracks );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   876
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   877
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   878
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   879
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   880
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   881
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   882
void MpMpxCollectionFrameworkWrapperPrivate::DoSaveToPlaylistL( int playlistIndex, QList<int> &selection )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   883
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   884
    TX_ENTRY_ARGS( "playlistIndex=" << playlistIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   885
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   886
    const CMPXMediaArray* mediaArray =  iUserPlaylists->Value<CMPXMediaArray>( KMPXMediaArrayContents );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   887
    User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   888
    CMPXMedia* media( mediaArray->AtL( playlistIndex ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   889
    TMPXItemId playlistId = media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   890
    DoSaveToPlaylistL( playlistId, selection, iCollectionData );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   891
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   892
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   893
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   894
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   895
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   896
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   897
void MpMpxCollectionFrameworkWrapperPrivate::DoSaveToCurrentPlaylistL( QList<int> &selection, MpMpxCollectionData *collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   898
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   899
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   900
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   901
    const CMPXMedia& container = iCollectionData->containerMedia();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   902
    if ( container.ValueTObjectL<TMPXGeneralType>(KMPXMediaGeneralType) != EMPXItem && 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   903
        container.ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory) != EMPXPlaylist) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   904
        User::Leave( KErrArgument );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   905
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   906
    TMPXItemId playlistId( container.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   907
    DoSaveToPlaylistL( playlistId, selection, collectionData );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   908
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   909
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   910
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   911
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   912
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   913
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   914
void MpMpxCollectionFrameworkWrapperPrivate::DoDeleteSongsL( QList<int> &selection )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   915
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   916
    int count = selection.count();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   917
    TX_ENTRY_ARGS( "selection count=" << count );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   918
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   919
    CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   920
    CleanupStack::PushL( path );
35
hgs
parents: 34
diff changeset
   921
    
34
hgs
parents: 22
diff changeset
   922
    if (count > 1) {
hgs
parents: 22
diff changeset
   923
        for ( TInt i = 0; i < count; i++ ){
hgs
parents: 22
diff changeset
   924
            path->SelectL( selection.at( i ) );
hgs
parents: 22
diff changeset
   925
        }
hgs
parents: 22
diff changeset
   926
    }
hgs
parents: 22
diff changeset
   927
    else {
hgs
parents: 22
diff changeset
   928
        path->Set( selection.at(0) );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   929
    }
35
hgs
parents: 34
diff changeset
   930
        
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   931
    iCollectionUiHelper->DeleteL( *path, this );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   932
    CleanupStack::PopAndDestroy( path );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   933
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   934
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   935
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   936
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   937
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   938
 */
35
hgs
parents: 34
diff changeset
   939
void MpMpxCollectionFrameworkWrapperPrivate::DoDeleteAlbumSongsL( QList<int> &selection )
hgs
parents: 34
diff changeset
   940
{
hgs
parents: 34
diff changeset
   941
    int count = selection.count();
hgs
parents: 34
diff changeset
   942
    TX_ENTRY_ARGS( "selection count=" << count );
hgs
parents: 34
diff changeset
   943
hgs
parents: 34
diff changeset
   944
    CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
hgs
parents: 34
diff changeset
   945
    CleanupStack::PushL( path );
hgs
parents: 34
diff changeset
   946
    MPX_DEBUG_PATH( *path );
hgs
parents: 34
diff changeset
   947
hgs
parents: 34
diff changeset
   948
    CMPXMediaArray *mediaArray;
hgs
parents: 34
diff changeset
   949
    const CMPXMedia& container = iCollectionData->containerMedia();
hgs
parents: 34
diff changeset
   950
    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
hgs
parents: 34
diff changeset
   951
    int currentAlbumIndex = iCollectionData->currentAlbumIndex();
hgs
parents: 34
diff changeset
   952
    CMPXMedia* album( mediaArray->AtL( currentAlbumIndex ) );
hgs
parents: 34
diff changeset
   953
    if ( album->IsSupported(KMPXMediaArrayContents) ) {
hgs
parents: 34
diff changeset
   954
        const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
hgs
parents: 34
diff changeset
   955
        User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
hgs
parents: 34
diff changeset
   956
        int index = selection.at(0);
hgs
parents: 34
diff changeset
   957
        CMPXMedia* song = songs->AtL(index);
hgs
parents: 34
diff changeset
   958
hgs
parents: 34
diff changeset
   959
        TMPXItemId id( song->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
hgs
parents: 34
diff changeset
   960
        path->AppendL( id );   // Append the song ID to be deleted
hgs
parents: 34
diff changeset
   961
        path->Set( 0 );        // Select 1st song
hgs
parents: 34
diff changeset
   962
hgs
parents: 34
diff changeset
   963
        iCollectionUiHelper->DeleteL( *path, this );
hgs
parents: 34
diff changeset
   964
    }
hgs
parents: 34
diff changeset
   965
    CleanupStack::PopAndDestroy( path );
hgs
parents: 34
diff changeset
   966
    TX_EXIT
hgs
parents: 34
diff changeset
   967
}
hgs
parents: 34
diff changeset
   968
hgs
parents: 34
diff changeset
   969
/*!
hgs
parents: 34
diff changeset
   970
 \internal
hgs
parents: 34
diff changeset
   971
 */
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   972
void MpMpxCollectionFrameworkWrapperPrivate::DoRenamePlaylistL( QString &newName, int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   973
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   974
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   975
    CMPXMediaArray *mediaArray;  
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   976
    const CMPXMedia& container = iCollectionData->containerMedia();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   977
    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   978
    CMPXMedia* currentPlaylistMedia( mediaArray->AtL( index ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   979
    TMPXItemId id( currentPlaylistMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   980
    DoRenamePlaylistL( id, newName );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   981
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   982
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   983
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   984
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   985
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   986
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   987
void MpMpxCollectionFrameworkWrapperPrivate::DoRenamePlaylistL( QString &newName )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   988
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   989
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   990
    const CMPXMedia& container = iCollectionData->containerMedia();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   991
    TMPXItemId id( container.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   992
    DoRenamePlaylistL( id, newName );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   993
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   994
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   995
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   996
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   997
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   998
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   999
void MpMpxCollectionFrameworkWrapperPrivate::DoRenamePlaylistL( TMPXItemId id, QString &newName )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1000
 {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1001
     CMPXMedia* media = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1002
     CleanupStack::PushL( media );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1003
     media->SetTObjectValueL<TMPXGeneralType>( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1004
     KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1005
     media->SetTObjectValueL<TMPXGeneralCategory>( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1006
     KMPXMediaGeneralCategory, EMPXPlaylist );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1007
     media->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, id );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1008
     TPtrC ptr( reinterpret_cast<const TText*>( newName.constData() ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1009
     media->SetTextValueL( KMPXMediaGeneralTitle, ptr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1010
     iCollectionUiHelper->RenameL( *media, this );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1011
     CleanupStack::PopAndDestroy( media );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1012
 }     
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1013
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1014
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1015
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1016
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1017
void MpMpxCollectionFrameworkWrapperPrivate::DoSetShuffleL( bool active )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1018
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1019
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1020
    if ( iPlaybackUtility ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1021
        iPlaybackUtility->SetL( EPbPropertyRandomMode, active );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1022
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1023
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1024
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1025
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1026
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1027
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1028
 */
35
hgs
parents: 34
diff changeset
  1029
void MpMpxCollectionFrameworkWrapperPrivate::DoPreviewSongL( int index )
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1030
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1031
    TX_ENTRY
35
hgs
parents: 34
diff changeset
  1032
    
hgs
parents: 34
diff changeset
  1033
    // Get the current path
hgs
parents: 34
diff changeset
  1034
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 34
diff changeset
  1035
    CleanupStack::PushL( cpath );
hgs
parents: 34
diff changeset
  1036
    MPX_DEBUG_PATH( *cpath );
hgs
parents: 34
diff changeset
  1037
    cpath->Back();
hgs
parents: 34
diff changeset
  1038
hgs
parents: 34
diff changeset
  1039
    TMPXItemId id( iCollectionData->itemId(index) );
hgs
parents: 34
diff changeset
  1040
    cpath->AppendL( id ); // Top level items of songs
hgs
parents: 34
diff changeset
  1041
    cpath->Set( 0 ); // Select 1st song
hgs
parents: 34
diff changeset
  1042
hgs
parents: 34
diff changeset
  1043
    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 34
diff changeset
  1044
    CleanupStack::PushL( playList );
hgs
parents: 34
diff changeset
  1045
    playList->SetToFirst();
hgs
parents: 34
diff changeset
  1046
    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
  1047
    createPlaybackUtilityL();
hgs
parents: 34
diff changeset
  1048
    iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents: 34
diff changeset
  1049
    emit q_ptr->collectionPlaylistOpened();
hgs
parents: 34
diff changeset
  1050
hgs
parents: 34
diff changeset
  1051
    CleanupStack::PopAndDestroy( playList );
hgs
parents: 34
diff changeset
  1052
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 34
diff changeset
  1053
    TX_EXIT
hgs
parents: 34
diff changeset
  1054
}
hgs
parents: 34
diff changeset
  1055
hgs
parents: 34
diff changeset
  1056
/*!
hgs
parents: 34
diff changeset
  1057
 \internal
hgs
parents: 34
diff changeset
  1058
 */
hgs
parents: 34
diff changeset
  1059
void MpMpxCollectionFrameworkWrapperPrivate::DoPreviewAlbumSongL( int index )
hgs
parents: 34
diff changeset
  1060
{
hgs
parents: 34
diff changeset
  1061
    TX_ENTRY
hgs
parents: 34
diff changeset
  1062
    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1063
    if ( !iPlaybackUtility ) {
43
hgs
parents: 38
diff changeset
  1064
        iPlaybackUtility = MMPXPlaybackUtility::UtilityL( iHostUid );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1065
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1066
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1067
    // Get the current path
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1068
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1069
    CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1070
    MPX_DEBUG_PATH( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1071
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1072
    CMPXMediaArray *mediaArray;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1073
    const CMPXMedia& container = iCollectionData->containerMedia();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1074
    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
35
hgs
parents: 34
diff changeset
  1075
    int currentAlbumIndex = iCollectionData->currentAlbumIndex();
hgs
parents: 34
diff changeset
  1076
    CMPXMedia* album( mediaArray->AtL( currentAlbumIndex ) );
hgs
parents: 34
diff changeset
  1077
    if ( album->IsSupported(KMPXMediaArrayContents) ) {
hgs
parents: 34
diff changeset
  1078
        const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
hgs
parents: 34
diff changeset
  1079
        User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
hgs
parents: 34
diff changeset
  1080
        CMPXMedia* song = songs->AtL(index);
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1081
35
hgs
parents: 34
diff changeset
  1082
        TMPXItemId id( song->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
hgs
parents: 34
diff changeset
  1083
        cpath->AppendL( id );   // Top level items of songs
hgs
parents: 34
diff changeset
  1084
        cpath->Set( 0 );        // Select 1st song
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1085
35
hgs
parents: 34
diff changeset
  1086
        CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 34
diff changeset
  1087
        CleanupStack::PushL( playList );
hgs
parents: 34
diff changeset
  1088
        playList->SetToFirst();
hgs
parents: 34
diff changeset
  1089
        //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
  1090
        iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents: 34
diff changeset
  1091
        emit q_ptr->collectionPlaylistOpened();
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1092
35
hgs
parents: 34
diff changeset
  1093
        CleanupStack::PopAndDestroy( playList );
hgs
parents: 34
diff changeset
  1094
    }
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1095
    CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1096
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1097
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1098
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1099
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1100
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1101
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1102
void MpMpxCollectionFrameworkWrapperPrivate::DoOpenIsolatedCollectionL( TCollectionContext context )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1103
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1104
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1105
    if ( ECollectionContextAllSongs == context ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1106
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1107
        CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1108
        if ( !iIsolatedCollectionHelper ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1109
            iIsolatedCollectionHelper = CMpMpxIsolatedCollectionHelper::NewL( this );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1110
        }   
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1111
        iIsolatedCollectionHelper->OpenCollectionL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1112
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1113
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1114
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1115
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1116
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1117
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1118
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1119
void MpMpxCollectionFrameworkWrapperPrivate::DoReorderPlaylistL( int playlistId, int songId, int originalOrdinal, int newOrdinal )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1120
{
35
hgs
parents: 34
diff changeset
  1121
    iCollectionUiHelper->ReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal, this );
hgs
parents: 34
diff changeset
  1122
}
hgs
parents: 34
diff changeset
  1123
hgs
parents: 34
diff changeset
  1124
/*!
hgs
parents: 34
diff changeset
  1125
 \internal
hgs
parents: 34
diff changeset
  1126
 */
hgs
parents: 34
diff changeset
  1127
void MpMpxCollectionFrameworkWrapperPrivate::DoFindAlbumSongsL( int index )
hgs
parents: 34
diff changeset
  1128
{
hgs
parents: 34
diff changeset
  1129
    const CMPXMedia& container = iCollectionData->containerMedia();
hgs
parents: 34
diff changeset
  1130
    const CMPXMediaArray* mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1131
    CMPXMedia* album( mediaArray->AtL( index ) );
hgs
parents: 34
diff changeset
  1132
45
hgs
parents: 43
diff changeset
  1133
	// Obtain the artistId from the container
hgs
parents: 43
diff changeset
  1134
    TMPXItemId artistId = container.ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
hgs
parents: 43
diff changeset
  1135
	
hgs
parents: 43
diff changeset
  1136
    // Fetch the songs for the selected album and the artist
hgs
parents: 43
diff changeset
  1137
	// Specifying artistId is necessary to search for songs in the artist’s unknown album.
35
hgs
parents: 34
diff changeset
  1138
    TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
hgs
parents: 34
diff changeset
  1139
    CMPXMedia* findCriteria = CMPXMedia::NewL();
hgs
parents: 34
diff changeset
  1140
    CleanupStack::PushL( findCriteria );
hgs
parents: 34
diff changeset
  1141
    findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
hgs
parents: 34
diff changeset
  1142
    findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
hgs
parents: 34
diff changeset
  1143
    findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, albumId );
45
hgs
parents: 43
diff changeset
  1144
    findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralContainerId, artistId );
35
hgs
parents: 34
diff changeset
  1145
    RArray<TMPXAttribute> attrs;
hgs
parents: 34
diff changeset
  1146
    CleanupClosePushL( attrs );
45
hgs
parents: 43
diff changeset
  1147
    attrs.AppendL( TMPXAttribute( KMPXMediaIdGeneral,
35
hgs
parents: 34
diff changeset
  1148
                                 EMPXMediaGeneralTitle |
hgs
parents: 34
diff changeset
  1149
								 EMPXMediaGeneralUri |
hgs
parents: 34
diff changeset
  1150
                                 EMPXMediaGeneralId |
hgs
parents: 34
diff changeset
  1151
                                 EMPXMediaGeneralType |
hgs
parents: 34
diff changeset
  1152
                                 EMPXMediaGeneralCategory |
hgs
parents: 34
diff changeset
  1153
                                 EMPXMediaGeneralFlags ) );
45
hgs
parents: 43
diff changeset
  1154
    attrs.AppendL( KMPXMediaMusicAlbumTrack );
35
hgs
parents: 34
diff changeset
  1155
hgs
parents: 34
diff changeset
  1156
    iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array(), *this );
hgs
parents: 34
diff changeset
  1157
    CleanupStack::PopAndDestroy( &attrs );
hgs
parents: 34
diff changeset
  1158
    CleanupStack::PopAndDestroy( findCriteria );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1159
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1160
35
hgs
parents: 34
diff changeset
  1161
/*!
hgs
parents: 34
diff changeset
  1162
 \internal
hgs
parents: 34
diff changeset
  1163
 */
hgs
parents: 34
diff changeset
  1164
void MpMpxCollectionFrameworkWrapperPrivate::DoPlayAlbumSongsL( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
hgs
parents: 34
diff changeset
  1165
{
hgs
parents: 34
diff changeset
  1166
    TX_ENTRY
hgs
parents: 34
diff changeset
  1167
hgs
parents: 34
diff changeset
  1168
    RArray<TMPXItemId> ids;
hgs
parents: 34
diff changeset
  1169
    CleanupClosePushL(ids);
hgs
parents: 34
diff changeset
  1170
hgs
parents: 34
diff changeset
  1171
    CMPXCollectionPath* cpath;
hgs
parents: 34
diff changeset
  1172
    
hgs
parents: 34
diff changeset
  1173
    //Following check is for a use case for media wall, where it is required 
hgs
parents: 34
diff changeset
  1174
    //to play songs that are browsed by an isolated collection.
hgs
parents: 34
diff changeset
  1175
    if ( collectionData->context() ==  ECollectionContextAlbumsMediaWall ) {
hgs
parents: 34
diff changeset
  1176
        //Get the Media Wall path.
hgs
parents: 34
diff changeset
  1177
        cpath = iCollectionUiHelper->MusicMenuPathL();
hgs
parents: 34
diff changeset
  1178
        CleanupStack::PushL( cpath );
hgs
parents: 34
diff changeset
  1179
        //TODO: change to BrowseAlbumMediaWall befor when merging with olveras changes.
hgs
parents: 34
diff changeset
  1180
        cpath->AppendL( BrowseAlbum );
hgs
parents: 34
diff changeset
  1181
        const TMPXItemId albumId = collectionData->itemId( albumIndex );
hgs
parents: 34
diff changeset
  1182
        //Append the selected album.
hgs
parents: 34
diff changeset
  1183
        RArray<TMPXItemId> items;
hgs
parents: 34
diff changeset
  1184
        CleanupClosePushL(items);
hgs
parents: 34
diff changeset
  1185
        items.AppendL(albumId);
hgs
parents: 34
diff changeset
  1186
        cpath->AppendL(items.Array());
hgs
parents: 34
diff changeset
  1187
        CleanupStack::PopAndDestroy( &items );
hgs
parents: 34
diff changeset
  1188
        cpath->Set( 0 ); // Set the album.
hgs
parents: 34
diff changeset
  1189
        
hgs
parents: 34
diff changeset
  1190
    }
hgs
parents: 34
diff changeset
  1191
    else {
hgs
parents: 34
diff changeset
  1192
        // Get the current path
hgs
parents: 34
diff changeset
  1193
        cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 34
diff changeset
  1194
        CleanupStack::PushL( cpath );
hgs
parents: 34
diff changeset
  1195
        cpath->Set(albumIndex); // Set the selected album
hgs
parents: 34
diff changeset
  1196
    }
hgs
parents: 34
diff changeset
  1197
    MPX_DEBUG_PATH( *cpath );
hgs
parents: 34
diff changeset
  1198
hgs
parents: 34
diff changeset
  1199
    CMPXMediaArray *mediaArray;
hgs
parents: 34
diff changeset
  1200
    const CMPXMedia& container = collectionData->containerMedia();
hgs
parents: 34
diff changeset
  1201
    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
hgs
parents: 34
diff changeset
  1202
    CMPXMedia* album( mediaArray->AtL( albumIndex ) );
hgs
parents: 34
diff changeset
  1203
    const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
hgs
parents: 34
diff changeset
  1204
    User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
hgs
parents: 34
diff changeset
  1205
hgs
parents: 34
diff changeset
  1206
    TInt count = songs->Count();
hgs
parents: 34
diff changeset
  1207
    for ( TInt i = 0; i < count; ++i ) {
hgs
parents: 34
diff changeset
  1208
        CMPXMedia* song = songs->AtL(i);
hgs
parents: 34
diff changeset
  1209
        const TMPXItemId id = song->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
hgs
parents: 34
diff changeset
  1210
        ids.AppendL(id);
hgs
parents: 34
diff changeset
  1211
    }
hgs
parents: 34
diff changeset
  1212
hgs
parents: 34
diff changeset
  1213
    cpath->AppendL(ids.Array());    // Top level items of songs
hgs
parents: 34
diff changeset
  1214
    cpath->Set(songIndex);          // Set the selected song
hgs
parents: 34
diff changeset
  1215
    MPX_DEBUG_PATH(*cpath);
hgs
parents: 34
diff changeset
  1216
hgs
parents: 34
diff changeset
  1217
    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 34
diff changeset
  1218
    CleanupStack::PushL( playList );
hgs
parents: 34
diff changeset
  1219
    
hgs
parents: 34
diff changeset
  1220
    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
  1221
    createPlaybackUtilityL();
hgs
parents: 34
diff changeset
  1222
    iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents: 34
diff changeset
  1223
    emit q_ptr->collectionPlaylistOpened();
hgs
parents: 34
diff changeset
  1224
hgs
parents: 34
diff changeset
  1225
    CleanupStack::PopAndDestroy( playList );
hgs
parents: 34
diff changeset
  1226
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 34
diff changeset
  1227
    CleanupStack::PopAndDestroy( &ids );
hgs
parents: 34
diff changeset
  1228
    TX_EXIT
hgs
parents: 34
diff changeset
  1229
}
hgs
parents: 34
diff changeset
  1230
hgs
parents: 34
diff changeset
  1231
/*!
hgs
parents: 34
diff changeset
  1232
 \internal
hgs
parents: 34
diff changeset
  1233
 */
hgs
parents: 34
diff changeset
  1234
void MpMpxCollectionFrameworkWrapperPrivate::setRepeatFeatureEnabled( bool enable ) 
hgs
parents: 34
diff changeset
  1235
{
hgs
parents: 34
diff changeset
  1236
    iRepeatFeature = enable;
hgs
parents: 34
diff changeset
  1237
}
hgs
parents: 34
diff changeset
  1238
hgs
parents: 34
diff changeset
  1239
/*!
hgs
parents: 34
diff changeset
  1240
 \internal
hgs
parents: 34
diff changeset
  1241
 */
hgs
parents: 34
diff changeset
  1242
void MpMpxCollectionFrameworkWrapperPrivate::setShuffleFeatureEnabled( bool enable )
hgs
parents: 34
diff changeset
  1243
{
hgs
parents: 34
diff changeset
  1244
    iShuffleFeature = enable;
hgs
parents: 34
diff changeset
  1245
}
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1246
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1247
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1248
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1249
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1250
void MpMpxCollectionFrameworkWrapperPrivate::DoHandleCollectionMessageL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1251
    const CMPXMessage& aMsg )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1252
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1253
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1254
    TMPXMessageId id( aMsg.ValueTObjectL<TMPXMessageId>( KMPXMessageGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1255
    if ( KMPXMessageGeneral == id ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1256
        TInt event( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1257
        TInt type( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralType ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1258
        TInt data( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralData ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1259
        TX_LOG_ARGS( "event=" << event << ", type=" << type << ", data=" << data );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1260
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1261
        if ( event == TMPXCollectionMessage::EPathChanged &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1262
             type == EMcPathChangedByOpen &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1263
             data == EMcContainerOpened ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1264
            // Incremental Open when browsing to the next level
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1265
            DoIncrementalOpenL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1266
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1267
        else if ( event == TMPXCollectionMessage::EPathChanged &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1268
                  type == EMcPathChangedByOpen &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1269
                  data == EMcItemOpened ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1270
            // Opened a song
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1271
            // This will result in HandleOpenL with CMPXCollectionPlaylist
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1272
            iCollectionUtility->Collection().OpenL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1273
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1274
    }
35
hgs
parents: 34
diff changeset
  1275
    else if( id == KMPXMessageIdItemChanged ) {
43
hgs
parents: 38
diff changeset
  1276
        TInt eventType( aMsg.ValueTObjectL<TMPXChangeEventType>( KMPXMessageChangeEventType ) );
hgs
parents: 38
diff changeset
  1277
hgs
parents: 38
diff changeset
  1278
        if ( eventType == EMPXItemDeleted || eventType == EMPXItemInserted ) {
hgs
parents: 38
diff changeset
  1279
            emit q_ptr->containerContentsChanged();
hgs
parents: 38
diff changeset
  1280
        }
hgs
parents: 38
diff changeset
  1281
    }
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1282
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1283
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1284
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1285
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1286
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1287
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1288
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1289
void MpMpxCollectionFrameworkWrapperPrivate::PreparePlaylistMediaL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1290
        CMPXMedia& aMedia,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1291
        QList<int> &selection,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1292
        MpMpxCollectionData *collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1293
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1294
    int count = selection.count();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1295
    TX_ENTRY_ARGS( "selection count=" << count );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1296
35
hgs
parents: 34
diff changeset
  1297
    const CMPXMediaArray* mediaArray = 0;
hgs
parents: 34
diff changeset
  1298
    
hgs
parents: 34
diff changeset
  1299
    if ( ( collectionData->context() == ECollectionContextArtistAlbumsTBone ) || 
hgs
parents: 34
diff changeset
  1300
         ( collectionData->context() == ECollectionContextAlbumsTBone ) ) {
hgs
parents: 34
diff changeset
  1301
        //There is no need to find the track information, for TBone we cash it under the media itself.
hgs
parents: 34
diff changeset
  1302
        //Fetching song data from container media.
hgs
parents: 34
diff changeset
  1303
        CMPXMedia* album;
hgs
parents: 34
diff changeset
  1304
        const CMPXMediaArray* albumsArray;
hgs
parents: 34
diff changeset
  1305
        albumsArray = collectionData->containerMedia().Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1306
        int index = collectionData->currentAlbumIndex();
hgs
parents: 34
diff changeset
  1307
        if ( index >= 0 ) {
hgs
parents: 34
diff changeset
  1308
            album = albumsArray->AtL( collectionData->currentAlbumIndex() );
hgs
parents: 34
diff changeset
  1309
            mediaArray = album->Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1310
        }
hgs
parents: 34
diff changeset
  1311
    }
hgs
parents: 34
diff changeset
  1312
    else {
hgs
parents: 34
diff changeset
  1313
        const CMPXMedia& container = collectionData->containerMedia();
hgs
parents: 34
diff changeset
  1314
        mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1315
    }
hgs
parents: 34
diff changeset
  1316
       
hgs
parents: 34
diff changeset
  1317
    User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1318
    CMPXMediaArray* tracksArray( CMPXMediaArray::NewL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1319
    CleanupStack::PushL( tracksArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1320
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1321
    CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1322
    CleanupStack::PushL( path );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1323
    TMPXItemId collectionId( path->Id( 0 ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1324
    CleanupStack::PopAndDestroy( path );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1325
35
hgs
parents: 34
diff changeset
  1326
    if ( collectionData->context() == ECollectionContextAlbums || 
hgs
parents: 34
diff changeset
  1327
         collectionData->context() == ECollectionContextArtistAlbums ||
hgs
parents: 34
diff changeset
  1328
         collectionData->context() == ECollectionContextArtists ) {
hgs
parents: 34
diff changeset
  1329
        //Container, it is possible to append multiple containers to a playlist. 
hgs
parents: 34
diff changeset
  1330
        //Currently we are just using single selection from the ui.
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1331
        for ( TInt i = 0; i < count; i++ ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1332
            CMPXMedia* results;
35
hgs
parents: 34
diff changeset
  1333
            CMPXMedia* container( mediaArray->AtL( selection[i] ) );
hgs
parents: 34
diff changeset
  1334
            // Fetch the songs for the selected container
34
hgs
parents: 22
diff changeset
  1335
            TMPXItemId containerId = container->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1336
            CMPXMedia* findCriteria = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1337
            CleanupStack::PushL( findCriteria );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1338
            findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1339
            findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
34
hgs
parents: 22
diff changeset
  1340
            findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, containerId );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1341
            RArray<TMPXAttribute> attrs;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1342
            CleanupClosePushL( attrs );
45
hgs
parents: 43
diff changeset
  1343
            attrs.AppendL( TMPXAttribute( KMPXMediaIdGeneral,
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1344
                                         EMPXMediaGeneralTitle |
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1345
                                         EMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1346
            results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1347
            CleanupStack::PopAndDestroy( &attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1348
            CleanupStack::PopAndDestroy( findCriteria );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1349
            CleanupStack::PushL( results );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1350
            
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1351
            const CMPXMediaArray* resultsArray = results->Value<CMPXMediaArray>( KMPXMediaArrayContents );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1352
            User::LeaveIfNull( resultsArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1353
            for ( int j = 0 ; j < resultsArray->Count();j++ ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1354
                CMPXMedia* media( resultsArray->AtL( j ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1355
                CMPXMedia* entry = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1356
                CleanupStack::PushL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1357
                entry->SetTextValueL( KMPXMediaGeneralTitle,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1358
                    media->ValueText( KMPXMediaGeneralTitle ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1359
                entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1360
                entry->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1361
                entry->SetTObjectValueL( KMPXMediaGeneralId,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1362
                    media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1363
                entry->SetTObjectValueL( KMPXMediaGeneralCollectionId, collectionId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1364
                CleanupStack::Pop( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1365
                tracksArray->AppendL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1366
            }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1367
            CleanupStack::PopAndDestroy( results );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1368
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1369
        
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1370
    }
35
hgs
parents: 34
diff changeset
  1371
    else {
hgs
parents: 34
diff changeset
  1372
        //Tracks
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1373
        for ( TInt i = 0; i < count; i++ ) {
35
hgs
parents: 34
diff changeset
  1374
            CMPXMedia* media( mediaArray->AtL( selection.at( i ) ) );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1375
            CMPXMedia* entry = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1376
            CleanupStack::PushL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1377
            entry->SetTextValueL( KMPXMediaGeneralTitle,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1378
                media->ValueText( KMPXMediaGeneralTitle ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1379
            entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1380
            entry->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1381
            entry->SetTObjectValueL( KMPXMediaGeneralId,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1382
                media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1383
            entry->SetTObjectValueL( KMPXMediaGeneralCollectionId, collectionId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1384
            CleanupStack::Pop( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1385
            tracksArray->AppendL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1386
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1387
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1388
    aMedia.SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1389
    aMedia.SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXPlaylist );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1390
    aMedia.SetCObjectValueL( KMPXMediaArrayContents, tracksArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1391
    aMedia.SetTObjectValueL( KMPXMediaArrayCount, tracksArray->Count() );
37
hgs
parents: 36
diff changeset
  1392
hgs
parents: 36
diff changeset
  1393
    emit q_ptr->aboutToAddSongs( tracksArray->Count() );
hgs
parents: 36
diff changeset
  1394
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1395
    CleanupStack::PopAndDestroy( tracksArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1396
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1397
}
35
hgs
parents: 34
diff changeset
  1398
hgs
parents: 34
diff changeset
  1399
/*!
hgs
parents: 34
diff changeset
  1400
 \internal
hgs
parents: 34
diff changeset
  1401
 TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
  1402
 */
hgs
parents: 34
diff changeset
  1403
void MpMpxCollectionFrameworkWrapperPrivate::createPlaybackUtilityL() 
hgs
parents: 34
diff changeset
  1404
{
hgs
parents: 34
diff changeset
  1405
    if ( !iPlaybackUtility ) {
hgs
parents: 34
diff changeset
  1406
43
hgs
parents: 38
diff changeset
  1407
        iPlaybackUtility = MMPXPlaybackUtility::UtilityL( iHostUid );
35
hgs
parents: 34
diff changeset
  1408
hgs
parents: 34
diff changeset
  1409
        if ( iShuffleFeature ) {
hgs
parents: 34
diff changeset
  1410
            iPlaybackUtility->SetL( EPbPropertyRandomMode, MpSettingsManager::shuffle() ? ETrue : EFalse );
hgs
parents: 34
diff changeset
  1411
        }
hgs
parents: 34
diff changeset
  1412
        if ( iRepeatFeature ) {
hgs
parents: 34
diff changeset
  1413
            iPlaybackUtility->SetL( EPbPropertyRepeatMode, MpSettingsManager::repeat() ? EPbRepeatAll : EPbRepeatOff );
hgs
parents: 34
diff changeset
  1414
        }
hgs
parents: 34
diff changeset
  1415
    }
hgs
parents: 34
diff changeset
  1416
}
hgs
parents: 34
diff changeset
  1417
36
hgs
parents: 35
diff changeset
  1418
/*!
hgs
parents: 35
diff changeset
  1419
 \internal
hgs
parents: 35
diff changeset
  1420
 */
hgs
parents: 35
diff changeset
  1421
void MpMpxCollectionFrameworkWrapperPrivate::DoPlayAllSongsPlaylistL()
hgs
parents: 35
diff changeset
  1422
{
hgs
parents: 35
diff changeset
  1423
    TX_ENTRY
hgs
parents: 35
diff changeset
  1424
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 35
diff changeset
  1425
    CleanupStack::PushL( cpath );
hgs
parents: 35
diff changeset
  1426
    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 35
diff changeset
  1427
    CleanupStack::PushL( playList );
hgs
parents: 35
diff changeset
  1428
    playList->SetShuffleL( true, false );
hgs
parents: 35
diff changeset
  1429
    MpSettingsManager::setShuffle( true );
hgs
parents: 35
diff changeset
  1430
    createPlaybackUtilityL();
hgs
parents: 35
diff changeset
  1431
    iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents: 35
diff changeset
  1432
    CleanupStack::PopAndDestroy( playList );
hgs
parents: 35
diff changeset
  1433
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 35
diff changeset
  1434
    TX_EXIT
hgs
parents: 35
diff changeset
  1435
}
hgs
parents: 35
diff changeset
  1436
38
hgs
parents: 37
diff changeset
  1437
/*!
hgs
parents: 37
diff changeset
  1438
 \internal
hgs
parents: 37
diff changeset
  1439
 */
43
hgs
parents: 38
diff changeset
  1440
void MpMpxCollectionFrameworkWrapperPrivate::DoRetrieveSongDetailsL( int index )
hgs
parents: 38
diff changeset
  1441
{
hgs
parents: 38
diff changeset
  1442
    TX_ENTRY
hgs
parents: 38
diff changeset
  1443
    RArray<TMPXAttribute> requestedAttr;
hgs
parents: 38
diff changeset
  1444
    CleanupClosePushL( requestedAttr );
hgs
parents: 38
diff changeset
  1445
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralTitle ) );
hgs
parents: 38
diff changeset
  1446
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicArtist ) );
hgs
parents: 38
diff changeset
  1447
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbum ) );
hgs
parents: 38
diff changeset
  1448
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralUri ) );
hgs
parents: 38
diff changeset
  1449
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) );
hgs
parents: 38
diff changeset
  1450
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralMimeType ) );
hgs
parents: 38
diff changeset
  1451
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumTrack ) );
hgs
parents: 38
diff changeset
  1452
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicComposer ) );
hgs
parents: 38
diff changeset
  1453
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicYear ) );
hgs
parents: 38
diff changeset
  1454
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicGenre ) );
hgs
parents: 38
diff changeset
  1455
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralDuration ) );
hgs
parents: 38
diff changeset
  1456
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaAudioBitrate ) );
hgs
parents: 38
diff changeset
  1457
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaAudioSamplerate ) );
hgs
parents: 38
diff changeset
  1458
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralCopyright ) );
hgs
parents: 38
diff changeset
  1459
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicURL ) );
hgs
parents: 38
diff changeset
  1460
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaDrmProtected ) );
hgs
parents: 38
diff changeset
  1461
hgs
parents: 38
diff changeset
  1462
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 38
diff changeset
  1463
    CleanupStack::PushL( cpath );
hgs
parents: 38
diff changeset
  1464
    TCollectionContext context = iCollectionData->context();
hgs
parents: 38
diff changeset
  1465
    if ( context == ECollectionContextArtistAlbumsTBone
hgs
parents: 38
diff changeset
  1466
         || context == ECollectionContextAlbumsTBone ) {
hgs
parents: 38
diff changeset
  1467
        CMPXMediaArray *mediaArray;
hgs
parents: 38
diff changeset
  1468
        const CMPXMedia& container = iCollectionData->containerMedia();
hgs
parents: 38
diff changeset
  1469
        mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
hgs
parents: 38
diff changeset
  1470
        int currentAlbumIndex = iCollectionData->currentAlbumIndex();
hgs
parents: 38
diff changeset
  1471
        CMPXMedia* album( mediaArray->AtL( currentAlbumIndex ) );
hgs
parents: 38
diff changeset
  1472
        if ( album->IsSupported(KMPXMediaArrayContents) ) {
hgs
parents: 38
diff changeset
  1473
            const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
hgs
parents: 38
diff changeset
  1474
            User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
hgs
parents: 38
diff changeset
  1475
            CMPXMedia* song = songs->AtL(index);
hgs
parents: 38
diff changeset
  1476
            TMPXItemId id( song->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
hgs
parents: 38
diff changeset
  1477
            cpath->AppendL( id );   // Top level items of songs
hgs
parents: 38
diff changeset
  1478
            cpath->Set( 0 );        // Select 1st song
hgs
parents: 38
diff changeset
  1479
        }
hgs
parents: 38
diff changeset
  1480
    }
hgs
parents: 38
diff changeset
  1481
    else {
hgs
parents: 38
diff changeset
  1482
        cpath->Set( index );
hgs
parents: 38
diff changeset
  1483
    }
hgs
parents: 38
diff changeset
  1484
    iCollectionUtility->Collection().MediaL( *cpath, requestedAttr.Array() );
hgs
parents: 38
diff changeset
  1485
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 38
diff changeset
  1486
    CleanupStack::PopAndDestroy( &requestedAttr );
hgs
parents: 38
diff changeset
  1487
    TX_EXIT
hgs
parents: 38
diff changeset
  1488
}
hgs
parents: 38
diff changeset
  1489
hgs
parents: 38
diff changeset
  1490
/*!
hgs
parents: 38
diff changeset
  1491
 \internal
hgs
parents: 38
diff changeset
  1492
 */
38
hgs
parents: 37
diff changeset
  1493
void MpMpxCollectionFrameworkWrapperPrivate::DoSavePathL( QByteArray &data )
hgs
parents: 37
diff changeset
  1494
{
hgs
parents: 37
diff changeset
  1495
    TX_ENTRY
hgs
parents: 37
diff changeset
  1496
    CBufFlat* buffer = CBufFlat::NewL( 256 );
hgs
parents: 37
diff changeset
  1497
    CleanupStack::PushL( buffer );
hgs
parents: 37
diff changeset
  1498
    TBufBuf bufBuf;
hgs
parents: 37
diff changeset
  1499
    bufBuf.Set( *buffer, 0, TBufBuf::EWrite );
hgs
parents: 37
diff changeset
  1500
    
hgs
parents: 37
diff changeset
  1501
    RWriteStream writeStream( &bufBuf );
hgs
parents: 37
diff changeset
  1502
    writeStream.PushL();
hgs
parents: 37
diff changeset
  1503
    
hgs
parents: 37
diff changeset
  1504
    if ( iPlaybackUtility ) {
hgs
parents: 37
diff changeset
  1505
        MMPXSource* source = iPlaybackUtility->Source();
hgs
parents: 37
diff changeset
  1506
        CMPXCollectionPlaylist* playList( NULL );
hgs
parents: 37
diff changeset
  1507
        if( source ) {
hgs
parents: 37
diff changeset
  1508
        playList = source->PlaylistL();
hgs
parents: 37
diff changeset
  1509
            if ( playList ) {
hgs
parents: 37
diff changeset
  1510
                CleanupStack::PushL( playList );
hgs
parents: 37
diff changeset
  1511
                const CMPXCollectionPath& cpath = playList->Path();
hgs
parents: 37
diff changeset
  1512
                writeStream << cpath;
hgs
parents: 37
diff changeset
  1513
                writeStream.CommitL();
hgs
parents: 37
diff changeset
  1514
                CleanupStack::PopAndDestroy( playList );
hgs
parents: 37
diff changeset
  1515
            }
hgs
parents: 37
diff changeset
  1516
        }
hgs
parents: 37
diff changeset
  1517
    }
hgs
parents: 37
diff changeset
  1518
    data.append(reinterpret_cast<const char*>(buffer->Ptr(0).Ptr()) ,buffer->Ptr(0).Length());
hgs
parents: 37
diff changeset
  1519
    CleanupStack::PopAndDestroy( 2, buffer ); //writeStream and buffer
hgs
parents: 37
diff changeset
  1520
    TX_EXIT
hgs
parents: 37
diff changeset
  1521
}
hgs
parents: 37
diff changeset
  1522
hgs
parents: 37
diff changeset
  1523
/*!
hgs
parents: 37
diff changeset
  1524
 \internal
hgs
parents: 37
diff changeset
  1525
 */
hgs
parents: 37
diff changeset
  1526
void MpMpxCollectionFrameworkWrapperPrivate::DoRestorePathL( const QByteArray &data )
hgs
parents: 37
diff changeset
  1527
{
hgs
parents: 37
diff changeset
  1528
    TX_ENTRY
hgs
parents: 37
diff changeset
  1529
    int dataSize = data.size();
hgs
parents: 37
diff changeset
  1530
    if ( dataSize > 0 ) {
hgs
parents: 37
diff changeset
  1531
        TPtrC8 activityDataDescriptor( reinterpret_cast<const unsigned char*> ( data.constData() ), data.size() );
hgs
parents: 37
diff changeset
  1532
         
hgs
parents: 37
diff changeset
  1533
        //Take a copy of the data
hgs
parents: 37
diff changeset
  1534
        CBufFlat* buffer = CBufFlat::NewL( dataSize );
hgs
parents: 37
diff changeset
  1535
        CleanupStack::PushL( buffer );
hgs
parents: 37
diff changeset
  1536
        buffer->InsertL( 0, activityDataDescriptor, dataSize );
hgs
parents: 37
diff changeset
  1537
        
hgs
parents: 37
diff changeset
  1538
        TBufBuf bufBuf;
hgs
parents: 37
diff changeset
  1539
        bufBuf.Set( *buffer, 0, TBufBuf::ERead );
hgs
parents: 37
diff changeset
  1540
        RReadStream readStream( &bufBuf );
hgs
parents: 37
diff changeset
  1541
        readStream.PushL();
hgs
parents: 37
diff changeset
  1542
        
hgs
parents: 37
diff changeset
  1543
        CMPXCollectionPath* cpath( NULL );
hgs
parents: 37
diff changeset
  1544
        cpath = CMPXCollectionPath::NewL(readStream);
hgs
parents: 37
diff changeset
  1545
        CleanupStack::PushL(cpath);
hgs
parents: 37
diff changeset
  1546
        iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
  1547
        if( cpath->Levels() ) {
hgs
parents: 37
diff changeset
  1548
            iRestorePathIndexId = cpath->Id();
hgs
parents: 37
diff changeset
  1549
            iRestorePathIndex = cpath->Index();
hgs
parents: 37
diff changeset
  1550
            cpath->Back();
hgs
parents: 37
diff changeset
  1551
        }
hgs
parents: 37
diff changeset
  1552
        if ( !iIsolatedCollectionHelper ) {
hgs
parents: 37
diff changeset
  1553
            iIsolatedCollectionHelper = CMpMpxIsolatedCollectionHelper::NewL( this );
hgs
parents: 37
diff changeset
  1554
        }   
hgs
parents: 37
diff changeset
  1555
        iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
  1556
          
hgs
parents: 37
diff changeset
  1557
        CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
  1558
        CleanupStack::PopAndDestroy( 2, buffer ); //readStream and buffer
hgs
parents: 37
diff changeset
  1559
    }
hgs
parents: 37
diff changeset
  1560
    TX_EXIT
hgs
parents: 37
diff changeset
  1561
}
36
hgs
parents: 35
diff changeset
  1562
35
hgs
parents: 34
diff changeset
  1563
//EOF