mpengine/inc/mpmpxplaybackframeworkwrapper_p.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:29:20 +0300
changeset 22 ecf06a08d4d9
child 29 8192e5b5c935
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* 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: Framework wraper for Playback - Private.
*
*/

#ifndef MPMPXPLAYBACKFRAMEWORKWRAPPER_P_H
#define MPMPXPLAYBACKFRAMEWORKWRAPPER_P_H

#include <e32base.h>
#include <mpxplaybackobserver.h>
#include "mpmpxcollectionviewdefs.h"
#include "mpcommondefs.h"


class MMPXPlaybackUtility;
class MpMpxPlaybackFrameworkWrapper;
class QStringList;
class CMPXMedia;
class MpPlaybackData;
class XQSharableFile;


class MpMpxPlaybackFrameworkWrapperPrivate : public MMPXPlaybackObserver,
                                             public MMPXPlaybackCallback
{
public:

    explicit MpMpxPlaybackFrameworkWrapperPrivate( MpMpxPlaybackFrameworkWrapper *wrapper );
    virtual ~MpMpxPlaybackFrameworkWrapperPrivate();

    void init( MpCommon::MpViewMode viewMode, TUid hostUid );

    void play( QString aFilename );
    void play( const XQSharableFile& file );
    void playPause();
    void stop();
    void skipForward();
    void skipBackward();
    void setPosition( int value );
    void setShuffle( bool mode );
    void setRepeat( bool mode );

    MpPlaybackData *playbackData();

    // From MMPXPlaybackObserver
    void HandlePlaybackMessage( CMPXMessage *aMessage, TInt aError );

    // From MMPXPlaybackCallback
    void HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError );
    void HandleSubPlayerNamesL( TUid aPlayer, const MDesCArray *aSubPlayers,
                                TBool aComplete, TInt aError );
    void HandleMediaL( const CMPXMedia& aProperties, TInt aError );
    
private:

    void DoInitL();
    void DoPlayL( QString aFilename );
    void DoPlayL( const XQSharableFile& file );
    void DoHandlePlaybackMessageL( const CMPXMessage& aMessage );
    void ForceStopL();
    void UpdateStateL();
    void RetrieveSongDetailsL();

private:

    MpMpxPlaybackFrameworkWrapper       *q_ptr;
    MMPXPlaybackUtility                 *iPlaybackUtility;     // Own
    CMPXMedia                           *iMedia;               // Own
    MpPlaybackData                      *iPlaybackData;        // Own
    MpCommon::MpViewMode                iViewMode;
    TUid                                mHostUid;
    
};

#endif  // MPMPXPLAYBACKFRAMEWORKWRAPPER_P_H