khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c
changeset 21 2ed61feeead6
parent 19 4a629bc82c5e
child 25 6f7ceef7b1d1
equal deleted inserted replaced
20:b67dd1fc57c5 21:2ed61feeead6
    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         }