khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.c
changeset 21 2ed61feeead6
parent 19 4a629bc82c5e
child 25 6f7ceef7b1d1
--- a/khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.c	Fri May 14 18:19:45 2010 -0500
+++ b/khronosfws/openmax_al/src/mmf_adaptation/xaplayitfadaptationmmf.c	Fri May 28 19:26:28 2010 -0500
@@ -20,6 +20,7 @@
 #include "xaplayitfadaptationmmf.h"
 #include "xaadaptationmmf.h"
 #include "cmmfbackendengine.h"
+#include "cmmfradiobackendengine.h"
 #include <glib.h>
 
 extern XAboolean cameraRealized;
@@ -47,16 +48,32 @@
     {
         case XA_PLAYSTATE_STOPPED:
         {
-            ret = mmf_playitf_stop_playback(mCtx->mmfContext);
-            break;
+        	if ( bCtx->ctxId == XARadioAdaptation )
+    		{
+    			mmf_set_player_adapt_context(cmmfradiobackendengine_init(), bCtx);	    			
+    			stop_radio(cmmfradiobackendengine_init());
+    		}
+    		else
+    		{
+    			ret = mmf_playitf_stop_playback(mCtx->mmfContext);
+          	}
+          break;
         }
         case XA_PLAYSTATE_PAUSED:
             ret = mmf_playitf_pause_playback(mCtx->mmfContext);
             break;
         case XA_PLAYSTATE_PLAYING:
         {
-            ret = mmf_playitf_resume_playback(mCtx->mmfContext);
-            break;
+   				if ( bCtx->ctxId == XARadioAdaptation )
+    			{
+    				mmf_set_player_adapt_context(cmmfradiobackendengine_init(), bCtx);	    				
+    				play_radio(cmmfradiobackendengine_init());    	
+    			} 
+    			else
+    			{ 
+          			ret = mmf_playitf_resume_playback(mCtx->mmfContext);
+        		}  
+          break;
         }
         default:
             ret = XA_RESULT_PARAMETER_INVALID;
@@ -211,3 +228,21 @@
     DEBUG_API("<-XAPlayItfAdaptMMF_SetPositionUpdatePeriod");
     return ret;
 }
+/*
+ * XAresult XAPlayItfAdapt_StateChange
+ * Handle callback from Radio utility 
+ */
+void XAPlayItfAdaptMMF_StateChange(XAAdaptationBaseCtx *bCtx, XAboolean playing)
+{
+	  if (playing)
+	  {
+   		XAAdaptEvent event = {XA_PLAYITFEVENTS, XA_PLAYEVENT_HEADMOVING,1,0}; 
+   		XAAdaptationBase_SendAdaptEvents(bCtx, &event );  	   		
+   	}
+   	else
+   	{
+   		XAAdaptEvent event = {XA_PLAYITFEVENTS, XA_PLAYEVENT_HEADSTALLED,1,0};  
+   		XAAdaptationBase_SendAdaptEvents(bCtx, &event );  	   		  		
+   	}
+
+}