controlpanelui/src/tonefetcher/tonefetcherengine/private/symbian/toneselectionengine_p.cpp
author hgs
Thu, 10 Jun 2010 16:07:41 +0800
changeset 21 2883a5458389
parent 19 36aa4756ee82
permissions -rw-r--r--
201023
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 * 
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 * 
hgs
parents:
diff changeset
    14
 * Description:
hgs
parents:
diff changeset
    15
 *     The source file for mde tone fetcher.
hgs
parents:
diff changeset
    16
 *     
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
#include "toneselectionengine_p.h"
hgs
parents:
diff changeset
    19
#include <XQConversions>
hgs
parents:
diff changeset
    20
#include <pathinfo.h>
hgs
parents:
diff changeset
    21
#include <bautils.h>
hgs
parents:
diff changeset
    22
#include "tonepreviewprivate.h"
hgs
parents:
diff changeset
    23
#include "tonefetcherengine.h"
hgs
parents:
diff changeset
    24
#include <centralrepository.h>
hgs
parents:
diff changeset
    25
#include <ProfileEngineDomainCRKeys.h>
21
hgs
parents: 19
diff changeset
    26
#include <cplogger.h>
hgs
parents: 19
diff changeset
    27
hgs
parents: 19
diff changeset
    28
hgs
parents: 19
diff changeset
    29
CTimeOutTimer* CTimeOutTimer::NewL(ToneSelectionEnginePrivate& aObserver)
hgs
parents: 19
diff changeset
    30
    {
hgs
parents: 19
diff changeset
    31
    CTimeOutTimer* self = CTimeOutTimer::NewLC(aObserver);
hgs
parents: 19
diff changeset
    32
    CleanupStack::Pop(self);
hgs
parents: 19
diff changeset
    33
    return self;
hgs
parents: 19
diff changeset
    34
    }
hgs
parents: 19
diff changeset
    35
hgs
parents: 19
diff changeset
    36
 
hgs
parents: 19
diff changeset
    37
hgs
parents: 19
diff changeset
    38
CTimeOutTimer* CTimeOutTimer::NewLC(ToneSelectionEnginePrivate& aObserver)
hgs
parents: 19
diff changeset
    39
    {
hgs
parents: 19
diff changeset
    40
    CTimeOutTimer* self = new (ELeave) CTimeOutTimer(aObserver);
hgs
parents: 19
diff changeset
    41
    CleanupStack::PushL(self);
hgs
parents: 19
diff changeset
    42
    self->ConstructL();
hgs
parents: 19
diff changeset
    43
    return self;
hgs
parents: 19
diff changeset
    44
    } 
hgs
parents: 19
diff changeset
    45
hgs
parents: 19
diff changeset
    46
 
hgs
parents: 19
diff changeset
    47
hgs
parents: 19
diff changeset
    48
CTimeOutTimer::CTimeOutTimer(ToneSelectionEnginePrivate& aObserver)
hgs
parents: 19
diff changeset
    49
    : CTimer(EPriorityStandard),
hgs
parents: 19
diff changeset
    50
      iObserver( aObserver )
hgs
parents: 19
diff changeset
    51
    { 
hgs
parents: 19
diff changeset
    52
hgs
parents: 19
diff changeset
    53
    }
hgs
parents: 19
diff changeset
    54
hgs
parents: 19
diff changeset
    55
 
hgs
parents: 19
diff changeset
    56
hgs
parents: 19
diff changeset
    57
CTimeOutTimer::~CTimeOutTimer()
hgs
parents: 19
diff changeset
    58
    {
hgs
parents: 19
diff changeset
    59
    Cancel();
hgs
parents: 19
diff changeset
    60
    }
hgs
parents: 19
diff changeset
    61
hgs
parents: 19
diff changeset
    62
 
hgs
parents: 19
diff changeset
    63
hgs
parents: 19
diff changeset
    64
void CTimeOutTimer::ConstructL()
hgs
parents: 19
diff changeset
    65
    {
hgs
parents: 19
diff changeset
    66
    CTimer::ConstructL();
hgs
parents: 19
diff changeset
    67
    CActiveScheduler::Add(this);
hgs
parents: 19
diff changeset
    68
    }
hgs
parents: 19
diff changeset
    69
hgs
parents: 19
diff changeset
    70
 
hgs
parents: 19
diff changeset
    71
hgs
parents: 19
diff changeset
    72
