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 // --------------------------------------------------------------------------- |
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 } |
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 |
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 } |
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 // --------------------------------------------------------------------------- |
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 // --------------------------------------------------------------------------- |
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 |
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 // --------------------------------------------------------------------------- |
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 // --------------------------------------------------------------------------- |
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 } |
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 |