controlpanelui/src/tonefetcher/tonefetcherengine/private/tonefetcherengine_symbian.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:15:28 +0300
branchRCL_3
changeset 13 90fe62538f66
permissions -rw-r--r--
Revision: 201029 Kit: 201035

/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 * 
 * Contributors:
 * 
 * Description:
 *     The source file for tone fetcher engine private class.
 *     
 */


#include "tonefetcherengine_symbian.h"
#include "CToneSelection.h"
#include "CTonePlayer.h"
#include "tonefetcherutils.h"
#include <XQConversions>

ToneFetcherEnginePrivate::ToneFetcherEnginePrivate()
    {
    TRAP_IGNORE( mToneSelection = CToneSelection::NewL( this ) ); 
    TRAP_IGNORE( mTonePlayer = CTonePlayer::NewL( this ) );    
    }

ToneFetcherEnginePrivate::~ToneFetcherEnginePrivate()
    {
    mResultList.clear();
    delete mToneSelection;
    delete mTonePlayer;
    }

void ToneFetcherEnginePrivate::getTones()
    {
    QT_TRAP_THROWING( mToneSelection->QueryTonesL() );
    }

void ToneFetcherEnginePrivate::play(const QString &file)
    {    
    QT_TRAP_THROWING( mTonePlayer->SetAttrL( XQConversions::qStringToS60Desc( ToneFetcherUtils::normalizeSeperator(file) )->Des() ) );
    QT_TRAP_THROWING( mTonePlayer->PlayL() );
    }

bool ToneFetcherEnginePrivate::isPlaying()
    {
    return mTonePlayer->IsPlaying();
    }

void ToneFetcherEnginePrivate::stopPlaying()
    {
    mTonePlayer->Stop();
    }

void ToneFetcherEnginePrivate::HandleMdeSessionError( TInt aError )
    {
    emit mdeSessionError( aError );
    }

void ToneFetcherEnginePrivate::HandleMdeSessionOpened()
    {
    emit mdeSessionOpened();
    }

void ToneFetcherEnginePrivate::HandleQueryError( TInt aError )
    {
    emit queryError(aError);
    }

void ToneFetcherEnginePrivate::HandleQueryComplete( RPointerArray<TDesC>& aResultArray )
    {
    mResultList.clear();
    for ( int i = 0; i < aResultArray.Count(); ++i ) 
        {
        mResultList.append( XQConversions::s60DescToQString( *(aResultArray[i]) ) );
        }
    aResultArray.ResetAndDestroy();
    emit queryComplete(mResultList);
    }

void ToneFetcherEnginePrivate::HandleObjectChanged()
    {
    emit notifyObjectChanged();
    }

void ToneFetcherEnginePrivate::HandlePreviewEvent( TInt event )
    {
    emit notifyPreviewEvent(event);
    }