void CTimeOutTimer::RunL()
hgs
parents: 19
diff changeset
    73
    {
hgs
parents: 19
diff changeset
    74
    iObserver.ChangeObject();
hgs
parents: 19
diff changeset
    75
    }
19
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
ToneSelectionEnginePrivate::ToneSelectionEnginePrivate( ToneFetcherEngine *engine ) : mServiceEngine( engine )
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    {
hgs
parents:
diff changeset
    80
    iSession = CMdESession::NewL( *this );
hgs
parents:
diff changeset
    81
    
21
hgs
parents: 19
diff changeset
    82
    iTimer = CTimeOutTimer::NewLC( *this );
hgs
parents: 19
diff changeset
    83
    iContinue = EFalse;
hgs
parents: 19
diff changeset
    84
    iTimerStarted = EFalse;
hgs
parents: 19
diff changeset
    85
    iFreshing = EFalse;
hgs
parents: 19
diff changeset
    86
    CleanupStack::Pop();
hgs
parents: 19
diff changeset
    87
    
hgs
parents: 19
diff changeset
    88
    
19
hgs
parents:
diff changeset
    89
    }
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
ToneSelectionEnginePrivate::~ToneSelectionEnginePrivate()
hgs
parents:
diff changeset
    92
    {
hgs
parents:
diff changeset
    93
    delete iQuery;
hgs
parents:
diff changeset
    94
    delete iSession;
hgs
parents:
diff changeset
    95
    }
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
void ToneSelectionEnginePrivate::HandleSessionOpened( CMdESession& /*aSession*/, TInt aError )
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
    if ( aError != KErrNone )
hgs
parents:
diff changeset
   100
        {
hgs
parents:
diff changeset
   101
        delete iSession;
hgs
parents:
diff changeset
   102
        iSession = 0;
hgs
parents:
diff changeset
   103
        iSessionOpen = EFalse;
hgs
parents:
diff changeset
   104
        emit mdeSessionError( aError );
hgs
parents:
diff changeset
   105
        }
hgs
parents:
diff changeset
   106
    else
hgs
parents:
diff changeset
   107
        {
hgs
parents:
diff changeset
   108
        iSessionOpen = ETrue;
hgs
parents:
diff changeset
   109
        TRAP_IGNORE( AddObjectObserverL() );
hgs
parents:
diff changeset
   110
        emit mdeSessionOpened();
hgs
parents:
diff changeset
   111
        }
hgs
parents:
diff changeset
   112
    }
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
void ToneSelectionEnginePrivate::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
hgs
parents:
diff changeset
   117
    {
hgs
parents:
diff changeset
   118
    if ( aError == KErrNone )
hgs
parents:
diff changeset
   119
        {
hgs
parents:
diff changeset
   120
        return;
hgs
parents:
diff changeset
   121
        }
hgs
parents:
diff changeset
   122
        
hgs
parents:
diff changeset
   123
    delete iSession;
hgs
parents:
diff changeset
   124
    iSession = 0;
hgs
parents:
diff changeset
   125
    iSessionOpen = EFalse;
hgs
parents:
diff changeset
   126
    emit mdeSessionError( aError );            
hgs
parents:
diff changeset
   127
    }
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
void ToneSelectionEnginePrivate::HandleQueryNewResults( CMdEQuery& /*aQuery*/, 
hgs
parents:
diff changeset
   131
                                               TInt /*aFirstNewItemIndex*/,
hgs
parents:
diff changeset
   132
                                               TInt /*aNewItemCount*/ )
hgs
parents:
diff changeset
   133
    {
hgs
parents:
diff changeset
   134
    }
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
void ToneSelectionEnginePrivate::HandleObjectNotification( CMdESession& /*aSession*/, 
hgs
parents:
diff changeset
   137
                                        TObserverNotificationType aType,
21
hgs
parents: 19
diff changeset
   138
                                        const RArray<TItemId>& aObjectIdArray )
