videoplayerapp/inc/videoplayerengine.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 17 Sep 2010 08:30:05 +0300
changeset 62 0e1e938beb1a
parent 59 a76e86df7ccd
permissions -rw-r--r--
Revision: 201035 Kit: 201037

/*
* 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:  Implementation of VideoPlayerEngine
*
*/

// Version : %version: ou1cpsw#22 %

#ifndef VIDEOPLAYERENGINE_H
#define VIDEOPLAYERENGINE_H

#include <qobject.h>
#include <mpxviewpluginqt.h>

#include <f32file.h>

#include "mpxhbvideocommondefs.h"
#include "videoplayerappexport.h"

//FORWARD CLASS DECLARATION

class MpxViewPlugin;
class VideoServices;
class VideoPlaybackWrapper;
class AfActivityStorage;

/**
 *  VideoPlayerEngine
 * 
 */
class VIDEOPLAYERAPP_DLL_EXPORT VideoPlayerEngine : public QObject
{
    Q_OBJECT

    public:
        /**
         * Constructor
         */
        VideoPlayerEngine( bool isService = false );

        /**
        * Destructor.
        */
        virtual ~VideoPlayerEngine();
    
    public:
        void initialize();
        void playMedia( QString filePath );
		void playURI( QString uri );
        void playMedia( RFile file );
        void setEmbedded();
    signals:
        void applicationReady();
    
    public slots:
        void handleCommand( int commandCode );

    private slots:
        void handleQuit();
        void serviceQuit();

    private:
        void activateView( MpxHbVideoCommon::MpxHbVideoViewType viewType );

        void connectView();
        void disconnectView();
    
        void switchView();    
    
        void loadPluginAndCreateView( MpxHbVideoCommon::MpxHbVideoViewType viewType );
        
        void doDelayedLoad();
        
        void createMissingViews();
        
        void createPlaybackView();
        
        void setCurrentView();
        
        bool isPlayServiceInvoked();  
        
        bool shouldExit();
        
        bool shouldActivateCollectionView();
        
        void handlePlaybackFailure(int errorCode);

    private:
        bool                      mIsService;
        bool                      mEmbedded;
        bool                      mDelayedLoadDone;
        bool                      mIsPlayService;

        MpxViewPlugin*            mCurrentViewPlugin;
        MpxViewPlugin*            mPlaybackViewPlugin; 
        MpxViewPlugin*            mCollectionViewPlugin; 
        MpxViewPlugin*            mFileDetailsViewPlugin;
        

        VideoPlaybackWrapper      *mPlaybackWrapper;

        VideoServices*            mVideoServices;
        
        AfActivityStorage*        mActivityStorage;

};

#endif // VIDEOPLAYERENGINE_H

// EOF