videoplayerapp/inc/videoplayerengine.h
author hgs
Mon, 23 Aug 2010 14:27:29 +0300
changeset 55 4bfa887905cf
parent 50 21fe8338c6bf
child 58 d2b028fd1f7d
permissions -rw-r--r--
201033

/*
* 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: 20 %

#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;

/**
 *  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 );
        void viewReadySlot();

    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;

};

#endif // VIDEOPLAYERENGINE_H

// EOF