19
hgs
parents:
diff changeset
   139
    {    
21
hgs
parents: 19
diff changeset
   140
    if ( aObjectIdArray.Count() > 0 && ( aType == ENotifyAdd || aType == ENotifyModify || aType == ENotifyRemove ) )
19
hgs
parents:
diff changeset
   141
        {
21
hgs
parents: 19
diff changeset
   142
        CPFW_LOG("ToneSelectionEnginePrivate::HandleObjectNotification count = " + QVariant(aObjectIdArray.Count()).toString() + " type = " + QVariant(aType).toString());
hgs
parents: 19
diff changeset
   143
        const TInt KOneSecond = 1000*1000;
hgs
parents: 19
diff changeset
   144
        if ( !iFreshing )
hgs
parents: 19
diff changeset
   145
            {
hgs
parents: 19
diff changeset
   146
            emit notifyRefreshStart();
hgs
parents: 19
diff changeset
   147
            iFreshing = ETrue;
hgs
parents: 19
diff changeset
   148
            }
hgs
parents: 19
diff changeset
   149
        if ( !iTimerStarted ) 
hgs
parents: 19
diff changeset
   150
            {            
hgs
parents: 19
diff changeset
   151
            iTimer->After( 5 * KOneSecond );
hgs
parents: 19
diff changeset
   152
            iTimerStarted = ETrue;
hgs
parents: 19
diff changeset
   153
            }        
hgs
parents: 19
diff changeset
   154
        iContinue = ETrue;        
19
hgs
parents:
diff changeset
   155
        }
hgs
parents:
diff changeset
   156
    }
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
void ToneSelectionEnginePrivate::AddObjectObserverL()
hgs
parents:
diff changeset
   159
    {
hgs
parents:
diff changeset
   160
    if ( iSessionOpen )
hgs
parents:
diff changeset
   161
        {
hgs
parents:
diff changeset
   162
        TUint32 notificationType = ENotifyAdd | ENotifyModify | ENotifyRemove;
hgs
parents:
diff changeset
   163
        CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
hgs
parents:
diff changeset
   164
        iSession->AddObjectObserverL( *this, 0, notificationType, &defNS );
hgs
parents:
diff changeset
   165
        
hgs
parents:
diff changeset
   166
        iSession->AddObjectPresentObserverL( *this );
hgs
parents:
diff changeset
   167
        }
hgs
parents:
diff changeset
   168
    }
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
void ToneSelectionEnginePrivate::HandleObjectPresentNotification( CMdESession& /*aSession*/, 
hgs
parents:
diff changeset
   171
                         TBool /*aPresent*/, const RArray<TItemId>& aObjectIdArray )
hgs
parents:
diff changeset
   172
    {
hgs
parents:
diff changeset
   173
    if( aObjectIdArray.Count() > 0 )
hgs
parents:
diff changeset
   174
        {
21
hgs
parents: 19
diff changeset
   175
        const TInt KOneSecond = 1000*1000;
hgs
parents: 19
diff changeset
   176
        if ( !iFreshing )
hgs
parents: 19
diff changeset
   177
            {
hgs
parents: 19
diff changeset
   178
            emit notifyRefreshStart();
hgs
parents: 19
diff changeset
   179
            iFreshing = ETrue;
hgs
parents: 19
diff changeset
   180
            }
hgs
parents: 19
diff changeset
   181
        if ( !iTimerStarted ) 
hgs
parents: 19
diff changeset
   182
            {            
hgs
parents: 19
diff changeset
   183
            iTimer->After( 5 * KOneSecond );
hgs
parents: 19
diff changeset
   184
            iTimerStarted = ETrue;
hgs
parents: 19
diff changeset
   185
            }        
hgs
parents: 19
diff changeset
   186
        iContinue = ETrue;       
19
hgs
parents:
diff changeset
   187
        }    
hgs
parents:
diff changeset
   188
    }
hgs
parents:
diff changeset
   189
hgs
parents:
diff changeset
   190
