mpengine/src/mpmpxcollectionframeworkwrapper_p.cpp
author hgs
Fri, 09 Jul 2010 16:27:03 -0500
changeset 43 0f32e550d9d8
parent 38 b93f525c9244
child 45 612c4815aebe
permissions -rw-r--r--
201027
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
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
const TInt KIncrementalDelayNone = 0;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
const TInt KIncrementalDelayHalfSecond = 1000000;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
const TInt KIncrementalFetchBlockSize = 40;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
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
    67
_LIT( KPlaylistPath, "C:\\Data\\Playlists\\" ); // Todo
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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
    \class MpMpxCollectionFrameworkWrapperPrivate
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
    \brief Wrapper for mpx framework utilities - private implementation.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
    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
    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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
MpMpxCollectionFrameworkWrapperPrivate::MpMpxCollectionFrameworkWrapperPrivate( MpMpxCollectionFrameworkWrapper *wrapper )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    : q_ptr( wrapper ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
      iCollectionUtility( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
      iCollectionUiHelper( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
      iIncrementalOpenUtil( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
      iIsolatedCollectionHelper( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
      iPlaybackUtility( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
      iCollectionData( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
      iIsolatedCollectionData( 0 ),
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
      iFirstIncrementalOpen( EFalse ),
35
hgs
parents: 34
diff changeset
    89
      iUserPlaylists( 0 ),
hgs
parents: 34
diff changeset
    90
      iRepeatFeature( ETrue ),
hgs
parents: 34
diff changeset
    91
      iShuffleFeature( ETrue ),
36
hgs
parents: 35
diff changeset
    92
      iReopen( EFalse ),
38
hgs
parents: 37
diff changeset
    93
      iShuffleAll( EFalse ),
hgs
parents: 37
diff changeset
    94
      iRestoreDefaultPath( EFalse ),
43
hgs
parents: 38
diff changeset
    95
      iRestorePathIndex( 0 ),
hgs
parents: 38
diff changeset
    96
	  iSongData( 0 )
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    TX_LOG
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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
MpMpxCollectionFrameworkWrapperPrivate::~MpMpxCollectionFrameworkWrapperPrivate()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    delete iCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
    delete iIsolatedCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
    if ( iCollectionUtility ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
        iCollectionUtility->Collection().CancelRequest();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
        iCollectionUtility->Close();
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
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    if ( iCollectionUiHelper ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
        iCollectionUiHelper->Close();
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
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
    if ( iPlaybackUtility ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
        iPlaybackUtility->Close();
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
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
    delete iIncrementalOpenUtil;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    delete iIsolatedCollectionHelper;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    delete iUserPlaylists;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    TX_EXIT
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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
 */
43
hgs
parents: 38
diff changeset
   133
void MpMpxCollectionFrameworkWrapperPrivate::init( TUid hostUid, MpSongData *songData )
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
{
43
hgs
parents: 38
diff changeset
   135
    TX_ENTRY
hgs
parents: 38
diff changeset
   136
    iHostUid = hostUid;
hgs
parents: 38
diff changeset
   137
    iSongData = songData;
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    TRAPD( err, DoInitL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
        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
   141
    }
43
hgs
parents: 38
diff changeset
   142
    TX_EXIT
22
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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
void MpMpxCollectionFrameworkWrapperPrivate::openCollection( TCollectionContext context )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
    TRAPD( err, DoOpenCollectionL( context ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
void MpMpxCollectionFrameworkWrapperPrivate::openCollectionItem( int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    TRAPD( err, DoOpenCollectionItemL( index ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
void MpMpxCollectionFrameworkWrapperPrivate::reopenCollection()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    TRAPD( err, DoReopenCollectionL() );
35
hgs
parents: 34
diff changeset
   173
    if ( err == KErrNone ) {
hgs
parents: 34
diff changeset
   174
        iReopen = ETrue;
hgs
parents: 34
diff changeset
   175
    }
hgs
parents: 34
diff changeset
   176
    else {
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
void MpMpxCollectionFrameworkWrapperPrivate::back()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    TRAPD( err, DoBackL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
void MpMpxCollectionFrameworkWrapperPrivate::findPlaylists( QStringList &playlists )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
    TRAPD( err, DoFindPlaylistsL( playlists ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
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
   206
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
    TRAPD( err, DoCreatePlaylistL( playlistName, selection, collectionData ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
void MpMpxCollectionFrameworkWrapperPrivate::saveToPlaylist( int playlistIndex, QList<int> &selection )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    TRAPD( err, DoSaveToPlaylistL( playlistIndex, selection ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
void MpMpxCollectionFrameworkWrapperPrivate::saveToCurrentPlaylist( QList<int> &selection, MpMpxCollectionData *collectionData )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    TRAPD( err, DoSaveToCurrentPlaylistL( selection, collectionData ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
void MpMpxCollectionFrameworkWrapperPrivate::deleteSongs( QList<int> &selection )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
{
35
hgs
parents: 34
diff changeset
   240
    TCollectionContext context = iCollectionData->context();
hgs
parents: 34
diff changeset
   241
    int err;
hgs
parents: 34
diff changeset
   242
    if ( context == ECollectionContextArtistAlbumsTBone
hgs
parents: 34
diff changeset
   243
         || context == ECollectionContextAlbumsTBone ) {
hgs
parents: 34
diff changeset
   244
        TRAP( err, DoDeleteAlbumSongsL( selection ) );
hgs
parents: 34
diff changeset
   245
    }
hgs
parents: 34
diff changeset
   246
    else {
hgs
parents: 34
diff changeset
   247
        TRAP( err, DoDeleteSongsL( selection ) );
hgs
parents: 34
diff changeset
   248
    }
hgs
parents: 34
diff changeset
   249
    if ( err == KErrNone ) {
hgs
parents: 34
diff changeset
   250
        // send signal that deleting has started.
hgs
parents: 34
diff changeset
   251
        emit q_ptr->deleteStarted(iCollectionData->context(), selection.count());
hgs
parents: 34
diff changeset
   252
    }
hgs
parents: 34
diff changeset
   253
    else{
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
void MpMpxCollectionFrameworkWrapperPrivate::renamePlaylist( QString &newName, int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
{      
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
    TRAPD( err, DoRenamePlaylistL( newName, index ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
    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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
void MpMpxCollectionFrameworkWrapperPrivate::renamePlaylist( QString &newName )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
{      
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
    TRAPD( err, DoRenamePlaylistL( newName ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
    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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
void MpMpxCollectionFrameworkWrapperPrivate::setShuffle( bool active )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
    TRAPD( err, DoSetShuffleL( active ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
void MpMpxCollectionFrameworkWrapperPrivate::previewItem( int index )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
{
35
hgs
parents: 34
diff changeset
   295
    TCollectionContext context = iCollectionData->context();
hgs
parents: 34
diff changeset
   296
    int err;
hgs
parents: 34
diff changeset
   297
    if ( context == ECollectionContextArtistAlbumsTBone
hgs
parents: 34
diff changeset
   298
         || context == ECollectionContextAlbumsTBone ) {
hgs
parents: 34
diff changeset
   299
        TRAP( err, DoPreviewAlbumSongL( index ) );
hgs
parents: 34
diff changeset
   300
    }
hgs
parents: 34
diff changeset
   301
    else {
hgs
parents: 34
diff changeset
   302
        TRAP( err, DoPreviewSongL( index ) );
hgs
parents: 34
diff changeset
   303
    }
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
 void MpMpxCollectionFrameworkWrapperPrivate::openIsolatedCollection( TCollectionContext context )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
    TRAPD( err, DoOpenIsolatedCollectionL( context ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
void MpMpxCollectionFrameworkWrapperPrivate::releaseIsolatedCollection()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
    delete iIsolatedCollectionHelper;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
    iIsolatedCollectionHelper = 0;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
    delete iIsolatedCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
    iIsolatedCollectionData = 0;
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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
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
   335
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
    TRAPD( err, DoReorderPlaylistL( playlistId, songId, originalOrdinal, newOrdinal ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
    if ( err != KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
        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
   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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
 */
35
hgs
parents: 34
diff changeset
   345
void MpMpxCollectionFrameworkWrapperPrivate::cancel()
hgs
parents: 34
diff changeset
   346
{
hgs
parents: 34
diff changeset
   347
    iCollectionUiHelper->Cancel();
hgs
parents: 34
diff changeset
   348
}
hgs
parents: 34
diff changeset
   349
hgs
parents: 34
diff changeset
   350
/*!
hgs
parents: 34
diff changeset
   351
 \internal
hgs
parents: 34
diff changeset
   352
 */
hgs
parents: 34
diff changeset
   353
void MpMpxCollectionFrameworkWrapperPrivate::findAlbumSongs( int index )
hgs
parents: 34
diff changeset
   354
{
hgs
parents: 34
diff changeset
   355
    TRAPD( err, DoFindAlbumSongsL( index ) );
hgs
parents: 34
diff changeset
   356
    if ( err != KErrNone ) {
hgs
parents: 34
diff changeset
   357
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 34
diff changeset
   358
    }
hgs
parents: 34
diff changeset
   359
}
hgs
parents: 34
diff changeset
   360
hgs
parents: 34
diff changeset
   361
/*!
hgs
parents: 34
diff changeset
   362
 \internal
hgs
parents: 34
diff changeset
   363
 */
hgs
parents: 34
diff changeset
   364
void MpMpxCollectionFrameworkWrapperPrivate::playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
hgs
parents: 34
diff changeset
   365
{
hgs
parents: 34
diff changeset
   366
    TRAPD( err, DoPlayAlbumSongsL( albumIndex, songIndex, collectionData ? collectionData : iCollectionData ) );
hgs
parents: 34
diff changeset
   367
    if ( err != KErrNone ) {
hgs
parents: 34
diff changeset
   368
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 34
diff changeset
   369
    }
hgs
parents: 34
diff changeset
   370
}
hgs
parents: 34
diff changeset
   371
hgs
parents: 34
diff changeset
   372
/*!
hgs
parents: 34
diff changeset
   373
 \internal
hgs
parents: 34
diff changeset
   374
 */
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
MpMpxCollectionData *MpMpxCollectionFrameworkWrapperPrivate::collectionData()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
    return iCollectionData;
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
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
 \internal
36
hgs
parents: 35
diff changeset
   382
 */
hgs
parents: 35
diff changeset
   383
void MpMpxCollectionFrameworkWrapperPrivate::openShuffleAllSongsPath()
hgs
parents: 35
diff changeset
   384
{
hgs
parents: 35
diff changeset
   385
    TX_ENTRY
hgs
parents: 35
diff changeset
   386
    TRAPD( err, DoOpenCollectionL(ECollectionContextAllSongs) );
hgs
parents: 35
diff changeset
   387
    if ( err != KErrNone ) {
hgs
parents: 35
diff changeset
   388
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 35
diff changeset
   389
    }
hgs
parents: 35
diff changeset
   390
    else {
hgs
parents: 35
diff changeset
   391
        iShuffleAll = ETrue; 
hgs
parents: 35
diff changeset
   392
    }
hgs
parents: 35
diff changeset
   393
    TX_EXIT
hgs
parents: 35
diff changeset
   394
}
hgs
parents: 35
diff changeset
   395
hgs
parents: 35
diff changeset
   396
/*!
hgs
parents: 35
diff changeset
   397
 \internal
38
hgs
parents: 37
diff changeset
   398
 */
43
hgs
parents: 38
diff changeset
   399
void MpMpxCollectionFrameworkWrapperPrivate::retrieveSongDetails( int index )
hgs
parents: 38
diff changeset
   400
{
hgs
parents: 38
diff changeset
   401
    TX_ENTRY
hgs
parents: 38
diff changeset
   402
    TRAPD( err, DoRetrieveSongDetailsL(index) );
hgs
parents: 38
diff changeset
   403
    if ( err != KErrNone ) {
hgs
parents: 38
diff changeset
   404
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 38
diff changeset
   405
    }
hgs
parents: 38
diff changeset
   406
    TX_EXIT
hgs
parents: 38
diff changeset
   407
}
hgs
parents: 38
diff changeset
   408
hgs
parents: 38
diff changeset
   409
/*!
hgs
parents: 38
diff changeset
   410
 \internal
hgs
parents: 38
diff changeset
   411
 */
38
hgs
parents: 37
diff changeset
   412
void MpMpxCollectionFrameworkWrapperPrivate::savePath( QByteArray &data )
hgs
parents: 37
diff changeset
   413
{
hgs
parents: 37
diff changeset
   414
    TX_ENTRY
hgs
parents: 37
diff changeset
   415
    TRAPD( err, DoSavePathL( data ) );
hgs
parents: 37
diff changeset
   416
    if ( err != KErrNone ) {
hgs
parents: 37
diff changeset
   417
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 37
diff changeset
   418
    }
hgs
parents: 37
diff changeset
   419
    TX_EXIT
hgs
parents: 37
diff changeset
   420
    
hgs
parents: 37
diff changeset
   421
}
hgs
parents: 37
diff changeset
   422
hgs
parents: 37
diff changeset
   423
/*!
hgs
parents: 37
diff changeset
   424
 \internal
hgs
parents: 37
diff changeset
   425
 */
hgs
parents: 37
diff changeset
   426
void MpMpxCollectionFrameworkWrapperPrivate::restorePath( const QByteArray &data )
hgs
parents: 37
diff changeset
   427
{
hgs
parents: 37
diff changeset
   428
    TX_ENTRY
hgs
parents: 37
diff changeset
   429
    TRAPD( err, DoRestorePathL( data ) );
hgs
parents: 37
diff changeset
   430
    if ( err != KErrNone ) {
hgs
parents: 37
diff changeset
   431
        TX_LOG_ARGS( "Error: " << err << "; should never get here." );
hgs
parents: 37
diff changeset
   432
    }
hgs
parents: 37
diff changeset
   433
    TX_EXIT
hgs
parents: 37
diff changeset
   434
}
hgs
parents: 37
diff changeset
   435
hgs
parents: 37
diff changeset
   436
hgs
parents: 37
diff changeset
   437
/*!
hgs
parents: 37
diff changeset
   438
 \internal
35
hgs
parents: 34
diff changeset
   439
 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
   440
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
void MpMpxCollectionFrameworkWrapperPrivate::HandleOpenL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
    const CMPXMedia& aEntries,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
    TInt aIndex,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
    TBool aComplete,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
    TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
    Q_UNUSED( aIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
    TX_UNUSED( aComplete );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
    TX_ENTRY_ARGS( "aError=" << aError << "aComplete=" << aComplete );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
    if ( aError == KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
        if ( iFirstIncrementalOpen ) {
36
hgs
parents: 35
diff changeset
   452
            iFirstIncrementalOpen = EFalse;
hgs
parents: 35
diff changeset
   453
            if( iShuffleAll ) {
hgs
parents: 35
diff changeset
   454
                iShuffleAll = EFalse;
hgs
parents: 35
diff changeset
   455
                TX_ENTRY_ARGS( "Path is ready" );
hgs
parents: 35
diff changeset
   456
                DoPlayAllSongsPlaylistL();
hgs
parents: 35
diff changeset
   457
                
hgs
parents: 35
diff changeset
   458
            }
35
hgs
parents: 34
diff changeset
   459
            iCollectionData->setMpxMedia( aEntries, iReopen );
hgs
parents: 34
diff changeset
   460
            iReopen = EFalse;
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
    else {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
        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
   465
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
void MpMpxCollectionFrameworkWrapperPrivate::HandleOpenL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
    const CMPXCollectionPlaylist& aPlaylist,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
    TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
    TX_ENTRY_ARGS( "aError=" << aError );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
    if ( aError == KErrNone ) {
35
hgs
parents: 34
diff changeset
   479
        //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
   480
        createPlaybackUtilityL();
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
        iPlaybackUtility->InitL( aPlaylist, ETrue );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
        emit q_ptr->collectionPlaylistOpened();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    else {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
        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
   486
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
void MpMpxCollectionFrameworkWrapperPrivate::HandleCollectionMessage( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
    CMPXMessage* aMsg,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
    TInt aErr )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
    TX_ENTRY_ARGS( "aErr=" << aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
    if ( aErr == KErrNone && aMsg )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
        TRAP_IGNORE( DoHandleCollectionMessageL( *aMsg ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
void MpMpxCollectionFrameworkWrapperPrivate::HandleCollectionMediaL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
    const CMPXMedia& aMedia,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
    TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
{
43
hgs
parents: 38
diff changeset
   512
    TX_ENTRY
hgs
parents: 38
diff changeset
   513
    if ( KErrNone != aError ){
hgs
parents: 38
diff changeset
   514
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
hgs
parents: 38
diff changeset
   515
        TX_EXIT
hgs
parents: 38
diff changeset
   516
        return;
hgs
parents: 38
diff changeset
   517
    }
hgs
parents: 38
diff changeset
   518
    iSongData->setMpxMedia( aMedia );
hgs
parents: 38
diff changeset
   519
    TX_EXIT
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
 Handles the completion of any collection helper event.
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
void MpMpxCollectionFrameworkWrapperPrivate::HandleOperationCompleteL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
    TCHelperOperation aOperation,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
    TInt aErr,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
    void* aArgument )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
    TX_ENTRY_ARGS( "aErr=" << aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   532
    switch( aOperation ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
    case EDeleteOp:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
        emit q_ptr->songsDeleted( KErrNone == aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
    case EAddOp:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
        emit q_ptr->playlistSaved( KErrNone == aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
    case ERenameOp:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
        emit q_ptr->playlistsRenamed( KErrNone == aErr );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
    default:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   544
    }
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
    if ( aArgument ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
        delete ( CBase* )aArgument;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
    }
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   553
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
void MpMpxCollectionFrameworkWrapperPrivate::HandleIsolatedOpenL( const CMPXMedia& aEntries, TInt aError )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
    TX_ENTRY_ARGS( "aError=" << aError );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
    if ( aError == KErrNone ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
        if ( iIsolatedCollectionData ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
            delete iIsolatedCollectionData;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
            iIsolatedCollectionData = 0;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
        }  
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
        iIsolatedCollectionData = new MpMpxCollectionData();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
        iIsolatedCollectionData->setMpxMedia( aEntries );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
        emit q_ptr->isolatedCollectionOpened( iIsolatedCollectionData );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
    else {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
        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
   568
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
 */
38
hgs
parents: 37
diff changeset
   575
void MpMpxCollectionFrameworkWrapperPrivate::HandleIsolatedOpenRestorePathL( const CMPXCollectionPath& aPath, TInt aError )
hgs
parents: 37
diff changeset
   576
{
hgs
parents: 37
diff changeset
   577
    TX_ENTRY_ARGS( "aError=" << aError );
hgs
parents: 37
diff changeset
   578
    if ( aError == KErrNone ) {
hgs
parents: 37
diff changeset
   579
        CMPXCollectionPath* cpath = CMPXCollectionPath::NewL( aPath );
hgs
parents: 37
diff changeset
   580
        CleanupStack::PushL( cpath );
hgs
parents: 37
diff changeset
   581
        if ( cpath->Count() <= 0 ) {
hgs
parents: 37
diff changeset
   582
            //There are no entries on the path
hgs
parents: 37
diff changeset
   583
            if ( !iRestoreDefaultPath ) {
hgs
parents: 37
diff changeset
   584
                //Try restoring default path if not already tried
hgs
parents: 37
diff changeset
   585
                //This is a special case where a playlist's songs where on the MMC and it was removed
hgs
parents: 37
diff changeset
   586
                iRestoreDefaultPath = ETrue;
hgs
parents: 37
diff changeset
   587
                iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
   588
                CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
hgs
parents: 37
diff changeset
   589
                CleanupStack::PushL( cpath );
hgs
parents: 37
diff changeset
   590
                iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
   591
                CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
   592
            }
hgs
parents: 37
diff changeset
   593
            else {
hgs
parents: 37
diff changeset
   594
                //emit signal to go back to collection view because there is no music
hgs
parents: 37
diff changeset
   595
                emit q_ptr->restorePathFailed();
hgs
parents: 37
diff changeset
   596
            }
hgs
parents: 37
diff changeset
   597
        }
hgs
parents: 37
diff changeset
   598
        else if ( iRestorePathIndex ) {
hgs
parents: 37
diff changeset
   599
            //If RestorePathIndex equals zero there is no need to check with previous index
hgs
parents: 37
diff changeset
   600
            //just go and create playlist below
hgs
parents: 37
diff changeset
   601
            if ( iRestorePathIndex == cpath->IndexOfId( iRestorePathIndexId ) ) {
hgs
parents: 37
diff changeset
   602
                //Song is in path and maintains previous position
hgs
parents: 37
diff changeset
   603
                cpath->Set( iRestorePathIndex );
hgs
parents: 37
diff changeset
   604
                CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 37
diff changeset
   605
                CleanupStack::PushL( playList );
hgs
parents: 37
diff changeset
   606
                createPlaybackUtilityL();
hgs
parents: 37
diff changeset
   607
                iPlaybackUtility->InitL( *playList, EFalse );
hgs
parents: 37
diff changeset
   608
                CleanupStack::PopAndDestroy( playList );
hgs
parents: 37
diff changeset
   609
            }
hgs
parents: 37
diff changeset
   610
            else { 
hgs
parents: 37
diff changeset
   611
                //Re open path starting at the beginning of the collection
hgs
parents: 37
diff changeset
   612
                iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
   613
                cpath->Back(); 
hgs
parents: 37
diff changeset
   614
                iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
   615
            }
hgs
parents: 37
diff changeset
   616
        }
hgs
parents: 37
diff changeset
   617
        else {
hgs
parents: 37
diff changeset
   618
            //We create a playlist right away since there is no need to check the index for the first element
hgs
parents: 37
diff changeset
   619
            CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 37
diff changeset
   620
            CleanupStack::PushL( playList );
hgs
parents: 37
diff changeset
   621
            createPlaybackUtilityL();
hgs
parents: 37
diff changeset
   622
            iPlaybackUtility->InitL( *playList, EFalse );
hgs
parents: 37
diff changeset
   623
            CleanupStack::PopAndDestroy( playList );
hgs
parents: 37
diff changeset
   624
        }
hgs
parents: 37
diff changeset
   625
        CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
   626
    }
hgs
parents: 37
diff changeset
   627
    else if ( aError == KErrNotFound ) {
hgs
parents: 37
diff changeset
   628
        //Path not found (e.g. MMC removed) try restoring default path
hgs
parents: 37
diff changeset
   629
        iRestoreDefaultPath = ETrue;
hgs
parents: 37
diff changeset
   630
        iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
   631
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
hgs
parents: 37
diff changeset
   632
        CleanupStack::PushL( cpath );
hgs
parents: 37
diff changeset
   633
        iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
   634
        CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
   635
    }
hgs
parents: 37
diff changeset
   636
    else {
hgs
parents: 37
diff changeset
   637
        //Open path failed
hgs
parents: 37
diff changeset
   638
        TX_LOG_ARGS( "Error: " << aError << "; should never get here." );
hgs
parents: 37
diff changeset
   639
    }
hgs
parents: 37
diff changeset
   640
    TX_EXIT
hgs
parents: 37
diff changeset
   641
}
hgs
parents: 37
diff changeset
   642
hgs
parents: 37
diff changeset
   643
/*!
hgs
parents: 37
diff changeset
   644
 \internal
hgs
parents: 37
diff changeset
   645
 */
35
hgs
parents: 34
diff changeset
   646
void MpMpxCollectionFrameworkWrapperPrivate::HandleFindAllL( const CMPXMedia& aResults, TBool aComplete, TInt aError )
hgs
parents: 34
diff changeset
   647
{
hgs
parents: 34
diff changeset
   648
    Q_UNUSED( aComplete );
hgs
parents: 34
diff changeset
   649
    TX_ENTRY_ARGS( "aError=" << aError );
hgs
parents: 34
diff changeset
   650
hgs
parents: 34
diff changeset
   651
    if ( aError == KErrNone ) {
hgs
parents: 34
diff changeset
   652
        iCollectionData->setAlbumContent( aResults );
hgs
parents: 34
diff changeset
   653
    }
hgs
parents: 34
diff changeset
   654
}
hgs
parents: 34
diff changeset
   655
hgs
parents: 34
diff changeset
   656
/*!
hgs
parents: 34
diff changeset
   657
 \internal
hgs
parents: 34
diff changeset
   658
 */
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
void MpMpxCollectionFrameworkWrapperPrivate::DoInitL()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
    TX_ENTRY
43
hgs
parents: 38
diff changeset
   662
    iCollectionUtility = MMPXCollectionUtility::NewL( this, iHostUid );
hgs
parents: 38
diff changeset
   663
    iCollectionUiHelper = CMPXCollectionHelperFactory:: NewCollectionUiHelperL( iHostUid );
hgs
parents: 38
diff changeset
   664
    iIncrementalOpenUtil = CMPXCollectionOpenUtility::NewL( this, iHostUid );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
    iCollectionData = new MpMpxCollectionData();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   667
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
void MpMpxCollectionFrameworkWrapperPrivate::DoOpenCollectionL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
    TCollectionContext aContext )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
    TX_ENTRY_ARGS( "aContext=" << aContext );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
    switch ( aContext ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   678
    case ECollectionContextAllSongs:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   679
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicAllSongsPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
        CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   683
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
    case ECollectionContextArtists:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
        CleanupStack::PushL( cpath );
35
hgs
parents: 34
diff changeset
   690
        cpath->AppendL( BrowseArtist );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
    case ECollectionContextAlbums:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   697
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   698
        CleanupStack::PushL( cpath );
35
hgs
parents: 34
diff changeset
   699
        cpath->AppendL( BrowseAlbum );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   700
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   701
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   702
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
    case ECollectionContextPlaylists:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicPlaylistPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
        CleanupStack::PushL( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   710
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
        }
35
hgs
parents: 34
diff changeset
   712
    case ECollectionContextAlbumsMediaWall:
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   713
        {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
        CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   715
        CleanupStack::PushL( cpath );
35
hgs
parents: 34
diff changeset
   716
        cpath->AppendL( BrowseAlbumMediaWall );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   717
        iCollectionUtility->Collection().OpenL( *cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
        CleanupStack::PopAndDestroy( cpath );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   719
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
    default:
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   722
        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
   723
        break;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
}
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
void MpMpxCollectionFrameworkWrapperPrivate::DoOpenCollectionItemL( TInt aIndex )
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
    {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
    TX_ENTRY_ARGS( "aIndex=" << aIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
    iCollectionUtility->Collection().OpenL( aIndex );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
    }
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
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
void MpMpxCollectionFrameworkWrapperPrivate::DoIncrementalOpenL()
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
{
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   743
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   744
    // Cancel any reads
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
    iIncrementalOpenUtil->Stop();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   746
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   747
    // Start the read
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   748
    iFirstIncrementalOpen = ETrue;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   749
    RArray<TMPXAttribute> attrs;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   750
    CleanupClosePushL( attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   751
    TArray<TMPXAttribute> ary = attrs.Array();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   752
    iIncrementalOpenUtil->SetDelay( KIncrementalDelayNone );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
    iIncrementalOpenUtil->StartL( ary, KIncrementalFetchBlockSize,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
                                  KErrNotFound, CMPXCollectionOpenUtility::EFetchNormal );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   755
    iIncrementalOpenUtil->SetDelay( KIncrementalDelayHalfSecond );
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 );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   795
    attrs.Append( KMPXMediaGeneralId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   796
    attrs.Append( KMPXMediaGeneralTitle );
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
hgs
parents: 34
diff changeset
  1133
    // Fetch the songs for the selected album
hgs
parents: 34
diff changeset
  1134
    TMPXItemId albumId = album->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
hgs
parents: 34
diff changeset
  1135
    CMPXMedia* findCriteria = CMPXMedia::NewL();
hgs
parents: 34
diff changeset
  1136
    CleanupStack::PushL( findCriteria );
hgs
parents: 34
diff changeset
  1137
    findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
hgs
parents: 34
diff changeset
  1138
    findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
hgs
parents: 34
diff changeset
  1139
    findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, albumId );
hgs
parents: 34
diff changeset
  1140
    RArray<TMPXAttribute> attrs;
hgs
parents: 34
diff changeset
  1141
    CleanupClosePushL( attrs );
hgs
parents: 34
diff changeset
  1142
    attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
hgs
parents: 34
diff changeset
  1143
                                 EMPXMediaGeneralTitle |
hgs
parents: 34
diff changeset
  1144
								 EMPXMediaGeneralUri |
hgs
parents: 34
diff changeset
  1145
                                 EMPXMediaGeneralId |
hgs
parents: 34
diff changeset
  1146
                                 EMPXMediaGeneralType |
hgs
parents: 34
diff changeset
  1147
                                 EMPXMediaGeneralCategory |
hgs
parents: 34
diff changeset
  1148
                                 EMPXMediaGeneralFlags ) );
hgs
parents: 34
diff changeset
  1149
    attrs.Append( KMPXMediaMusicAlbumTrack );
hgs
parents: 34
diff changeset
  1150
hgs
parents: 34
diff changeset
  1151
    iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array(), *this );
hgs
parents: 34
diff changeset
  1152
    CleanupStack::PopAndDestroy( &attrs );
hgs
parents: 34
diff changeset
  1153
    CleanupStack::PopAndDestroy( findCriteria );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1154
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1155
35
hgs
parents: 34
diff changeset
  1156
/*!
hgs
parents: 34
diff changeset
  1157
 \internal
hgs
parents: 34
diff changeset
  1158
 */
hgs
parents: 34
diff changeset
  1159
void MpMpxCollectionFrameworkWrapperPrivate::DoPlayAlbumSongsL( int albumIndex, int songIndex, MpMpxCollectionData* collectionData  )
hgs
parents: 34
diff changeset
  1160
{
hgs
parents: 34
diff changeset
  1161
    TX_ENTRY
hgs
parents: 34
diff changeset
  1162
hgs
parents: 34
diff changeset
  1163
    RArray<TMPXItemId> ids;
hgs
parents: 34
diff changeset
  1164
    CleanupClosePushL(ids);
hgs
parents: 34
diff changeset
  1165
hgs
parents: 34
diff changeset
  1166
    CMPXCollectionPath* cpath;
hgs
parents: 34
diff changeset
  1167
    
hgs
parents: 34
diff changeset
  1168
    //Following check is for a use case for media wall, where it is required 
hgs
parents: 34
diff changeset
  1169
    //to play songs that are browsed by an isolated collection.
hgs
parents: 34
diff changeset
  1170
    if ( collectionData->context() ==  ECollectionContextAlbumsMediaWall ) {
hgs
parents: 34
diff changeset
  1171
        //Get the Media Wall path.
hgs
parents: 34
diff changeset
  1172
        cpath = iCollectionUiHelper->MusicMenuPathL();
hgs
parents: 34
diff changeset
  1173
        CleanupStack::PushL( cpath );
hgs
parents: 34
diff changeset
  1174
        //TODO: change to BrowseAlbumMediaWall befor when merging with olveras changes.
hgs
parents: 34
diff changeset
  1175
        cpath->AppendL( BrowseAlbum );
hgs
parents: 34
diff changeset
  1176
        const TMPXItemId albumId = collectionData->itemId( albumIndex );
hgs
parents: 34
diff changeset
  1177
        //Append the selected album.
hgs
parents: 34
diff changeset
  1178
        RArray<TMPXItemId> items;
hgs
parents: 34
diff changeset
  1179
        CleanupClosePushL(items);
hgs
parents: 34
diff changeset
  1180
        items.AppendL(albumId);
hgs
parents: 34
diff changeset
  1181
        cpath->AppendL(items.Array());
hgs
parents: 34
diff changeset
  1182
        CleanupStack::PopAndDestroy( &items );
hgs
parents: 34
diff changeset
  1183
        cpath->Set( 0 ); // Set the album.
hgs
parents: 34
diff changeset
  1184
        
hgs
parents: 34
diff changeset
  1185
    }
hgs
parents: 34
diff changeset
  1186
    else {
hgs
parents: 34
diff changeset
  1187
        // Get the current path
hgs
parents: 34
diff changeset
  1188
        cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 34
diff changeset
  1189
        CleanupStack::PushL( cpath );
hgs
parents: 34
diff changeset
  1190
        cpath->Set(albumIndex); // Set the selected album
hgs
parents: 34
diff changeset
  1191
    }
hgs
parents: 34
diff changeset
  1192
    MPX_DEBUG_PATH( *cpath );
hgs
parents: 34
diff changeset
  1193
hgs
parents: 34
diff changeset
  1194
    CMPXMediaArray *mediaArray;
hgs
parents: 34
diff changeset
  1195
    const CMPXMedia& container = collectionData->containerMedia();
hgs
parents: 34
diff changeset
  1196
    mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
hgs
parents: 34
diff changeset
  1197
    CMPXMedia* album( mediaArray->AtL( albumIndex ) );
hgs
parents: 34
diff changeset
  1198
    const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
hgs
parents: 34
diff changeset
  1199
    User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
hgs
parents: 34
diff changeset
  1200
hgs
parents: 34
diff changeset
  1201
    TInt count = songs->Count();
hgs
parents: 34
diff changeset
  1202
    for ( TInt i = 0; i < count; ++i ) {
hgs
parents: 34
diff changeset
  1203
        CMPXMedia* song = songs->AtL(i);
hgs
parents: 34
diff changeset
  1204
        const TMPXItemId id = song->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
hgs
parents: 34
diff changeset
  1205
        ids.AppendL(id);
hgs
parents: 34
diff changeset
  1206
    }
hgs
parents: 34
diff changeset
  1207
hgs
parents: 34
diff changeset
  1208
    cpath->AppendL(ids.Array());    // Top level items of songs
hgs
parents: 34
diff changeset
  1209
    cpath->Set(songIndex);          // Set the selected song
hgs
parents: 34
diff changeset
  1210
    MPX_DEBUG_PATH(*cpath);
hgs
parents: 34
diff changeset
  1211
hgs
parents: 34
diff changeset
  1212
    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 34
diff changeset
  1213
    CleanupStack::PushL( playList );
hgs
parents: 34
diff changeset
  1214
    
hgs
parents: 34
diff changeset
  1215
    //TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
  1216
    createPlaybackUtilityL();
hgs
parents: 34
diff changeset
  1217
    iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents: 34
diff changeset
  1218
    emit q_ptr->collectionPlaylistOpened();
hgs
parents: 34
diff changeset
  1219
hgs
parents: 34
diff changeset
  1220
    CleanupStack::PopAndDestroy( playList );
hgs
parents: 34
diff changeset
  1221
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 34
diff changeset
  1222
    CleanupStack::PopAndDestroy( &ids );
hgs
parents: 34
diff changeset
  1223
    TX_EXIT
hgs
parents: 34
diff changeset
  1224
}
hgs
parents: 34
diff changeset
  1225
hgs
parents: 34
diff changeset
  1226
/*!
hgs
parents: 34
diff changeset
  1227
 \internal
hgs
parents: 34
diff changeset
  1228
 */
hgs
parents: 34
diff changeset
  1229
void MpMpxCollectionFrameworkWrapperPrivate::setRepeatFeatureEnabled( bool enable ) 
hgs
parents: 34
diff changeset
  1230
{
hgs
parents: 34
diff changeset
  1231
    iRepeatFeature = enable;
hgs
parents: 34
diff changeset
  1232
}
hgs
parents: 34
diff changeset
  1233
hgs
parents: 34
diff changeset
  1234
/*!
hgs
parents: 34
diff changeset
  1235
 \internal
hgs
parents: 34
diff changeset
  1236
 */
hgs
parents: 34
diff changeset
  1237
void MpMpxCollectionFrameworkWrapperPrivate::setShuffleFeatureEnabled( bool enable )
hgs
parents: 34
diff changeset
  1238
{
hgs
parents: 34
diff changeset
  1239
    iShuffleFeature = enable;
hgs
parents: 34
diff changeset
  1240
}
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1241
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1242
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1243
 \internal
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1244
 */
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1245
void MpMpxCollectionFrameworkWrapperPrivate::DoHandleCollectionMessageL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1246
    const CMPXMessage& aMsg )
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
    TX_ENTRY
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1249
    TMPXMessageId id( aMsg.ValueTObjectL<TMPXMessageId>( KMPXMessageGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1250
    if ( KMPXMessageGeneral == id ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1251
        TInt event( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralEvent ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1252
        TInt type( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralType ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1253
        TInt data( aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralData ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1254
        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
  1255
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1256
        if ( event == TMPXCollectionMessage::EPathChanged &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1257
             type == EMcPathChangedByOpen &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1258
             data == EMcContainerOpened ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1259
            // Incremental Open when browsing to the next level
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1260
            DoIncrementalOpenL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1261
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1262
        else if ( event == TMPXCollectionMessage::EPathChanged &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1263
                  type == EMcPathChangedByOpen &&
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1264
                  data == EMcItemOpened ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1265
            // Opened a song
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1266
            // This will result in HandleOpenL with CMPXCollectionPlaylist
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1267
            iCollectionUtility->Collection().OpenL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1268
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1269
    }
35
hgs
parents: 34
diff changeset
  1270
    else if( id == KMPXMessageIdItemChanged ) {
43
hgs
parents: 38
diff changeset
  1271
        TInt eventType( aMsg.ValueTObjectL<TMPXChangeEventType>( KMPXMessageChangeEventType ) );
hgs
parents: 38
diff changeset
  1272
hgs
parents: 38
diff changeset
  1273
        if ( eventType == EMPXItemDeleted || eventType == EMPXItemInserted ) {
hgs
parents: 38
diff changeset
  1274
            emit q_ptr->containerContentsChanged();
hgs
parents: 38
diff changeset
  1275
        }
hgs
parents: 38
diff changeset
  1276
    }
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1277
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1278
}
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1279
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1280
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1281
/*!
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1282
 \internal
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
void MpMpxCollectionFrameworkWrapperPrivate::PreparePlaylistMediaL( 
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1285
        CMPXMedia& aMedia,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1286
        QList<int> &selection,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1287
        MpMpxCollectionData *collectionData )
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
    int count = selection.count();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1290
    TX_ENTRY_ARGS( "selection count=" << count );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1291
35
hgs
parents: 34
diff changeset
  1292
    const CMPXMediaArray* mediaArray = 0;
hgs
parents: 34
diff changeset
  1293
    
hgs
parents: 34
diff changeset
  1294
    if ( ( collectionData->context() == ECollectionContextArtistAlbumsTBone ) || 
hgs
parents: 34
diff changeset
  1295
         ( collectionData->context() == ECollectionContextAlbumsTBone ) ) {
hgs
parents: 34
diff changeset
  1296
        //There is no need to find the track information, for TBone we cash it under the media itself.
hgs
parents: 34
diff changeset
  1297
        //Fetching song data from container media.
hgs
parents: 34
diff changeset
  1298
        CMPXMedia* album;
hgs
parents: 34
diff changeset
  1299
        const CMPXMediaArray* albumsArray;
hgs
parents: 34
diff changeset
  1300
        albumsArray = collectionData->containerMedia().Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1301
        int index = collectionData->currentAlbumIndex();
hgs
parents: 34
diff changeset
  1302
        if ( index >= 0 ) {
hgs
parents: 34
diff changeset
  1303
            album = albumsArray->AtL( collectionData->currentAlbumIndex() );
hgs
parents: 34
diff changeset
  1304
            mediaArray = album->Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1305
        }
hgs
parents: 34
diff changeset
  1306
    }
hgs
parents: 34
diff changeset
  1307
    else {
hgs
parents: 34
diff changeset
  1308
        const CMPXMedia& container = collectionData->containerMedia();
hgs
parents: 34
diff changeset
  1309
        mediaArray = container.Value<CMPXMediaArray>( KMPXMediaArrayContents );
hgs
parents: 34
diff changeset
  1310
    }
hgs
parents: 34
diff changeset
  1311
       
hgs
parents: 34
diff changeset
  1312
    User::LeaveIfNull( const_cast<CMPXMediaArray*>( mediaArray ) );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1313
    CMPXMediaArray* tracksArray( CMPXMediaArray::NewL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1314
    CleanupStack::PushL( tracksArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1315
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1316
    CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1317
    CleanupStack::PushL( path );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1318
    TMPXItemId collectionId( path->Id( 0 ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1319
    CleanupStack::PopAndDestroy( path );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1320
35
hgs
parents: 34
diff changeset
  1321
    if ( collectionData->context() == ECollectionContextAlbums || 
hgs
parents: 34
diff changeset
  1322
         collectionData->context() == ECollectionContextArtistAlbums ||
hgs
parents: 34
diff changeset
  1323
         collectionData->context() == ECollectionContextArtists ) {
hgs
parents: 34
diff changeset
  1324
        //Container, it is possible to append multiple containers to a playlist. 
hgs
parents: 34
diff changeset
  1325
        //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
  1326
        for ( TInt i = 0; i < count; i++ ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1327
            CMPXMedia* results;
35
hgs
parents: 34
diff changeset
  1328
            CMPXMedia* container( mediaArray->AtL( selection[i] ) );
hgs
parents: 34
diff changeset
  1329
            // Fetch the songs for the selected container
34
hgs
parents: 22
diff changeset
  1330
            TMPXItemId containerId = container->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1331
            CMPXMedia* findCriteria = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1332
            CleanupStack::PushL( findCriteria );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1333
            findCriteria->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXGroup );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1334
            findCriteria->SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXSong );
34
hgs
parents: 22
diff changeset
  1335
            findCriteria->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, containerId );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1336
            RArray<TMPXAttribute> attrs;
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1337
            CleanupClosePushL( attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1338
            attrs.Append( TMPXAttribute( KMPXMediaIdGeneral,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1339
                                         EMPXMediaGeneralTitle |
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1340
                                         EMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1341
            results = iCollectionUtility->Collection().FindAllL( *findCriteria, attrs.Array() );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1342
            CleanupStack::PopAndDestroy( &attrs );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1343
            CleanupStack::PopAndDestroy( findCriteria );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1344
            CleanupStack::PushL( results );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1345
            
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1346
            const CMPXMediaArray* resultsArray = results->Value<CMPXMediaArray>( KMPXMediaArrayContents );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1347
            User::LeaveIfNull( resultsArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1348
            for ( int j = 0 ; j < resultsArray->Count();j++ ) {
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1349
                CMPXMedia* media( resultsArray->AtL( j ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1350
                CMPXMedia* entry = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1351
                CleanupStack::PushL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1352
                entry->SetTextValueL( KMPXMediaGeneralTitle,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1353
                    media->ValueText( KMPXMediaGeneralTitle ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1354
                entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1355
                entry->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1356
                entry->SetTObjectValueL( KMPXMediaGeneralId,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1357
                    media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1358
                entry->SetTObjectValueL( KMPXMediaGeneralCollectionId, collectionId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1359
                CleanupStack::Pop( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1360
                tracksArray->AppendL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1361
            }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1362
            CleanupStack::PopAndDestroy( results );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1363
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1364
        
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1365
    }
35
hgs
parents: 34
diff changeset
  1366
    else {
hgs
parents: 34
diff changeset
  1367
        //Tracks
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1368
        for ( TInt i = 0; i < count; i++ ) {
35
hgs
parents: 34
diff changeset
  1369
            CMPXMedia* media( mediaArray->AtL( selection.at( i ) ) );
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1370
            CMPXMedia* entry = CMPXMedia::NewL();
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1371
            CleanupStack::PushL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1372
            entry->SetTextValueL( KMPXMediaGeneralTitle,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1373
                media->ValueText( KMPXMediaGeneralTitle ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1374
            entry->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1375
            entry->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1376
            entry->SetTObjectValueL( KMPXMediaGeneralId,
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1377
                media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1378
            entry->SetTObjectValueL( KMPXMediaGeneralCollectionId, collectionId );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1379
            CleanupStack::Pop( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1380
            tracksArray->AppendL( entry );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1381
        }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1382
    }
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1383
    aMedia.SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXItem );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1384
    aMedia.SetTObjectValueL<TMPXGeneralCategory>( KMPXMediaGeneralCategory, EMPXPlaylist );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1385
    aMedia.SetCObjectValueL( KMPXMediaArrayContents, tracksArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1386
    aMedia.SetTObjectValueL( KMPXMediaArrayCount, tracksArray->Count() );
37
hgs
parents: 36
diff changeset
  1387
hgs
parents: 36
diff changeset
  1388
    emit q_ptr->aboutToAddSongs( tracksArray->Count() );
hgs
parents: 36
diff changeset
  1389
22
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1390
    CleanupStack::PopAndDestroy( tracksArray );
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1391
    TX_EXIT
ecf06a08d4d9 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1392
}
35
hgs
parents: 34
diff changeset
  1393
hgs
parents: 34
diff changeset
  1394
/*!
hgs
parents: 34
diff changeset
  1395
 \internal
hgs
parents: 34
diff changeset
  1396
 TODO: all calls to playback utility should be done via the engine and trough the playback FW wrapper.
hgs
parents: 34
diff changeset
  1397
 */
hgs
parents: 34
diff changeset
  1398
void MpMpxCollectionFrameworkWrapperPrivate::createPlaybackUtilityL() 
hgs
parents: 34
diff changeset
  1399
{
hgs
parents: 34
diff changeset
  1400
    if ( !iPlaybackUtility ) {
hgs
parents: 34
diff changeset
  1401
43
hgs
parents: 38
diff changeset
  1402
        iPlaybackUtility = MMPXPlaybackUtility::UtilityL( iHostUid );
35
hgs
parents: 34
diff changeset
  1403
hgs
parents: 34
diff changeset
  1404
        if ( iShuffleFeature ) {
hgs
parents: 34
diff changeset
  1405
            iPlaybackUtility->SetL( EPbPropertyRandomMode, MpSettingsManager::shuffle() ? ETrue : EFalse );
hgs
parents: 34
diff changeset
  1406
        }
hgs
parents: 34
diff changeset
  1407
        if ( iRepeatFeature ) {
hgs
parents: 34
diff changeset
  1408
            iPlaybackUtility->SetL( EPbPropertyRepeatMode, MpSettingsManager::repeat() ? EPbRepeatAll : EPbRepeatOff );
hgs
parents: 34
diff changeset
  1409
        }
hgs
parents: 34
diff changeset
  1410
    }
hgs
parents: 34
diff changeset
  1411
}
hgs
parents: 34
diff changeset
  1412
36
hgs
parents: 35
diff changeset
  1413
/*!
hgs
parents: 35
diff changeset
  1414
 \internal
hgs
parents: 35
diff changeset
  1415
 */
hgs
parents: 35
diff changeset
  1416
void MpMpxCollectionFrameworkWrapperPrivate::DoPlayAllSongsPlaylistL()
hgs
parents: 35
diff changeset
  1417
{
hgs
parents: 35
diff changeset
  1418
    TX_ENTRY
hgs
parents: 35
diff changeset
  1419
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 35
diff changeset
  1420
    CleanupStack::PushL( cpath );
hgs
parents: 35
diff changeset
  1421
    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *cpath );
hgs
parents: 35
diff changeset
  1422
    CleanupStack::PushL( playList );
hgs
parents: 35
diff changeset
  1423
    playList->SetShuffleL( true, false );
hgs
parents: 35
diff changeset
  1424
    MpSettingsManager::setShuffle( true );
hgs
parents: 35
diff changeset
  1425
    createPlaybackUtilityL();
hgs
parents: 35
diff changeset
  1426
    iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents: 35
diff changeset
  1427
    CleanupStack::PopAndDestroy( playList );
hgs
parents: 35
diff changeset
  1428
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 35
diff changeset
  1429
    TX_EXIT
hgs
parents: 35
diff changeset
  1430
}
hgs
parents: 35
diff changeset
  1431
38
hgs
parents: 37
diff changeset
  1432
/*!
hgs
parents: 37
diff changeset
  1433
 \internal
hgs
parents: 37
diff changeset
  1434
 */
43
hgs
parents: 38
diff changeset
  1435
void MpMpxCollectionFrameworkWrapperPrivate::DoRetrieveSongDetailsL( int index )
hgs
parents: 38
diff changeset
  1436
{
hgs
parents: 38
diff changeset
  1437
    TX_ENTRY
hgs
parents: 38
diff changeset
  1438
    RArray<TMPXAttribute> requestedAttr;
hgs
parents: 38
diff changeset
  1439
    CleanupClosePushL( requestedAttr );
hgs
parents: 38
diff changeset
  1440
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralTitle ) );
hgs
parents: 38
diff changeset
  1441
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicArtist ) );
hgs
parents: 38
diff changeset
  1442
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbum ) );
hgs
parents: 38
diff changeset
  1443
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralUri ) );
hgs
parents: 38
diff changeset
  1444
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumArtFileName ) );
hgs
parents: 38
diff changeset
  1445
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralMimeType ) );
hgs
parents: 38
diff changeset
  1446
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicAlbumTrack ) );
hgs
parents: 38
diff changeset
  1447
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicComposer ) );
hgs
parents: 38
diff changeset
  1448
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicYear ) );
hgs
parents: 38
diff changeset
  1449
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicGenre ) );
hgs
parents: 38
diff changeset
  1450
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralDuration ) );
hgs
parents: 38
diff changeset
  1451
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaAudioBitrate ) );
hgs
parents: 38
diff changeset
  1452
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaAudioSamplerate ) );
hgs
parents: 38
diff changeset
  1453
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaGeneralCopyright ) );
hgs
parents: 38
diff changeset
  1454
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaMusicURL ) );
hgs
parents: 38
diff changeset
  1455
    requestedAttr.AppendL( TMPXAttribute( KMPXMediaDrmProtected ) );
hgs
parents: 38
diff changeset
  1456
hgs
parents: 38
diff changeset
  1457
    CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
hgs
parents: 38
diff changeset
  1458
    CleanupStack::PushL( cpath );
hgs
parents: 38
diff changeset
  1459
    TCollectionContext context = iCollectionData->context();
hgs
parents: 38
diff changeset
  1460
    if ( context == ECollectionContextArtistAlbumsTBone
hgs
parents: 38
diff changeset
  1461
         || context == ECollectionContextAlbumsTBone ) {
hgs
parents: 38
diff changeset
  1462
        CMPXMediaArray *mediaArray;
hgs
parents: 38
diff changeset
  1463
        const CMPXMedia& container = iCollectionData->containerMedia();
hgs
parents: 38
diff changeset
  1464
        mediaArray = const_cast<CMPXMediaArray*>( container.Value<CMPXMediaArray>( KMPXMediaArrayContents ) );
hgs
parents: 38
diff changeset
  1465
        int currentAlbumIndex = iCollectionData->currentAlbumIndex();
hgs
parents: 38
diff changeset
  1466
        CMPXMedia* album( mediaArray->AtL( currentAlbumIndex ) );
hgs
parents: 38
diff changeset
  1467
        if ( album->IsSupported(KMPXMediaArrayContents) ) {
hgs
parents: 38
diff changeset
  1468
            const CMPXMediaArray* songs = album->Value<CMPXMediaArray>(KMPXMediaArrayContents);
hgs
parents: 38
diff changeset
  1469
            User::LeaveIfNull(const_cast<CMPXMediaArray*>(songs));
hgs
parents: 38
diff changeset
  1470
            CMPXMedia* song = songs->AtL(index);
hgs
parents: 38
diff changeset
  1471
            TMPXItemId id( song->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
hgs
parents: 38
diff changeset
  1472
            cpath->AppendL( id );   // Top level items of songs
hgs
parents: 38
diff changeset
  1473
            cpath->Set( 0 );        // Select 1st song
hgs
parents: 38
diff changeset
  1474
        }
hgs
parents: 38
diff changeset
  1475
    }
hgs
parents: 38
diff changeset
  1476
    else {
hgs
parents: 38
diff changeset
  1477
        cpath->Set( index );
hgs
parents: 38
diff changeset
  1478
    }
hgs
parents: 38
diff changeset
  1479
    iCollectionUtility->Collection().MediaL( *cpath, requestedAttr.Array() );
hgs
parents: 38
diff changeset
  1480
    CleanupStack::PopAndDestroy( cpath );
hgs
parents: 38
diff changeset
  1481
    CleanupStack::PopAndDestroy( &requestedAttr );
hgs
parents: 38
diff changeset
  1482
    TX_EXIT
hgs
parents: 38
diff changeset
  1483
}
hgs
parents: 38
diff changeset
  1484
hgs
parents: 38
diff changeset
  1485
/*!
hgs
parents: 38
diff changeset
  1486
 \internal
hgs
parents: 38
diff changeset
  1487
 */
38
hgs
parents: 37
diff changeset
  1488
void MpMpxCollectionFrameworkWrapperPrivate::DoSavePathL( QByteArray &data )
hgs
parents: 37
diff changeset
  1489
{
hgs
parents: 37
diff changeset
  1490
    TX_ENTRY
hgs
parents: 37
diff changeset
  1491
    CBufFlat* buffer = CBufFlat::NewL( 256 );
hgs
parents: 37
diff changeset
  1492
    CleanupStack::PushL( buffer );
hgs
parents: 37
diff changeset
  1493
    TBufBuf bufBuf;
hgs
parents: 37
diff changeset
  1494
    bufBuf.Set( *buffer, 0, TBufBuf::EWrite );
hgs
parents: 37
diff changeset
  1495
    
hgs
parents: 37
diff changeset
  1496
    RWriteStream writeStream( &bufBuf );
hgs
parents: 37
diff changeset
  1497
    writeStream.PushL();
hgs
parents: 37
diff changeset
  1498
    
hgs
parents: 37
diff changeset
  1499
    if ( iPlaybackUtility ) {
hgs
parents: 37
diff changeset
  1500
        MMPXSource* source = iPlaybackUtility->Source();
hgs
parents: 37
diff changeset
  1501
        CMPXCollectionPlaylist* playList( NULL );
hgs
parents: 37
diff changeset
  1502
        if( source ) {
hgs
parents: 37
diff changeset
  1503
        playList = source->PlaylistL();
hgs
parents: 37
diff changeset
  1504
            if ( playList ) {
hgs
parents: 37
diff changeset
  1505
                CleanupStack::PushL( playList );
hgs
parents: 37
diff changeset
  1506
                const CMPXCollectionPath& cpath = playList->Path();
hgs
parents: 37
diff changeset
  1507
                writeStream << cpath;
hgs
parents: 37
diff changeset
  1508
                writeStream.CommitL();
hgs
parents: 37
diff changeset
  1509
                CleanupStack::PopAndDestroy( playList );
hgs
parents: 37
diff changeset
  1510
            }
hgs
parents: 37
diff changeset
  1511
        }
hgs
parents: 37
diff changeset
  1512
    }
hgs
parents: 37
diff changeset
  1513
    data.append(reinterpret_cast<const char*>(buffer->Ptr(0).Ptr()) ,buffer->Ptr(0).Length());
hgs
parents: 37
diff changeset
  1514
    CleanupStack::PopAndDestroy( 2, buffer ); //writeStream and buffer
hgs
parents: 37
diff changeset
  1515
    TX_EXIT
hgs
parents: 37
diff changeset
  1516
}
hgs
parents: 37
diff changeset
  1517
hgs
parents: 37
diff changeset
  1518
/*!
hgs
parents: 37
diff changeset
  1519
 \internal
hgs
parents: 37
diff changeset
  1520
 */
hgs
parents: 37
diff changeset
  1521
void MpMpxCollectionFrameworkWrapperPrivate::DoRestorePathL( const QByteArray &data )
hgs
parents: 37
diff changeset
  1522
{
hgs
parents: 37
diff changeset
  1523
    TX_ENTRY
hgs
parents: 37
diff changeset
  1524
    int dataSize = data.size();
hgs
parents: 37
diff changeset
  1525
    if ( dataSize > 0 ) {
hgs
parents: 37
diff changeset
  1526
        TPtrC8 activityDataDescriptor( reinterpret_cast<const unsigned char*> ( data.constData() ), data.size() );
hgs
parents: 37
diff changeset
  1527
         
hgs
parents: 37
diff changeset
  1528
        //Take a copy of the data
hgs
parents: 37
diff changeset
  1529
        CBufFlat* buffer = CBufFlat::NewL( dataSize );
hgs
parents: 37
diff changeset
  1530
        CleanupStack::PushL( buffer );
hgs
parents: 37
diff changeset
  1531
        buffer->InsertL( 0, activityDataDescriptor, dataSize );
hgs
parents: 37
diff changeset
  1532
        
hgs
parents: 37
diff changeset
  1533
        TBufBuf bufBuf;
hgs
parents: 37
diff changeset
  1534
        bufBuf.Set( *buffer, 0, TBufBuf::ERead );
hgs
parents: 37
diff changeset
  1535
        RReadStream readStream( &bufBuf );
hgs
parents: 37
diff changeset
  1536
        readStream.PushL();
hgs
parents: 37
diff changeset
  1537
        
hgs
parents: 37
diff changeset
  1538
        CMPXCollectionPath* cpath( NULL );
hgs
parents: 37
diff changeset
  1539
        cpath = CMPXCollectionPath::NewL(readStream);
hgs
parents: 37
diff changeset
  1540
        CleanupStack::PushL(cpath);
hgs
parents: 37
diff changeset
  1541
        iRestorePathIndex = 0;
hgs
parents: 37
diff changeset
  1542
        if( cpath->Levels() ) {
hgs
parents: 37
diff changeset
  1543
            iRestorePathIndexId = cpath->Id();
hgs
parents: 37
diff changeset
  1544
            iRestorePathIndex = cpath->Index();
hgs
parents: 37
diff changeset
  1545
            cpath->Back();
hgs
parents: 37
diff changeset
  1546
        }
hgs
parents: 37
diff changeset
  1547
        if ( !iIsolatedCollectionHelper ) {
hgs
parents: 37
diff changeset
  1548
            iIsolatedCollectionHelper = CMpMpxIsolatedCollectionHelper::NewL( this );
hgs
parents: 37
diff changeset
  1549
        }   
hgs
parents: 37
diff changeset
  1550
        iIsolatedCollectionHelper->OpenCollectionL( *cpath, iRestorePathIndex, CMpMpxIsolatedCollectionHelper::RestorePathMode );
hgs
parents: 37
diff changeset
  1551
          
hgs
parents: 37
diff changeset
  1552
        CleanupStack::PopAndDestroy( cpath );
hgs
parents: 37
diff changeset
  1553
        CleanupStack::PopAndDestroy( 2, buffer ); //readStream and buffer
hgs
parents: 37
diff changeset
  1554
    }
hgs
parents: 37
diff changeset
  1555
    TX_EXIT
hgs
parents: 37
diff changeset
  1556
}
36
hgs
parents: 35
diff changeset
  1557
35
hgs
parents: 34
diff changeset
  1558
//EOF