89 XAMediaPlayerImpl* pPlayerImpl = NULL; |
89 XAMediaPlayerImpl* pPlayerImpl = NULL; |
90 FWMgrFwType fwType; |
90 FWMgrFwType fwType; |
91 XAObjectItfImpl* pBaseObj = NULL; |
91 XAObjectItfImpl* pBaseObj = NULL; |
92 const char *uri = NULL; |
92 const char *uri = NULL; |
93 XAresult ret = XA_RESULT_SUCCESS; |
93 XAresult ret = XA_RESULT_SUCCESS; |
94 |
94 XADataLocator_IODevice* tmpIODevice; |
|
95 XADataLocator_IODevice locatorIODevice; |
|
96 |
95 DEBUG_API("->XAMediaPlayerImpl_CreateMediaPlayer"); |
97 DEBUG_API("->XAMediaPlayerImpl_CreateMediaPlayer"); |
96 |
98 |
97 XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaPlayer); |
99 XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaPlayer); |
98 |
100 |
99 if(!pPlayer || !pDataSrc) |
101 if(!pPlayer || !pDataSrc) |
217 pPlayerImpl->bankSrc = pBankSrc; |
219 pPlayerImpl->bankSrc = pBankSrc; |
218 pPlayerImpl->audioSnk = pAudioSnk; |
220 pPlayerImpl->audioSnk = pAudioSnk; |
219 pPlayerImpl->imageVideoSnk = pImageVideoSnk; |
221 pPlayerImpl->imageVideoSnk = pImageVideoSnk; |
220 pPlayerImpl->vibra = pVibra; |
222 pPlayerImpl->vibra = pVibra; |
221 pPlayerImpl->LEDArray = pLEDArray; |
223 pPlayerImpl->LEDArray = pLEDArray; |
222 |
224 |
223 /* Determine framework type that can handle recording */ |
225 // Handle possible radio: |
224 fwType = (FWMgrFwType)FWMgrMOUnknown; |
226 tmpIODevice = (XADataLocator_IODevice*)(pPlayerImpl->dataSrc->pLocator); |
225 /**/ |
227 locatorIODevice = *tmpIODevice; |
226 if (pDataSrc->pLocator) |
228 if (locatorIODevice.deviceType == XA_IODEVICE_RADIO) |
227 { |
229 { |
228 XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSrc->pLocator; |
230 fwType = (FWMgrFwType)FWMgrFWMMF; |
229 if (dataLoc->locatorType == XA_DATALOCATOR_URI) |
231 } |
230 { |
232 else |
231 uri = (char*)dataLoc->URI; |
233 { |
232 } |
234 /* Determine framework type that can handle recording */ |
233 } |
235 fwType = (FWMgrFwType)FWMgrMOUnknown; |
234 fwType = XAFrameworkMgr_GetFramework( |
236 /**/ |
|
237 if (pDataSrc->pLocator) |
|
238 { |
|
239 XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSrc->pLocator; |
|
240 if (dataLoc->locatorType == XA_DATALOCATOR_URI) |
|
241 { |
|
242 uri = (char*)dataLoc->URI; |
|
243 } |
|
244 } |
|
245 fwType = XAFrameworkMgr_GetFramework( |
235 mapper, |
246 mapper, |
236 uri, |
247 uri, |
237 FWMgrMOPlayer); |
248 FWMgrMOPlayer); |
238 |
249 |
239 if (fwType == FWMgrMOUnknown) |
250 if (fwType == FWMgrMOUnknown) |
242 XAObjectItfImpl_Destroy((XAObjectItf)&(pBaseObj)); |
253 XAObjectItfImpl_Destroy((XAObjectItf)&(pBaseObj)); |
243 XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
254 XA_IMPL_THREAD_SAFETY_EXIT( XATSMediaPlayer ); |
244 DEBUG_API("<-XAMediaPlayerImpl_CreateMediaPlayer"); |
255 DEBUG_API("<-XAMediaPlayerImpl_CreateMediaPlayer"); |
245 return ret; |
256 return ret; |
246 } |
257 } |
|
258 } // end else |
247 |
259 |
248 if(fwType == FWMgrFWMMF) |
260 if(fwType == FWMgrFWMMF) |
249 { |
261 { |
250 pPlayerImpl->adaptationCtxMMF = XAMediaPlayerAdaptMMF_Create(pPlayerImpl->dataSrc, |
262 pPlayerImpl->adaptationCtxMMF = XAMediaPlayerAdaptMMF_Create(pPlayerImpl->dataSrc, |
251 pPlayerImpl->bankSrc, |
263 pPlayerImpl->bankSrc, |
410 pItf = XADynamicSourceItfImpl_Create(pImpl->curAdaptCtx); |
422 pItf = XADynamicSourceItfImpl_Create(pImpl->curAdaptCtx); |
411 break; |
423 break; |
412 case MP_EQUALIZERITF: |
424 case MP_EQUALIZERITF: |
413 pItf = XAEqualizerItfImpl_Create(pImpl->curAdaptCtx); |
425 pItf = XAEqualizerItfImpl_Create(pImpl->curAdaptCtx); |
414 break; |
426 break; |
|
427 #ifdef OMAX_CAMERABIN |
415 case MP_IMAGECONTROLSITF: |
428 case MP_IMAGECONTROLSITF: |
416 pItf = XAImageControlsItfImpl_Create(pImpl->curAdaptCtx); |
429 pItf = XAImageControlsItfImpl_Create(pImpl->curAdaptCtx); |
417 break; |
430 break; |
418 case MP_IMAGEEFFECTSITF: |
431 case MP_IMAGEEFFECTSITF: |
419 pItf = XAImageEffectsItfImpl_Create(pImpl->curAdaptCtx); |
432 pItf = XAImageEffectsItfImpl_Create(pImpl->curAdaptCtx); |
420 break; |
433 break; |
421 case MP_VIDEOPOSTPROCESSINGITF: |
434 case MP_VIDEOPOSTPROCESSINGITF: |
422 pItf = XAVideoPostProcessingItfImpl_Create(pImpl->curAdaptCtx); |
435 pItf = XAVideoPostProcessingItfImpl_Create(pImpl->curAdaptCtx); |
423 break; |
436 break; |
|
437 #endif |
424 case MP_NOKIAVOLUMEEXT: |
438 case MP_NOKIAVOLUMEEXT: |
425 pItf = XANokiaVolumeExtItfImpl_Create(pImpl->curAdaptCtx); |
439 pItf = XANokiaVolumeExtItfImpl_Create(pImpl->curAdaptCtx); |
426 break; |
440 break; |
427 case MP_NOKIALINEARVOLUME: |
441 case MP_NOKIALINEARVOLUME: |
428 pItf = XANokiaLinearVolumeItfImpl_Create(pImpl->curAdaptCtx); |
442 pItf = XANokiaLinearVolumeItfImpl_Create(pImpl->curAdaptCtx); |
533 XADynamicSourceItfImpl_Free(pItf); |
547 XADynamicSourceItfImpl_Free(pItf); |
534 break; |
548 break; |
535 case MP_EQUALIZERITF: |
549 case MP_EQUALIZERITF: |
536 XAEqualizerItfImpl_Free(pItf); |
550 XAEqualizerItfImpl_Free(pItf); |
537 break; |
551 break; |
|
552 #ifdef OMAX_CAMERABIN |
538 case MP_IMAGECONTROLSITF: |
553 case MP_IMAGECONTROLSITF: |
539 XAImageControlsItfImpl_Free(pItf); |
554 XAImageControlsItfImpl_Free(pItf); |
540 break; |
555 break; |
541 case MP_IMAGEEFFECTSITF: |
556 case MP_IMAGEEFFECTSITF: |
542 XAImageEffectsItfImpl_Free(pItf); |
557 XAImageEffectsItfImpl_Free(pItf); |
543 break; |
558 break; |
544 case MP_VIDEOPOSTPROCESSINGITF: |
559 case MP_VIDEOPOSTPROCESSINGITF: |
545 XAVideoPostProcessingItfImpl_Free(pItf); |
560 XAVideoPostProcessingItfImpl_Free(pItf); |
546 break; |
561 break; |
|
562 #endif |
547 case MP_NOKIAVOLUMEEXT: |
563 case MP_NOKIAVOLUMEEXT: |
548 XANokiaVolumeExtItfImpl_Free(pItf); |
564 XANokiaVolumeExtItfImpl_Free(pItf); |
549 break; |
565 break; |
550 case MP_NOKIALINEARVOLUME: |
566 case MP_NOKIALINEARVOLUME: |
551 XANokiaLinearVolumeItfImpl_Free(pItf); |
567 XANokiaLinearVolumeItfImpl_Free(pItf); |
603 mapEntry->pItf = XAPlaybackRateItfImpl_Create(pImpl); |
619 mapEntry->pItf = XAPlaybackRateItfImpl_Create(pImpl); |
604 break; |
620 break; |
605 case MP_EQUALIZERITF: |
621 case MP_EQUALIZERITF: |
606 mapEntry->pItf = XAEqualizerItfImpl_Create( pImpl->curAdaptCtx ); |
622 mapEntry->pItf = XAEqualizerItfImpl_Create( pImpl->curAdaptCtx ); |
607 break; |
623 break; |
|
624 #ifdef OMAX_CAMERABIN |
608 case MP_IMAGEEFFECTSITF: |
625 case MP_IMAGEEFFECTSITF: |
609 mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->curAdaptCtx ); |
626 mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->curAdaptCtx ); |
610 break; |
627 break; |
611 |
628 #endif |
612 default: |
629 default: |
613 DEBUG_ERR("XAMediaPlayerImpl_DoAddItf unknown id"); |
630 DEBUG_ERR("XAMediaPlayerImpl_DoAddItf unknown id"); |
614 ret = XA_RESULT_FEATURE_UNSUPPORTED; |
631 ret = XA_RESULT_FEATURE_UNSUPPORTED; |
615 break; |
632 break; |
616 } |
633 } |
665 XAPlaybackRateItfImpl_Free(mapEntry->pItf); |
682 XAPlaybackRateItfImpl_Free(mapEntry->pItf); |
666 break; |
683 break; |
667 case MP_EQUALIZERITF: |
684 case MP_EQUALIZERITF: |
668 XAEqualizerItfImpl_Free(mapEntry->pItf); |
685 XAEqualizerItfImpl_Free(mapEntry->pItf); |
669 break; |
686 break; |
|
687 #ifdef OMAX_CAMERABIN |
670 case MP_IMAGEEFFECTSITF: |
688 case MP_IMAGEEFFECTSITF: |
671 XAImageEffectsItfImpl_Free(mapEntry->pItf); |
689 XAImageEffectsItfImpl_Free(mapEntry->pItf); |
672 break; |
690 break; |
|
691 #endif |
673 default: |
692 default: |
674 DEBUG_ERR("XAMediaPlayerImpl_DoRemoveItf unknown id"); |
693 DEBUG_ERR("XAMediaPlayerImpl_DoRemoveItf unknown id"); |
675 ret = XA_RESULT_FEATURE_UNSUPPORTED; |
694 ret = XA_RESULT_FEATURE_UNSUPPORTED; |
676 break; |
695 break; |
677 } |
696 } |