void ToneSelectionEnginePrivate::HandleQueryCompleted( CMdEQuery& aQuery, TInt aError )
hgs
parents:
diff changeset
   191
    {
hgs
parents:
diff changeset
   192
    iNameList.clear();
hgs
parents:
diff changeset
   193
    iUriList.clear();
hgs
parents:
diff changeset
   194
    if ( aError == KErrCancel )
hgs
parents:
diff changeset
   195
        {      
hgs
parents:
diff changeset
   196
        emit queryError( aError );
hgs
parents:
diff changeset
   197
        return;
hgs
parents:
diff changeset
   198
        }
hgs
parents:
diff changeset
   199
    else
hgs
parents:
diff changeset
   200
        {
hgs
parents:
diff changeset
   201
        CMdEObjectQuery* query = static_cast<CMdEObjectQuery*> (&aQuery);
hgs
parents:
diff changeset
   202
        TInt count = query->Count();
hgs
parents:
diff changeset
   203
        for (TInt i = 0; i < count; ++i)
hgs
parents:
diff changeset
   204
            {
hgs
parents:
diff changeset
   205
            CMdEObject* object =
hgs
parents:
diff changeset
   206
                    (CMdEObject*) query->TakeOwnershipOfResult(i);
hgs
parents:
diff changeset
   207
            CleanupStack::PushL(object);
hgs
parents:
diff changeset
   208
            CMdEPropertyDef& propDef = 
hgs
parents:
diff changeset
   209
                        ToneSelectionEnginePrivate::PropertyDefL( iSession, ToneSelectionEnginePrivate::EAttrSongName  );
hgs
parents:
diff changeset
   210
                
hgs
parents:
diff changeset
   211
            CMdEProperty* property = 0;
hgs
parents:
diff changeset
   212
            TInt err = object->Property( propDef, property, 0 );
hgs
parents:
diff changeset
   213
            if ( err != KErrNotFound && property )
hgs
parents:
diff changeset
   214
                {
hgs
parents:
diff changeset
   215
                QString songName( XQConversions::s60DescToQString( property->TextValueL() ) );
hgs
parents:
diff changeset
   216
                QString uriValue( XQConversions::s60DescToQString( object->Uri() ) );
hgs
parents:
diff changeset
   217
                iNameList.append( songName );
hgs
parents:
diff changeset
   218
                iUriList.append( uriValue );
hgs
parents:
diff changeset
   219
                }
hgs
parents:
diff changeset
   220
            CleanupStack::PopAndDestroy(object);
hgs
parents:
diff changeset
   221
            }
hgs
parents:
diff changeset
   222
        emit queryComplete(iNameList, iUriList );        
hgs
parents:
diff changeset
   223
        }
hgs
parents:
diff changeset
   224
    }
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
void ToneSelectionEnginePrivate::QueryTones()
hgs
parents:
diff changeset
   227
    {
hgs
parents:
diff changeset
   228
    LeaveIfSessionClosedL();
hgs
parents:
diff changeset
   229
        
hgs
parents:
diff changeset
   230
    CMdENamespaceDef& defNS = iSession->GetDefaultNamespaceDefL();
hgs
parents:
diff changeset
   231
    CMdEObjectDef& musicObjectDef =
hgs
parents:
diff changeset
   232
    defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
hgs
parents:
diff changeset
   233
  
hgs
parents:
diff changeset
   234
    delete iQuery;
hgs
parents:
diff changeset
   235
    iQuery = 0;
hgs
parents:
diff changeset
   236
    iQuery = iSession->NewObjectQueryL( defNS, musicObjectDef, this );    
hgs
parents:
diff changeset
   237
    
hgs
parents:
diff changeset
   238
    
hgs
parents:
diff changeset
   239
    // set attributes that are included in query result  
hgs
parents:
diff changeset
   240
    CMdEPropertyDef& namePropertyDef = PropertyDefL( EAttrSongName );
hgs
parents:
diff changeset
   241
    iQuery->AddPropertyFilterL( &namePropertyDef );
hgs
parents:
diff changeset
   242
    
hgs
parents:
diff changeset
   243
    iQuery->SetResultMode( EQueryResultModeItem );
hgs
parents:
diff changeset
   244
    
hgs
parents:
diff changeset
   245
    CMdELogicCondition& conditions = iQuery->Conditions();
hgs
parents:
diff changeset
   246
    ExcludeMusicPropertiesL( conditions );
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
    iQuery->FindL();
hgs
parents:
diff changeset
   249
    }
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
void ToneSelectionEnginePrivate::LeaveIfSessionClosedL()
hgs
parents:
diff changeset
   252
    {
hgs
parents:
diff changeset
   253
    if ( !iSession || !iSessionOpen )
hgs
parents:
diff changeset
   254
        {
hgs
parents:
diff changeset
   255
        User::Leave( KErrDisconnected );
hgs
parents:
diff changeset
   256
        }
hgs
parents:
diff changeset
   257
    }
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
CMdEPropertyDef& ToneSelectionEnginePrivate::PropertyDefL( TInt aAttr )
hgs
parents:
diff changeset
   260
    {
hgs
parents:
diff changeset
   261
    return PropertyDefL( iSession, aAttr );
hgs
parents:
diff changeset
   262
    }
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
CMdEPropertyDef& ToneSelectionEnginePrivate::PropertyDefL( CMdESession* aSession, TInt aAttr )
hgs
parents:
diff changeset
   265
    {
hgs
parents:
diff changeset
   266
    CMdENamespaceDef& defNS = aSession->GetDefaultNamespaceDefL();
hgs
parents:
diff changeset
   267
    
hgs
parents:
diff changeset
   268
    CMdEObjectDef& objectDef =
hgs
parents:
diff changeset
   269
    defNS.GetObjectDefL( MdeConstants::Audio::KAudioObject );
hgs
parents:
diff changeset
   270
   
hgs
parents:
diff changeset
   271
    if ( aAttr == EAttrFileSize )
hgs
parents:
diff changeset
   272
        {
hgs
parents:
diff changeset
   273
        return objectDef.GetPropertyDefL( MdeConstants::Object::KSizeProperty );
hgs
parents:
diff changeset
   274
        }
hgs
parents:
diff changeset
   275
    else if ( aAttr == EAttrMediaType )
hgs
parents:
diff changeset
   276
        {
hgs
parents:
diff changeset
   277
        return objectDef.GetPropertyDefL( MdeConstants::Object::KItemTypeProperty );
hgs
parents:
diff changeset
   278
        }
hgs
parents:
diff changeset
   279
    else if ( aAttr == EAttrSongName || aAttr == EAttrFileName )
hgs
parents:
diff changeset
   280
        {
hgs
parents:
diff changeset
   281
        return objectDef.GetPropertyDefL( MdeConstants::Object::KTitleProperty );
hgs
parents:
diff changeset
   282
        }
hgs
parents:
diff changeset
   283
    else if ( aAttr == EAttrArtist )
hgs
parents:
diff changeset
   284
        {
hgs
parents:
diff changeset
   285
        return objectDef.GetPropertyDefL( MdeConstants::MediaObject::KArtistProperty );
hgs
parents:
diff changeset
   286
        }
hgs
parents:
diff changeset
   287
    else if ( aAttr == EAttrAlbum )
hgs
parents:
diff changeset
   288
        {
hgs
parents:
diff changeset
   289
        return objectDef.GetPropertyDefL( MdeConstants::Audio::KAlbumProperty );
hgs
parents:
diff changeset
   290
        }
hgs
parents:
diff changeset
   291
    else if ( aAttr == EAttrGenre )
hgs
parents:
diff changeset
   292
        {
hgs
parents:
diff changeset
   293
        return objectDef.GetPropertyDefL( MdeConstants::MediaObject::KGenreProperty );
hgs
parents:
diff changeset
   294
        }
hgs
parents:
diff changeset
   295
    else if ( aAttr == EAttrComposer )
hgs
parents:
diff changeset
   296
        {
hgs
parents:
diff changeset
   297
        return objectDef.GetPropertyDefL( MdeConstants::Audio::KComposerProperty );
hgs
parents:
diff changeset
   298
        }
hgs
parents:
diff changeset
   299
    else
hgs
parents:
diff changeset
   300
        {
hgs
parents:
diff changeset
   301
        User::Leave( KErrNotSupported );
hgs
parents:
diff changeset
   302
        }
hgs
parents:
diff changeset
   303
    
hgs
parents:
diff changeset
   304
    return objectDef.GetPropertyDefL( MdeConstants::Object::KTitleProperty );
hgs
parents:
diff changeset
   305
    }
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
void ToneSelectionEnginePrivate::ExcludeMusicPropertiesL( CMdELogicCondition& aCondition )
hgs
parents:
diff changeset
   308
    {
hgs
parents:
diff changeset
   309
    TInt sizeLimitKB = 0;
hgs
parents:
diff changeset
   310
    CRepository* cenrep = CRepository::NewL( KCRUidProfileEngine );
hgs
parents:
diff changeset
   311
    CleanupStack::PushL( cenrep );
hgs
parents:
diff changeset
   312
    User::LeaveIfError( cenrep->Get( KProEngRingingToneMaxSize, sizeLimitKB ) );
hgs
parents:
diff changeset
   313
    CleanupStack::PopAndDestroy(); // cenrep
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
    SetAttr( ToneFetcherEngine::EAttrFileSize, sizeLimitKB );
hgs
parents:
diff changeset
   316
    CMdEPropertyDef& sizeTypeDef = PropertyDefL( EAttrFileSize );
hgs
parents:
diff changeset
   317
    CMdEPropertyDef& mimeTypeDef = PropertyDefL( EAttrMediaType );
hgs
parents:
diff changeset
   318
    CMdEPropertyDef& artistTypeDef = PropertyDefL( EAttrArtist );
hgs
parents:
diff changeset
   319
    CMdEPropertyDef& albumTypeDef = PropertyDefL( EAttrAlbum );
hgs
parents:
diff changeset
   320
    CMdEPropertyDef& genreTypeDef = PropertyDefL( EAttrGenre );
hgs
parents:
diff changeset
   321
    CMdEPropertyDef& composerTypeDef = PropertyDefL( EAttrComposer );
hgs
parents:
diff changeset
   322
    
hgs
parents:
diff changeset
   323
    CMdELogicCondition& condition = 
hgs
parents:
diff changeset
   324
                        aCondition.AddLogicConditionL( ELogicConditionOperatorAnd );
hgs
parents:
diff changeset
   325
    condition.AddPropertyConditionL( sizeTypeDef, TMdEIntRange(0, iMaxFileSize, EMdERangeTypeBetween) );
hgs
parents:
diff changeset
   326
    condition.AddPropertyConditionL( mimeTypeDef, 
hgs
parents:
diff changeset
   327
            ETextPropertyConditionCompareContains, KMimeMp3 );
hgs
parents:
diff changeset
   328
    condition.AddPropertyConditionL( artistTypeDef );
hgs
parents:
diff changeset
   329
    condition.AddPropertyConditionL( albumTypeDef );
hgs
parents:
diff changeset
   330
    condition.AddPropertyConditionL( genreTypeDef );
hgs
parents:
diff changeset
   331
    condition.AddPropertyConditionL( composerTypeDef );
hgs
parents:
diff changeset
   332
    
hgs
parents:
diff changeset
   333
    condition.SetNegate( ETrue );
hgs
parents:
diff changeset
   334
    }
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
void ToneSelectionEnginePrivate::SetAttr( int attr, int value )
hgs
parents:
diff changeset
   337
{
hgs
parents:
diff changeset
   338
    switch ( attr )
hgs
parents:
diff changeset
   339
        {
hgs
parents:
diff changeset
   340
        case ToneFetcherEngine::EAttrFileSize:
hgs
parents:
diff changeset
   341
            {
hgs
parents:
diff changeset
   342
            iMaxFileSize = value;
hgs
parents:
diff changeset
   343
            break;
hgs
parents:
diff changeset
   344
            }            
hgs
parents:
diff changeset
   345
        default:
hgs
parents:
diff changeset
   346
            {
hgs
parents:
diff changeset
   347
            break;
hgs
parents:
diff changeset
   348
            }
hgs
parents:
diff changeset
   349
        }
hgs
parents:
diff changeset
   350
}
21
hgs
parents: 19
diff changeset
   351
