khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c
changeset 21 2ed61feeead6
parent 19 4a629bc82c5e
child 25 6f7ceef7b1d1
--- a/khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c	Fri May 14 18:19:45 2010 -0500
+++ b/khronosfws/openmax_al/src/mediaplayer/xamediaplayer.c	Fri May 28 19:26:28 2010 -0500
@@ -91,7 +91,9 @@
     XAObjectItfImpl* pBaseObj = NULL;
     const char *uri = NULL;
     XAresult ret = XA_RESULT_SUCCESS;
-    
+   	XADataLocator_IODevice* tmpIODevice;
+  	XADataLocator_IODevice  locatorIODevice;   	   
+
     DEBUG_API("->XAMediaPlayerImpl_CreateMediaPlayer");
 
     XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaPlayer);
@@ -219,19 +221,28 @@
     pPlayerImpl->imageVideoSnk = pImageVideoSnk;
     pPlayerImpl->vibra = pVibra;
     pPlayerImpl->LEDArray = pLEDArray;
-
-    /* Determine framework type that can handle recording */
-    fwType = (FWMgrFwType)FWMgrMOUnknown;
-    /**/
-    if (pDataSrc->pLocator)
-    {
-        XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSrc->pLocator;
-        if (dataLoc->locatorType == XA_DATALOCATOR_URI)
-            {
-            uri = (char*)dataLoc->URI;
-            }
-    }
-    fwType = XAFrameworkMgr_GetFramework(
+    
+    // Handle possible radio:      
+   	tmpIODevice = (XADataLocator_IODevice*)(pPlayerImpl->dataSrc->pLocator);   
+	locatorIODevice = *tmpIODevice; 
+ 	if (locatorIODevice.deviceType == XA_IODEVICE_RADIO)
+   	{		   
+		fwType = (FWMgrFwType)FWMgrFWMMF;
+	}
+	else
+		{
+    	/* Determine framework type that can handle recording */
+     	fwType = (FWMgrFwType)FWMgrMOUnknown;  
+    	/**/
+    	if (pDataSrc->pLocator)
+    	{
+      	  XADataLocator_URI* dataLoc = (XADataLocator_URI*)pDataSrc->pLocator;
+        	if (dataLoc->locatorType == XA_DATALOCATOR_URI)
+        	    {
+            	uri = (char*)dataLoc->URI;
+            	}
+    	}
+    	fwType = XAFrameworkMgr_GetFramework(
                         mapper,
                         uri,
                         FWMgrMOPlayer);
@@ -244,6 +255,7 @@
         DEBUG_API("<-XAMediaPlayerImpl_CreateMediaPlayer");
         return ret;
         }
+   } // end else
     
     if(fwType == FWMgrFWMMF)
     {    
@@ -412,6 +424,7 @@
                 case MP_EQUALIZERITF:
                     pItf = XAEqualizerItfImpl_Create(pImpl->curAdaptCtx);
                     break;
+#ifdef OMAX_CAMERABIN
                 case MP_IMAGECONTROLSITF:
                     pItf = XAImageControlsItfImpl_Create(pImpl->curAdaptCtx);
                     break;
@@ -421,6 +434,7 @@
                 case MP_VIDEOPOSTPROCESSINGITF:
                     pItf = XAVideoPostProcessingItfImpl_Create(pImpl->curAdaptCtx);
                     break;
+#endif
                case MP_NOKIAVOLUMEEXT:
                     pItf = XANokiaVolumeExtItfImpl_Create(pImpl->curAdaptCtx);
                     break;
@@ -535,6 +549,7 @@
                 case MP_EQUALIZERITF:
                     XAEqualizerItfImpl_Free(pItf);
                     break;
+#ifdef OMAX_CAMERABIN
                 case MP_IMAGECONTROLSITF:
                     XAImageControlsItfImpl_Free(pItf);
                     break;
@@ -544,6 +559,7 @@
                 case MP_VIDEOPOSTPROCESSINGITF:
                     XAVideoPostProcessingItfImpl_Free(pItf);
                     break;
+#endif
                 case MP_NOKIAVOLUMEEXT:
                     XANokiaVolumeExtItfImpl_Free(pItf);
                     break;
@@ -605,10 +621,11 @@
             case MP_EQUALIZERITF:
                 mapEntry->pItf = XAEqualizerItfImpl_Create( pImpl->curAdaptCtx );
                 break;
+#ifdef OMAX_CAMERABIN
             case MP_IMAGEEFFECTSITF:
                 mapEntry->pItf = XAImageEffectsItfImpl_Create( pImpl->curAdaptCtx );
                 break;
-
+#endif
             default:
                 DEBUG_ERR("XAMediaPlayerImpl_DoAddItf unknown id");
                 ret = XA_RESULT_FEATURE_UNSUPPORTED;
@@ -667,9 +684,11 @@
             case MP_EQUALIZERITF:
                 XAEqualizerItfImpl_Free(mapEntry->pItf);
                 break;
+#ifdef OMAX_CAMERABIN				
             case MP_IMAGEEFFECTSITF:
                 XAImageEffectsItfImpl_Free(mapEntry->pItf);
                 break;
+#endif
             default:
                 DEBUG_ERR("XAMediaPlayerImpl_DoRemoveItf unknown id");
                 ret = XA_RESULT_FEATURE_UNSUPPORTED;