qtinternetradio/irqmediaplayer/src/irqmmfadapter.cpp
changeset 17 38bbf2dcd608
parent 14 896e9dbc5f19
equal deleted inserted replaced
16:5723da102db1 17:38bbf2dcd608
    43 IRQMMFAdapter::IRQMMFAdapter() :
    43 IRQMMFAdapter::IRQMMFAdapter() :
    44     iVideoPlayer(NULL)
    44     iVideoPlayer(NULL)
    45     ,iQMetaData(NULL)
    45     ,iQMetaData(NULL)
    46     ,iPrepareTimer(NULL), iStereoEffect(NULL)
    46     ,iPrepareTimer(NULL), iStereoEffect(NULL)
    47 {
    47 {
       
    48     LOG_METHOD;
    48     iPlayState = EStopped;
    49     iPlayState = EStopped;
    49 }
    50 }
    50 
    51 
    51 // ---------------------------------------------------------------------------
    52 // ---------------------------------------------------------------------------
    52 //  IRQMMFAdapter::~IRQMMFAdapter
    53 //  IRQMMFAdapter::~IRQMMFAdapter
    54 //  Clean up resources
    55 //  Clean up resources
    55 // ---------------------------------------------------------------------------
    56 // ---------------------------------------------------------------------------
    56 //
    57 //
    57 IRQMMFAdapter::~IRQMMFAdapter()
    58 IRQMMFAdapter::~IRQMMFAdapter()
    58 {
    59 {
       
    60     LOG_METHOD;
    59     destroyPlayer();
    61     destroyPlayer();
    60 
    62 
    61     delete iQMetaData;
    63     delete iQMetaData;
    62     iQMetaData = NULL;
    64     iQMetaData = NULL;
    63 
    65 
    85 {
    87 {
    86     LOG_METHOD;
    88     LOG_METHOD;
    87     TRAPD(error, playL(aUrl, aApId));
    89     TRAPD(error, playL(aUrl, aApId));
    88     if (NULL == iQMetaData)
    90     if (NULL == iQMetaData)
    89     {
    91     {
       
    92         LOG("Error Occured(EIRQErrorOutOfMemory)");
    90         emit errorOccured(EIRQErrorOutOfMemory);
    93         emit errorOccured(EIRQErrorOutOfMemory);
    91     }
    94     }
    92 
    95 
    93     if (KErrNone != error)
    96     if (KErrNone != error)
    94     {
    97     {
       
    98         LOG_FORMAT("Error Occured = %d", (int)error);
    95         emit errorOccured(EIRQPlayerErrorGeneral);
    99         emit errorOccured(EIRQPlayerErrorGeneral);
    96     }
   100     }
    97 }
   101 }
    98 
   102 
    99 // ---------------------------------------------------------------------------
   103 // ---------------------------------------------------------------------------
   101 //  Play url via specific access point id
   105 //  Play url via specific access point id
   102 // ---------------------------------------------------------------------------
   106 // ---------------------------------------------------------------------------
   103 //
   107 //
   104 void IRQMMFAdapter::playL(const QString &aUrl, int aApId)
   108 void IRQMMFAdapter::playL(const QString &aUrl, int aApId)
   105 {
   109 {
       
   110     LOG_METHOD;
       
   111     
   106     // Save stream Url
   112     // Save stream Url
   107     if (NULL == iQMetaData)
   113     if (NULL == iQMetaData)
   108     {
   114     {
   109         iQMetaData = new (ELeave) IRQMetaData();
   115         iQMetaData = new (ELeave) IRQMetaData();
   110     }
   116     }
   126 
   132 
   127     // If the status is not stopped, clean up last playback resources
   133     // If the status is not stopped, clean up last playback resources
   128     stop();
   134     stop();
   129 
   135 
   130     // Open url
   136     // Open url
       
   137     LOG("CVideoPlayerUtility::OpenUrlL(stationUrl, aApId, KNullDesC8, KUidController)");
   131     iVideoPlayer->OpenUrlL(stationUrl, aApId, KNullDesC8, KUidController);
   138     iVideoPlayer->OpenUrlL(stationUrl, aApId, KNullDesC8, KUidController);
   132     iPlayState = EOpenning;
   139     iPlayState = EOpenning;
   133 }
   140 }
   134 
   141 
   135 // ---------------------------------------------------------------------------
   142 // ---------------------------------------------------------------------------
   138 //  Stop playback, call Close() to clean up allocated resources
   145 //  Stop playback, call Close() to clean up allocated resources
   139 // ---------------------------------------------------------------------------
   146 // ---------------------------------------------------------------------------
   140 //
   147 //
   141 void IRQMMFAdapter::stop()
   148 void IRQMMFAdapter::stop()
   142 {
   149 {
       
   150     LOG_METHOD;
       
   151     
   143     if (iVideoPlayer && EStopped != iPlayState)
   152     if (iVideoPlayer && EStopped != iPlayState)
   144     {
   153     {
       
   154         LOG("Stop the prepare timeout timer");
   145         if (iPrepareTimer)
   155         if (iPrepareTimer)
   146         {
   156         {
   147             if (iPrepareTimer->IsActive())
   157             if (iPrepareTimer->IsActive())
   148             {
   158             {
   149                 iPrepareTimer->Cancel();
   159                 iPrepareTimer->Cancel();
   150             }
   160             }
   151         }
   161         }
   152 
   162 
       
   163         LOG("CVideoPlayerUtility::Stop()");
       
   164         LOG("CVideoPlayerUtility::Close()");
   153         iVideoPlayer->Stop();
   165         iVideoPlayer->Stop();
   154         iVideoPlayer->Close();
   166         iVideoPlayer->Close();
   155         iPlayState = EStopped;
   167         iPlayState = EStopped;
   156     }
   168     }
   157 }
   169 }
   163 // ---------------------------------------------------------------------------
   175 // ---------------------------------------------------------------------------
   164 //
   176 //
   165 void IRQMMFAdapter::setVolume(int aVolume)
   177 void IRQMMFAdapter::setVolume(int aVolume)
   166 {
   178 {
   167     LOG_METHOD;
   179     LOG_METHOD;
       
   180     
   168     if (iVideoPlayer && iPlayState > EOpenning)
   181     if (iVideoPlayer && iPlayState > EOpenning)
   169     {
   182     {
   170         // aVolume is a percentage
   183         // aVolume is a percentage
   171         if (aVolume < KVolumeMinPercentage)
   184         if (aVolume < KVolumeMinPercentage)
   172         {
   185         {
   176         {
   189         {
   177             aVolume = KVolumeMaxPercentage;
   190             aVolume = KVolumeMaxPercentage;
   178         }
   191         }
   179         int volume = aVolume*iVideoPlayer->MaxVolume()/KVolumeMaxPercentage;
   192         int volume = aVolume*iVideoPlayer->MaxVolume()/KVolumeMaxPercentage;
   180 
   193 
       
   194         LOG_FORMAT("CVideoPlayerUtility::SetVolumeL(%d)", volume);
   181         TRAPD(error, iVideoPlayer->SetVolumeL(volume));
   195         TRAPD(error, iVideoPlayer->SetVolumeL(volume));
   182         if (KErrNone != error)
   196         if (KErrNone != error)
   183         {
   197         {
       
   198             LOG_FORMAT("Error Occured = %d", (int)error);
   184             emit errorOccured(EIRQPlayerErrorGeneral);
   199             emit errorOccured(EIRQPlayerErrorGeneral);
   185         }
   200         }
   186     }
   201     }
   187 }
   202 }
   188 
   203 
   192 //  Get current volume value from player
   207 //  Get current volume value from player
   193 // ---------------------------------------------------------------------------
   208 // ---------------------------------------------------------------------------
   194 //
   209 //
   195 int IRQMMFAdapter::getVolume()
   210 int IRQMMFAdapter::getVolume()
   196 {
   211 {
       
   212     LOG_METHOD;
       
   213     
   197     int volume = KVolumeMinPercentage;
   214     int volume = KVolumeMinPercentage;
   198 
   215 
   199     if (iVideoPlayer && iPlayState > EOpenning)
   216     if (iVideoPlayer && iPlayState > EOpenning)
   200     {
   217     {
   201         // Return a percentage
   218         // Return a percentage
   215     return (void*)iVideoPlayer;
   232     return (void*)iVideoPlayer;
   216 }
   233 }
   217 
   234 
   218 void IRQMMFAdapter::enableStereoEffect()
   235 void IRQMMFAdapter::enableStereoEffect()
   219 {
   236 {
       
   237     LOG_METHOD;
   220     if (IRQPlayerAdapterInterface::EPlaying != iPlayState)
   238     if (IRQPlayerAdapterInterface::EPlaying != iPlayState)
   221     {
   239     {
   222         return;
   240         return;
   223     }
   241     }
   224 
   242 
   225     TRAP_IGNORE(enableStereoEffectL());
   243     TRAP_IGNORE(enableStereoEffectL());
   226 }
   244 }
   227 
   245 
   228 void IRQMMFAdapter::disableStereoEffect()
   246 void IRQMMFAdapter::disableStereoEffect()
   229 {
   247 {
       
   248     LOG_METHOD;
   230     if (iStereoEffect)
   249     if (iStereoEffect)
   231     {
   250     {
   232         if (iStereoEffect->IsEnabled())
   251         if (iStereoEffect->IsEnabled())
   233         {
   252         {
   234             TRAPD(error, iStereoEffect->DisableL());
   253             TRAPD(error, iStereoEffect->DisableL());
   235             if (KErrNone != error)
   254             if (KErrNone != error)
   236             {
   255             {
       
   256                 LOG_FORMAT("Error Occured = %d", (int)error);
   237                 emit errorOccured(EIRQPlayerErrorSetStereoFailed);
   257                 emit errorOccured(EIRQPlayerErrorSetStereoFailed);
   238             }
   258             }
   239             delete iStereoEffect;
   259             delete iStereoEffect;
   240             iStereoEffect = NULL;
   260             iStereoEffect = NULL;
   241         }
   261         }
   262                 return;
   282                 return;
   263              }
   283              }
   264         }
   284         }
   265 
   285 
   266         // Prepare to playback
   286         // Prepare to playback
       
   287         LOG("CVideoPlayerUtility::Prepare()");
   267         iVideoPlayer->Prepare();
   288         iVideoPlayer->Prepare();
   268         iPlayState = EConnecting;
   289         iPlayState = EConnecting;
   269 
   290 
   270         // Start a timer to check preparation status
   291         // Start a timer to check preparation status
   271         if (iPrepareTimer->IsActive())
   292         if (iPrepareTimer->IsActive())
   274             iPrepareTimer->Cancel();
   295             iPrepareTimer->Cancel();
   275         }
   296         }
   276         TTimeIntervalMicroSeconds32 interval(KConnectingTime);
   297         TTimeIntervalMicroSeconds32 interval(KConnectingTime);
   277         iPrepareTimer->Start(interval,interval,
   298         iPrepareTimer->Start(interval,interval,
   278                              TCallBack(IRQMMFAdapter::isPrepareCompleted,this));
   299                              TCallBack(IRQMMFAdapter::isPrepareCompleted,this));
       
   300         LOG_FORMAT("Start the prepare timeout timer = %d sec", (int)interval.Int()/1000000);
   279     }
   301     }
   280     else
   302     else
   281     {
   303     {
       
   304         LOG_FORMAT("Error Occured = %d", (int)aError);
   282         emit errorOccured(EIRQPlayerErrorConnectingFailed);
   305         emit errorOccured(EIRQPlayerErrorConnectingFailed);
   283     }
   306     }
   284 }
   307 }
   285 
   308 
   286 // ---------------------------------------------------------------------------
   309 // ---------------------------------------------------------------------------
   292 //
   315 //
   293 void IRQMMFAdapter::MvpuoPrepareComplete(TInt aError)
   316 void IRQMMFAdapter::MvpuoPrepareComplete(TInt aError)
   294 {
   317 {
   295     LOG_METHOD;
   318     LOG_METHOD;
   296     // Cancel the previous request if pending
   319     // Cancel the previous request if pending
       
   320     LOG("Stop the prepare timeout timer");
   297     if (iPrepareTimer->IsActive())
   321     if (iPrepareTimer->IsActive())
   298     {
   322     {
   299         iPrepareTimer->Cancel();
   323         iPrepareTimer->Cancel();
   300     }
   324     }
   301 
   325 
   313         {
   337         {
   314             iQMetaData->setBitrate(bitrate/1000);
   338             iQMetaData->setBitrate(bitrate/1000);
   315         }
   339         }
   316 
   340 
   317         // Send signal ConnectionEstablished
   341         // Send signal ConnectionEstablished
       
   342         LOG_FORMAT("bit rate = %d", iQMetaData->getBitrate());
   318         emit connectionEstablished(iQMetaData->getBitrate());
   343         emit connectionEstablished(iQMetaData->getBitrate());
   319 
   344 
   320         // Set specific event to get meta data from player
   345         // Set specific event to get meta data from player
   321         setMetadataEventConfig();
   346         setMetadataEventConfig();
   322 
   347 
   323         // Start playback
   348         // Start playback
       
   349         LOG("CVideoPlayerUtility::Play()");
   324         iVideoPlayer->Play();
   350         iVideoPlayer->Play();
   325         iPlayState = EBuffering;
   351         iPlayState = EBuffering;
   326     }
   352     }
   327     else if (KErrServerBusy == aError)
   353     else if (KErrServerBusy == aError)
   328     {
   354     {
       
   355         LOG("Error Occured(EIRQPlayerErrorServerFull)");
   329         emit errorOccured(EIRQPlayerErrorServerFull);
   356         emit errorOccured(EIRQPlayerErrorServerFull);
   330     }
   357     }
   331     else
   358     else
   332     {
   359     {
       
   360         LOG_FORMAT("Error Occured = %d", (int)aError);
   333         emit errorOccured(EIRQPlayerErrorConnectingFailed);
   361         emit errorOccured(EIRQPlayerErrorConnectingFailed);
   334     }
   362     }
   335 }
   363 }
   336 
   364 
   337 // ---------------------------------------------------------------------------
   365 // ---------------------------------------------------------------------------
   345 void IRQMMFAdapter::MvpuoPlayComplete(TInt aError)
   373 void IRQMMFAdapter::MvpuoPlayComplete(TInt aError)
   346 {
   374 {
   347     LOG_METHOD;
   375     LOG_METHOD;
   348     if (KErrNone != aError)
   376     if (KErrNone != aError)
   349     {
   377     {
       
   378         LOG_FORMAT("Error Occured = %d", (int)aError);
   350         emit errorOccured(EIRQPlayerErrorGeneral);
   379         emit errorOccured(EIRQPlayerErrorGeneral);
   351     }
   380     }
   352 }
   381 }
   353 
   382 
   354 // ---------------------------------------------------------------------------
   383 // ---------------------------------------------------------------------------
   358 // ---------------------------------------------------------------------------
   387 // ---------------------------------------------------------------------------
   359 //
   388 //
   360 void IRQMMFAdapter::MvpuoEvent(TMMFEvent const & aEvent)
   389 void IRQMMFAdapter::MvpuoEvent(TMMFEvent const & aEvent)
   361 {
   390 {
   362     LOG_METHOD;
   391     LOG_METHOD;
   363     LOG_FORMAT( "aevent is %d", (int)aEvent);
       
   364     if (KMMFEventCategoryVideoPlayerGeneralError == aEvent.iEventType)
   392     if (KMMFEventCategoryVideoPlayerGeneralError == aEvent.iEventType)
   365     {
   393     {
       
   394         LOG("Event Type = KMMFEventCategoryVideoPlayerGeneralError");
   366         switch (aEvent.iErrorCode)
   395         switch (aEvent.iErrorCode)
   367         {
   396         {
   368             case KErrHardwareNotAvailable:
   397             case KErrHardwareNotAvailable:
       
   398                 LOG("Event Error Code = KErrHardwareNotAvailable");
       
   399                 emit errorOccured(EIRQPlayerErrorAudioDeviceLost);
       
   400                 break;                
   369             case KErrMMAudioDevice:
   401             case KErrMMAudioDevice:
   370                 // Higher priority application has taken over the
   402                 // Higher priority application has taken over the
   371                 // audio device. --> Do stop.
   403                 // audio device. --> Do stop.
       
   404                 LOG("Event Error Code = KErrMMAudioDevice");
   372                 emit errorOccured(EIRQPlayerErrorAudioDeviceLost);
   405                 emit errorOccured(EIRQPlayerErrorAudioDeviceLost);
   373                 break;
   406                 break;
   374             case KErrDisconnected:
   407             case KErrDisconnected:
       
   408                 LOG("Event Error Code = KErrDisconnected");
   375                 emit errorOccured(EIRQPlayerErrorConnectionLost);
   409                 emit errorOccured(EIRQPlayerErrorConnectionLost);
   376                 break;
   410                 break;
   377             case KErrTimedOut:    
   411             case KErrTimedOut:  
       
   412                 LOG("Event Error Code = KErrTimedOut");  
   378                 emit errorOccured(EIRQPlayerErrorTimeOut);
   413                 emit errorOccured(EIRQPlayerErrorTimeOut);
   379                 break;
   414                 break;
   380             case KErrServerBusy:    
   415             case KErrServerBusy:  
       
   416                 LOG("Event Error Code = KErrServerBusy");  
   381                 emit errorOccured(EIRQPlayerErrorServerFull);
   417                 emit errorOccured(EIRQPlayerErrorServerFull);
   382                 break;                                            
   418                 break;                                            
   383             default:
   419             default:
       
   420                 LOG_FORMAT("Event Error Code = %d", (int)aEvent.iErrorCode);
   384                 emit errorOccured(EIRQPlayerErrorGeneral);			
   421                 emit errorOccured(EIRQPlayerErrorGeneral);			
   385                 break;
   422                 break;
   386         }
   423         }
   387     }
   424     }
   388     else if (KMMFRefreshMetaData == aEvent.iEventType)
   425     else if (KMMFRefreshMetaData == aEvent.iEventType)
   389     {
   426     {
       
   427         LOG("Event Type = KMMFRefreshMetaData");
       
   428         LOG_FORMAT( "Event Error Code = %d", (int)aEvent.iErrorCode);
   390         // Get refreshed meta data
   429         // Get refreshed meta data
   391         TRAPD(error, getRefreshedMetaDataL(aEvent.iErrorCode));
   430         TRAPD(error, getRefreshedMetaDataL(aEvent.iErrorCode));
   392         if (KErrNone != error)
   431         if (KErrNone != error)
   393         {
   432         {
       
   433             LOG_FORMAT("Get MetaData Error Occured = %d", (int)error);
   394             emit errorOccured(EIRQPlayerErrorGeneral);
   434             emit errorOccured(EIRQPlayerErrorGeneral);
   395         }
   435         }
       
   436     }
       
   437     else
       
   438     {
       
   439         LOG_FORMAT("Event Type = %d", (int)aEvent.iEventType.iUid);
       
   440         LOG_FORMAT("Event Error Code = %d", (int)aEvent.iErrorCode);
   396     }
   441     }
   397 }
   442 }
   398 
   443 
   399 // ---------------------------------------------------------------------------
   444 // ---------------------------------------------------------------------------
   400 //  IRQMMFAdapter::MvpuoFrameReady
   445 //  IRQMMFAdapter::MvpuoFrameReady
   402 //  For video stream only, never called
   447 //  For video stream only, never called
   403 // ---------------------------------------------------------------------------
   448 // ---------------------------------------------------------------------------
   404 //
   449 //
   405 void IRQMMFAdapter::MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError)
   450 void IRQMMFAdapter::MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError)
   406 {
   451 {
       
   452     LOG_METHOD;
   407     Q_UNUSED(aFrame);
   453     Q_UNUSED(aFrame);
   408     Q_UNUSED(aError);
   454     Q_UNUSED(aError);
   409 }
   455 }
   410 
   456 
   411 // ---------------------------------------------------------------------------
   457 // ---------------------------------------------------------------------------
   418 {
   464 {
   419     LOG_METHOD;
   465     LOG_METHOD;
   420     // Get buffering progress and send it to application
   466     // Get buffering progress and send it to application
   421     int percentageComplete = 0;
   467     int percentageComplete = 0;
   422 
   468 
       
   469     LOG("CVideoPlayerUtility::GetVideoLoadingProgressL()");
   423     TRAPD(error, iVideoPlayer->GetVideoLoadingProgressL(percentageComplete));
   470     TRAPD(error, iVideoPlayer->GetVideoLoadingProgressL(percentageComplete));
   424 
   471 
   425     if (KErrNone == error)
   472     if (KErrNone == error)
   426     {
   473     {
   427         // Send signal to UpdateProgress
   474         // Send signal to UpdateProgress
       
   475         LOG_FORMAT("Loading Percentage Complete = %d", percentageComplete);
   428         emit percentageBuffered(percentageComplete);
   476         emit percentageBuffered(percentageComplete);
   429     }
   477     }
   430     else
   478     else
   431     {
   479     {
       
   480         LOG_FORMAT("Error Occured = %d", (int)error);
   432         emit errorOccured(EIRQPlayerErrorGeneral);
   481         emit errorOccured(EIRQPlayerErrorGeneral);
   433     }
   482     }
   434 }
   483 }
   435 
   484 
   436 // ---------------------------------------------------------------------------
   485 // ---------------------------------------------------------------------------
   456 void IRQMMFAdapter::getRefreshedMetaDataL(TInt index)
   505 void IRQMMFAdapter::getRefreshedMetaDataL(TInt index)
   457 {
   506 {
   458     LOG_METHOD;
   507     LOG_METHOD;
   459     if (iQMetaData)
   508     if (iQMetaData)
   460     {
   509     {
       
   510         LOG("CVideoPlayerUtility::MetaDataEntryL()");
   461         CMMFMetaDataEntry* pMetadataEntry = iVideoPlayer->MetaDataEntryL(index);
   511         CMMFMetaDataEntry* pMetadataEntry = iVideoPlayer->MetaDataEntryL(index);
   462 
   512 
   463         QString entryName = QString::fromUtf16(pMetadataEntry->Name().Ptr(),
   513         QString entryName = QString::fromUtf16(pMetadataEntry->Name().Ptr(),
   464                                                pMetadataEntry->Name().Length());
   514                                                pMetadataEntry->Name().Length());
   465 
   515 
   491 //  Create player instance
   541 //  Create player instance
   492 // ---------------------------------------------------------------------------
   542 // ---------------------------------------------------------------------------
   493 //
   543 //
   494 void IRQMMFAdapter::createPlayerL()
   544 void IRQMMFAdapter::createPlayerL()
   495 {
   545 {
       
   546     LOG_METHOD;
       
   547     
       
   548     LOG("CVideoPlayerUtility::NewL()");
   496     // Create player instance
   549     // Create player instance
   497     iVideoPlayer = CVideoPlayerUtility2::NewL(*this,KAudioPriorityAudioPlaybackStreaming ,
   550     iVideoPlayer = CVideoPlayerUtility2::NewL(*this,KAudioPriorityAudioPlaybackStreaming ,
   498                                              (TMdaPriorityPreference)KAudioPrefRealOneStreaming);
   551                                              (TMdaPriorityPreference)KAudioPrefRealOneStreaming);
       
   552     LOG("CVideoPlayerUtility::RegisterForVideoLoadingNotification()");
   499     // Register loading notification
   553     // Register loading notification
   500     iVideoPlayer->RegisterForVideoLoadingNotification(*this);
   554     iVideoPlayer->RegisterForVideoLoadingNotification(*this);
   501 }
   555 }
   502 
   556 
   503 // ---------------------------------------------------------------------------
   557 // ---------------------------------------------------------------------------
   505 //  Destroy player
   559 //  Destroy player
   506 // ---------------------------------------------------------------------------
   560 // ---------------------------------------------------------------------------
   507 //
   561 //
   508 void IRQMMFAdapter::destroyPlayer()
   562 void IRQMMFAdapter::destroyPlayer()
   509 {
   563 {
       
   564     LOG_METHOD;
   510     delete iVideoPlayer;
   565     delete iVideoPlayer;
   511     iVideoPlayer = NULL;
   566     iVideoPlayer = NULL;
   512 }
   567 }
   513 
   568 
   514 // ---------------------------------------------------------------------------
   569 // ---------------------------------------------------------------------------
   516 //  Enable meta data event
   571 //  Enable meta data event
   517 // ---------------------------------------------------------------------------
   572 // ---------------------------------------------------------------------------
   518 //
   573 //
   519 void IRQMMFAdapter::setMetadataEventConfig()
   574 void IRQMMFAdapter::setMetadataEventConfig()
   520 {
   575 {
       
   576     LOG_METHOD;
   521     TMMFMessageDestinationPckg  destinationPckg(KUidInterfaceMMFControllerMetadataEventMsg);
   577     TMMFMessageDestinationPckg  destinationPckg(KUidInterfaceMMFControllerMetadataEventMsg);
   522     TPckgBuf<TBool>             metadataEventPckg(EMMFEnableMetadataEvent);
   578     TPckgBuf<TBool>             metadataEventPckg(EMMFEnableMetadataEvent);
   523 
   579 
   524     //  Enable meta data event.
   580     //  Enable meta data event.
       
   581     LOG("CVideoPlayerUtility::CustomCommandSync(EMMFSetMetadataEventConfig)");
   525     iVideoPlayer->CustomCommandSync(destinationPckg,
   582     iVideoPlayer->CustomCommandSync(destinationPckg,
   526                                     EMMFSetMetadataEventConfig,
   583                                     EMMFSetMetadataEventConfig,
   527                                     metadataEventPckg,
   584                                     metadataEventPckg,
   528                                     KNullDesC8);
   585                                     KNullDesC8);
   529 }
   586 }
   533 //  Static function for periodic call
   590 //  Static function for periodic call
   534 // ---------------------------------------------------------------------------
   591 // ---------------------------------------------------------------------------
   535 //
   592 //
   536 TInt IRQMMFAdapter::isPrepareCompleted(TAny* aPtr)
   593 TInt IRQMMFAdapter::isPrepareCompleted(TAny* aPtr)
   537 {
   594 {
       
   595     LOG_METHOD;
       
   596     LOG("Prepare timeout timer call back function");
   538     IRQMMFAdapter* self = static_cast<IRQMMFAdapter*>(aPtr);
   597     IRQMMFAdapter* self = static_cast<IRQMMFAdapter*>(aPtr);
   539     if (self)
   598     if (self)
   540     {
   599     {
   541         self->checkPrepare();
   600         self->checkPrepare();
   542     }
   601     }
   549 // ---------------------------------------------------------------------------
   608 // ---------------------------------------------------------------------------
   550 //
   609 //
   551 void IRQMMFAdapter::checkPrepare()
   610 void IRQMMFAdapter::checkPrepare()
   552 {
   611 {
   553     LOG_METHOD;
   612     LOG_METHOD;
       
   613     LOG("Stop the prepare timeout timer");
   554     if (iPrepareTimer->IsActive())
   614     if (iPrepareTimer->IsActive())
   555     {
   615     {
   556         // Cancel the previous request if pending
   616         // Cancel the previous request if pending
   557         iPrepareTimer->Cancel();
   617         iPrepareTimer->Cancel();
   558     }
   618     }
   559 
   619 
   560     if (EConnecting == iPlayState)
   620     if (EConnecting == iPlayState)
   561     {
   621     {
       
   622         LOG("Error Occured(EIRQPlayerErrorConnectingFailed)");
   562         emit errorOccured(EIRQPlayerErrorConnectingFailed);
   623         emit errorOccured(EIRQPlayerErrorConnectingFailed);
   563         stop();
   624         stop();
   564     }
   625     }
   565 }
   626 }
   566 
   627