hgs
parents: 19
diff changeset
   352
void ToneSelectionEnginePrivate::ChangeObject()
hgs
parents: 19
diff changeset
   353
    {    
hgs
parents: 19
diff changeset
   354
    if ( iTimerStarted )
hgs
parents: 19
diff changeset
   355
        {
hgs
parents: 19
diff changeset
   356
        emit notifyObjectChanged();
hgs
parents: 19
diff changeset
   357
        iTimerStarted = EFalse;
hgs
parents: 19
diff changeset
   358
        }
hgs
parents: 19
diff changeset
   359
    
hgs
parents: 19
diff changeset
   360
    if ( iContinue  )
hgs
parents: 19
diff changeset
   361
        {
hgs
parents: 19
diff changeset
   362
        iContinue = EFalse;
hgs
parents: 19
diff changeset
   363
        iTimer->After( 5000*1000 );
hgs
parents: 19
diff changeset
   364
        iTimerStarted = ETrue;
hgs
parents: 19
diff changeset
   365
        }
hgs
parents: 19
diff changeset
   366
    else 
hgs
parents: 19
diff changeset
   367
        {
hgs
parents: 19
diff changeset
   368
        if ( iFreshing )
hgs
parents: 19
diff changeset
   369
            {
hgs
parents: 19
diff changeset
   370
            emit notifyRefreshFinish();
hgs
parents: 19
diff changeset
   371
            iFreshing = EFalse;
hgs
parents: 19
diff changeset
   372
            }        
hgs
parents: 19
diff changeset
   373
        }
hgs
parents: 19
diff changeset
   374
    }
19
hgs
parents:
diff changeset
   375
// End of File
hgs
parents:
diff changeset
   376