videoplayerapp/videoplayerengine/src/videoplayerengine.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
equal deleted inserted replaced
34:bbb98528c666 35:3738fe97f027
    13 *
    13 *
    14 * Description:  Implementation of VideoPlayerEngine
    14 * Description:  Implementation of VideoPlayerEngine
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 // Version : %version: da1mmcf#21 %
    18 // Version : %version: 23 %
    19 
    19 
    20 
    20 
    21 #include <QApplication>
    21 #include <QApplication>
    22 
    22 
    23 #include <hbinstance.h>
    23 #include <hbinstance.h>
    24 #include <xqpluginloader.h>
    24 #include <xqpluginloader.h>
    25 #include <xqplugininfo.h>
    25 #include <xqplugininfo.h>
    26 #include <xqserviceutil.h>
    26 #include <xqserviceutil.h>
       
    27 #include <hbview.h>
    27 
    28 
    28 #include "videoplayerengine.h"
    29 #include "videoplayerengine.h"
    29 #include "mpxvideoplaybackwrapper.h"
    30 #include "mpxvideoplaybackwrapper.h"
    30 #include "videoservices.h"
    31 #include "videoservices.h"
       
    32 #include "mpxvideo_debug.h"
    31 
    33 
    32 // -------------------------------------------------------------------------------------------------
    34 // -------------------------------------------------------------------------------------------------
    33 // QVideoPlayerEngine()
    35 // QVideoPlayerEngine()
    34 // -------------------------------------------------------------------------------------------------
    36 // -------------------------------------------------------------------------------------------------
    35 //
    37 //
    36 QVideoPlayerEngine::QVideoPlayerEngine(bool isService)
    38 QVideoPlayerEngine::QVideoPlayerEngine(bool isService)
    37     : mIsService( isService )
    39     : mIsService( isService )
    38     , mEmbedded(false)
    40     , mEmbedded(false)
       
    41     , mDelayedLoadDone(false)
    39     , mCurrentViewPlugin( 0 )
    42     , mCurrentViewPlugin( 0 )
    40     , mPlaybackViewPlugin( 0 )
    43     , mPlaybackViewPlugin( 0 )
    41     , mCollectionViewPlugin( 0 )
    44     , mCollectionViewPlugin( 0 )
    42     , mFileDetailsViewPlugin( 0 )
    45     , mFileDetailsViewPlugin( 0 )
    43     , mPlaybackWrapper( 0 )
    46     , mPlaybackWrapper( 0 )
    49 // ~QVideoPlayerEngine()
    52 // ~QVideoPlayerEngine()
    50 // -------------------------------------------------------------------------------------------------
    53 // -------------------------------------------------------------------------------------------------
    51 //
    54 //
    52 QVideoPlayerEngine::~QVideoPlayerEngine()
    55 QVideoPlayerEngine::~QVideoPlayerEngine()
    53 {
    56 {
       
    57     MPX_ENTER_EXIT(_L("QVideoPlayerEngine::~QVideoPlayerEngine()"));
       
    58     	
    54     if ( mVideoServices )
    59     if ( mVideoServices )
    55     {
    60     {
    56     	mVideoServices->decreaseReferenceCount();
    61     	mVideoServices->decreaseReferenceCount();
    57     	mVideoServices = 0;
    62     	mVideoServices = 0;
    58     }
    63     }
    82 // initialize()
    87 // initialize()
    83 // -------------------------------------------------------------------------------------------------
    88 // -------------------------------------------------------------------------------------------------
    84 //
    89 //
    85 void QVideoPlayerEngine::initialize()
    90 void QVideoPlayerEngine::initialize()
    86 {
    91 {
       
    92     MPX_ENTER_EXIT(_L("QVideoPlayerEngine::initialize()"));	
    87     //
    93     //
    88     // Clean up QVideoPlayerEngine when qApp try to quit
    94     // Clean up QVideoPlayerEngine when qApp try to quit
    89     //
    95     //
    90     connect( qApp, SIGNAL( aboutToQuit() ), this, SLOT( handleQuit() ) );
    96     connect( qApp, SIGNAL( aboutToQuit() ), this, SLOT( handleQuit() ) );
    91 
    97 
   119     loadPlugin( MpxHbVideoCommon::CollectionView );
   125     loadPlugin( MpxHbVideoCommon::CollectionView );
   120 
   126 
   121     if ( mCollectionViewPlugin ) 
   127     if ( mCollectionViewPlugin ) 
   122     {
   128     {
   123         mCollectionViewPlugin->createView();
   129         mCollectionViewPlugin->createView();
       
   130         hbInstance->allMainWindows().value(0)->addView( mCollectionViewPlugin->getView() );
   124     }
   131     }
   125     
   132     
   126     loadPlugin( MpxHbVideoCommon::PlaybackView );
       
   127 
       
   128     if ( mPlaybackViewPlugin ) 
       
   129     {
       
   130         mPlaybackViewPlugin->createView();
       
   131     }
       
   132 
       
   133 	loadPlugin( MpxHbVideoCommon::VideoDetailsView );
       
   134 
       
   135 	if ( mFileDetailsViewPlugin )
       
   136 	{
       
   137 		mFileDetailsViewPlugin->createView();
       
   138 	}
       
   139 
       
   140     //
   133     //
   141     // default view in the app is the collection view.
   134     // default view in the app is the collection view.
   142     //
   135     //
   143     if(!mIsService)
   136     if(!mIsService)
   144     {
   137     {
   145         activateView( MpxHbVideoCommon::CollectionView );
   138         activateView( MpxHbVideoCommon::CollectionView );
   146     }            
   139     } 
       
   140     
       
   141     // delayed initialization of some uiengine member variables
       
   142     // to help application startup time & improve playback start time
       
   143     //
       
   144     mPlaybackWrapper->lateInit();        
       
   145     
   147 }
   146 }
   148 
   147 
   149 // -------------------------------------------------------------------------------------------------
   148 // -------------------------------------------------------------------------------------------------
   150 // handleCommand()
   149 // handleCommand()
   151 // -------------------------------------------------------------------------------------------------
   150 // -------------------------------------------------------------------------------------------------
   152 //
   151 //
   153 void QVideoPlayerEngine::handleCommand( int commandCode )
   152 void QVideoPlayerEngine::handleCommand( int commandCode )
   154 {
   153 {
       
   154 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::handleCommand()"));	
       
   155 	  
   155     switch ( commandCode )
   156     switch ( commandCode )
   156     {
   157     {
   157         case MpxHbVideoCommon::ActivateCollectionView:
   158         case MpxHbVideoCommon::ActivateCollectionView:
   158         {
   159         {
   159             if ( mCurrentViewPlugin != mCollectionViewPlugin )
   160             if ( mCurrentViewPlugin != mCollectionViewPlugin )
   176 			{
   177 			{
   177 				activateView( MpxHbVideoCommon::VideoDetailsView );                
   178 				activateView( MpxHbVideoCommon::VideoDetailsView );                
   178             }
   179             }
   179             break;
   180             break;
   180         }
   181         }
   181         case MpxHbVideoCommon::LoadVideoDetailsView:
   182         case MpxHbVideoCommon::DoDelayedLoad:
   182         {
   183         {
   183 			if ( mFileDetailsViewPlugin )
   184 			if ( !mDelayedLoadDone )
   184 			{
   185 			{
   185 				mFileDetailsViewPlugin->createView();
   186 				doDelayedLoad();
   186 			}
   187 			}
   187 			break;
   188             break;
   188 		}
   189         }
   189         
   190         
   190         default:
   191         default:
   191         {
   192         {
   192             break;
   193             break;
   193         }
   194         }
   194     }    
   195     }    
   195 }
   196 }
   196 
   197 
   197 // -------------------------------------------------------------------------------------------------
   198 // -------------------------------------------------------------------------------------------------
       
   199 // doDelayedLoad()
       
   200 // -------------------------------------------------------------------------------------------------
       
   201 //
       
   202 void QVideoPlayerEngine::doDelayedLoad()
       
   203 {
       
   204     if ( !mPlaybackViewPlugin )
       
   205 	{
       
   206 	    loadPlugin( MpxHbVideoCommon::PlaybackView );
       
   207 
       
   208 	    if ( mPlaybackViewPlugin ) 
       
   209 	    {
       
   210 	        mPlaybackViewPlugin->createView();
       
   211 	        hbInstance->allMainWindows().value(0)->addView( mPlaybackViewPlugin->getView() );
       
   212 	    }
       
   213 	}
       
   214 
       
   215     if ( !mFileDetailsViewPlugin )
       
   216 	{
       
   217 	    loadPlugin( MpxHbVideoCommon::VideoDetailsView );
       
   218 
       
   219 		if ( mFileDetailsViewPlugin )
       
   220 		{
       
   221 			mFileDetailsViewPlugin->createView();
       
   222 			hbInstance->allMainWindows().value(0)->addView( mFileDetailsViewPlugin->getView() );
       
   223 		}
       
   224 	}
       
   225 	
       
   226 	mDelayedLoadDone = true;
       
   227 }
       
   228 
       
   229 // -------------------------------------------------------------------------------------------------
   198 // activateView()
   230 // activateView()
   199 // activate view based on view type.
   231 // activate view based on view type.
   200 // -------------------------------------------------------------------------------------------------
   232 // -------------------------------------------------------------------------------------------------
   201 //
   233 //
   202 void QVideoPlayerEngine::activateView( MpxHbVideoCommon::MpxHbVideoViewType viewType )
   234 void QVideoPlayerEngine::activateView( MpxHbVideoCommon::MpxHbVideoViewType viewType )
   203 {
   235 {
       
   236 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::activateView()"));
       
   237 	  
   204     disconnectView();
   238     disconnectView();
   205     
   239     
   206     if ( mCurrentViewPlugin )
   240     if ( mCurrentViewPlugin )
   207     {
   241     {
   208         mCurrentViewPlugin->deactivateView();
   242         mCurrentViewPlugin->deactivateView();
   209         hbInstance->allMainWindows().value(0)->removeView( mCurrentViewPlugin->getView() );
       
   210         mCurrentViewPlugin = NULL;
   243         mCurrentViewPlugin = NULL;
   211     }
   244     }
   212 
   245 
   213     if ( viewType == MpxHbVideoCommon::CollectionView && mCollectionViewPlugin  ) 
   246     if ( viewType == MpxHbVideoCommon::CollectionView && mCollectionViewPlugin  ) 
   214     {
   247     {
   221             else
   254             else
   222             {
   255             {
   223                 mCurrentViewPlugin = mCollectionViewPlugin;
   256                 mCurrentViewPlugin = mCollectionViewPlugin;
   224             }
   257             }
   225     }
   258     }
   226     else if ( viewType == MpxHbVideoCommon::PlaybackView && mPlaybackViewPlugin ) 
   259     else if ( viewType == MpxHbVideoCommon::PlaybackView ) 
   227     {
   260     {
       
   261 		if(!mPlaybackViewPlugin)
       
   262     	{
       
   263     		loadPlugin( MpxHbVideoCommon::PlaybackView );
       
   264     	    if ( mPlaybackViewPlugin ) 
       
   265     	    {
       
   266     	        mPlaybackViewPlugin->createView();
       
   267     	        hbInstance->allMainWindows().value(0)->addView( mPlaybackViewPlugin->getView() );
       
   268     	    }
       
   269     		else
       
   270     		{
       
   271     			return;
       
   272     		}
       
   273     	}
   228         mCurrentViewPlugin = mPlaybackViewPlugin;
   274         mCurrentViewPlugin = mPlaybackViewPlugin;
   229     }
   275     }
   230     else if ( viewType == MpxHbVideoCommon::VideoDetailsView && mFileDetailsViewPlugin ) 
   276     else if ( viewType == MpxHbVideoCommon::VideoDetailsView ) 
   231     {
   277     {
       
   278 		if(!mFileDetailsViewPlugin)
       
   279     	{
       
   280     		loadPlugin( MpxHbVideoCommon::VideoDetailsView );	
       
   281     		if ( mFileDetailsViewPlugin )
       
   282     		{
       
   283     			mFileDetailsViewPlugin->createView();
       
   284     			hbInstance->allMainWindows().value(0)->addView( mFileDetailsViewPlugin->getView() );
       
   285     		}
       
   286     		else
       
   287     		{
       
   288     			return;
       
   289     		}
       
   290     	}
   232         mCurrentViewPlugin = mFileDetailsViewPlugin;
   291         mCurrentViewPlugin = mFileDetailsViewPlugin;
   233     }
   292     }
   234     else
   293     else
   235     {
   294     {
   236         // invalid plugin activation request, do nothing
   295         // invalid plugin activation request, do nothing
   237         return;
   296         return;
   238     }
   297     }
   239 
   298     
   240     hbInstance->allMainWindows().value(0)->addView( mCurrentViewPlugin->getView() );
   299     hbInstance->allMainWindows().value(0)->setCurrentView( static_cast<HbView*>( mCurrentViewPlugin->getView() ), false );
   241     connectView();
   300     connectView();
   242     mCurrentViewPlugin->activateView();
   301     mCurrentViewPlugin->activateView();
   243 }
   302 }
   244 
   303 
   245 // -------------------------------------------------------------------------------------------------
   304 // -------------------------------------------------------------------------------------------------
   246 // loadPlugin()
   305 // loadPlugin()
   247 // -------------------------------------------------------------------------------------------------
   306 // -------------------------------------------------------------------------------------------------
   248 //
   307 //
   249 void QVideoPlayerEngine::loadPlugin( MpxHbVideoCommon::MpxHbVideoViewType viewType )
   308 void QVideoPlayerEngine::loadPlugin( MpxHbVideoCommon::MpxHbVideoViewType viewType )
   250 {
   309 {
       
   310 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::loadPlugin()"));
       
   311 	  
   251     int viewTypeUid( 0 );
   312     int viewTypeUid( 0 );
   252 
   313 
   253     if ( viewType == MpxHbVideoCommon::CollectionView ) 
   314     if ( viewType == MpxHbVideoCommon::CollectionView ) 
   254     {
   315     {
   255         viewTypeUid = MpxHbVideoCommon::KMpxVideoPluginDllCollectionUid;
   316         viewTypeUid = MpxHbVideoCommon::KMpxVideoPluginDllCollectionUid;
   292 // connect application to view by setting up the signals and slots.
   353 // connect application to view by setting up the signals and slots.
   293 // -------------------------------------------------------------------------------------------------
   354 // -------------------------------------------------------------------------------------------------
   294 //
   355 //
   295 void QVideoPlayerEngine::connectView()
   356 void QVideoPlayerEngine::connectView()
   296 {
   357 {
       
   358 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::connectView()"));
       
   359 	  
   297     connect( mCurrentViewPlugin,
   360     connect( mCurrentViewPlugin,
   298              SIGNAL( command( int ) ),
   361              SIGNAL( command( int ) ),
   299              this,
   362              this,
   300              SLOT( handleCommand( int ) ) );
   363              SLOT( handleCommand( int ) ) );
   301 }
   364 }
   305 // connect application to view by setting up the signals and slots.
   368 // connect application to view by setting up the signals and slots.
   306 // -------------------------------------------------------------------------------------------------
   369 // -------------------------------------------------------------------------------------------------
   307 //
   370 //
   308 void QVideoPlayerEngine::disconnectView()
   371 void QVideoPlayerEngine::disconnectView()
   309 {
   372 {
       
   373 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::disconnectView()"));
       
   374 	  
   310     if ( mCurrentViewPlugin )
   375     if ( mCurrentViewPlugin )
   311     {
   376     {
   312         disconnect( mCurrentViewPlugin,
   377         disconnect( mCurrentViewPlugin,
   313                     SIGNAL( command( int ) ),
   378                     SIGNAL( command( int ) ),
   314                     this,
   379                     this,
   320 // handleQuit()
   385 // handleQuit()
   321 // -------------------------------------------------------------------------------------------------
   386 // -------------------------------------------------------------------------------------------------
   322 //
   387 //
   323 void QVideoPlayerEngine::handleQuit()
   388 void QVideoPlayerEngine::handleQuit()
   324 {
   389 {
       
   390 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::handleQuit()"));
       
   391 	  
   325     delete this;
   392     delete this;
   326 }
   393 }
   327 
   394 
   328 
   395 
   329 // -------------------------------------------------------------------------------------------------
   396 // -------------------------------------------------------------------------------------------------
   330 // playMedia()
   397 // playMedia()
   331 // -------------------------------------------------------------------------------------------------
   398 // -------------------------------------------------------------------------------------------------
   332 //
   399 //
   333 void QVideoPlayerEngine::playMedia( QString filePath )
   400 void QVideoPlayerEngine::playMedia( QString filePath )
   334 {
   401 {
       
   402 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::playMedia()")); 
       
   403 	  	
   335     mPlaybackWrapper->playMedia( filePath );
   404     mPlaybackWrapper->playMedia( filePath );
   336 }
   405 }
   337 
   406 
   338 // -------------------------------------------------------------------------------------------------
   407 // -------------------------------------------------------------------------------------------------
   339 // setEmbedded()
   408 // setEmbedded()
   340 // -------------------------------------------------------------------------------------------------
   409 // -------------------------------------------------------------------------------------------------
   341 //
   410 //
   342 void QVideoPlayerEngine::setEmbedded()
   411 void QVideoPlayerEngine::setEmbedded()
   343 {
   412 {
       
   413 	  MPX_ENTER_EXIT(_L("QVideoPlayerEngine::setEmbedded()")); 
       
   414 	  
   344     mEmbedded = true;
   415     mEmbedded = true;
   345 }
   416 }
   346 
   417 
   347 // End of file
   418 // End of file