khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c
changeset 48 a493a607b5bf
parent 38 9e9fc5ab059f
child 53 eabc8c503852
--- a/khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c	Wed Aug 25 11:51:49 2010 -0500
+++ b/khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c	Fri Sep 03 19:34:12 2010 -0500
@@ -16,21 +16,22 @@
 */
 
 #include <unistd.h>
+#include <openMAXAL.h>
 #include "xadebug.h"
 #include "xaadaptationmmf.h"
 #include "xaradioitfadaptation.h"
 #include "xaradioadaptctx.h"
 #include "cmmfradiobackendengine.h"
 
+
 /*
  * XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range)
  */
 XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range)
 {
     XAresult ret = XA_RESULT_SUCCESS;  
-    DEBUG_API("->XARadioItfAdapt_SetFreqRange");    
-    mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);		
-    set_freq_range(cmmfradiobackendengine_init(), range);    
+    DEBUG_API("->XARadioItfAdapt_SetFreqRange");
+    set_freq_range(cmmfradiobackendengine_init(), bCtx, range);
     DEBUG_API("<-XARadioItfAdapt_SetFreqRange");
     return ret;
 }
@@ -41,9 +42,9 @@
  */
 XAresult XARadioItfAdapt_GetFreqRange(XAuint8 * pFreqRange)
 {
-    XAresult res = XA_RESULT_SUCCESS;    
-    DEBUG_API("->XARadioItfAdapt_GetFreqRange");    
- 		res = get_freq_range(cmmfradiobackendengine_init(), pFreqRange);
+    XAresult res = XA_RESULT_SUCCESS;
+    DEBUG_API("->XARadioItfAdapt_GetFreqRange");
+    res = get_freq_range(cmmfradiobackendengine_init(), pFreqRange);
     DEBUG_API("<-XARadioItfAdapt_GetFreqRange");
     return res;
 }
@@ -56,14 +57,15 @@
                                              XAboolean * pSupported)
 {
     XAresult ret = XA_RESULT_SUCCESS;
-    DEBUG_API("->XARadioItfAdapt_IsFreqRangeSupported");    
+    DEBUG_API("->XARadioItfAdapt_IsFreqRangeSupported");
     if ((range == XA_FREQRANGE_FMEUROAMERICA) || (range == XA_FREQRANGE_FMJAPAN)) 
-        {	
- 			*pSupported = XA_BOOLEAN_TRUE;   
- 		}
- 		else
- 			*pSupported = XA_BOOLEAN_FALSE;
- 			 
+    {
+        *pSupported = XA_BOOLEAN_TRUE;
+    }
+    else
+    {
+        *pSupported = XA_BOOLEAN_FALSE;
+    }
     DEBUG_API("<-XARadioItfAdapt_IsFreqRangeSupported");
     return ret;
 }
@@ -81,8 +83,7 @@
 {
     XAresult res = XA_RESULT_SUCCESS;    
     DEBUG_API("->XARadioItfAdapt_GetFreqRangeProperties");
-    mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);		
- 		res = get_freq_range_properties(cmmfradiobackendengine_init(), range, pMinFreq, pMaxFreq); 					 		
+    res = get_freq_range_properties(cmmfradiobackendengine_init(), range, pMinFreq, pMaxFreq);	
     DEBUG_API("<-XARadioItfAdapt_GetFreqRangeProperties");
     return res;
 }
@@ -93,9 +94,8 @@
 XAresult XARadioItfAdapt_SetFrequency(XAAdaptationMMFCtx *bCtx, XAuint32 freq)
 {
     XAresult ret = XA_RESULT_SUCCESS; 
-    DEBUG_API("->XARadioItfAdapt_SetFrequency");    
-    mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);
-    set_frequency(cmmfradiobackendengine_init(), freq);    
+    DEBUG_API("->XARadioItfAdapt_SetFrequency");
+    set_frequency(cmmfradiobackendengine_init(), bCtx, freq);
     DEBUG_API("<-XARadioItfAdapt_SetFrequency");
     return ret;
 }
@@ -108,10 +108,10 @@
 XAresult XARadioItfAdapt_GetFrequency(XAuint32* pFrequency)
 {
     XAresult ret = XA_RESULT_SUCCESS;
-    DEBUG_API("->XARadioItfAdapt_GetFrequency");	
-		ret = get_frequency(cmmfradiobackendengine_init(), pFrequency);       
-   DEBUG_API("<-XARadioItfAdapt_GetFrequency");
-   return ret;
+    DEBUG_API("->XARadioItfAdapt_GetFrequency");
+    ret = get_frequency(cmmfradiobackendengine_init(), pFrequency);
+    DEBUG_API("<-XARadioItfAdapt_GetFrequency");
+    return ret;
 }
 
 
@@ -122,7 +122,7 @@
 {
     XAresult ret = XA_RESULT_SUCCESS;
     DEBUG_API("->XARadioItfAdapt_CancelSetFrequency");
-		cancel_set_frequency(cmmfradiobackendengine_init());     
+    cancel_set_frequency(cmmfradiobackendengine_init());
     DEBUG_API("<-XARadioItfAdapt_CancelSetFrequency");
     return ret;
 }
@@ -130,19 +130,23 @@
 /*
  * XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch)
  */
-XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch)
-{	
-    XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED;	
+XAresult XARadioItfAdapt_SetSquelch(XAAdaptationMMFCtx *bCtx, XAboolean squelch)
+{
+    XAresult res = XA_RESULT_SUCCESS;
     DEBUG_API("->XARadioItfAdapt_SetSquelch");
-    return ret;
+    set_squelch(cmmfradiobackendengine_init(), bCtx, squelch);
+    DEBUG_API("->XARadioItfAdapt_SetSquelch");
+    return res;
 }
 
 /*
  * XAresult XARadioItfAdapt_GetSquelch(XAboolean *squelch)
  */
-XAresult XARadioItfAdapt_GetSquelch(XAboolean* squelch)
+XAresult XARadioItfAdapt_GetSquelch(XAboolean* pSquelch)
 {
-    XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED;	
+    XAresult ret = XA_RESULT_SUCCESS;
+    DEBUG_API("->XARadioItfAdapt_GetSquelch");
+    get_squelch(cmmfradiobackendengine_init(), pSquelch);
     DEBUG_API("->XARadioItfAdapt_GetSquelch");
     return ret;
 }
@@ -152,10 +156,9 @@
  */
 XAresult XARadioItfAdapt_SetStereoMode(XAAdaptationMMFCtx *bCtx, XAuint32 mode)
 {
-		XAresult res = XA_RESULT_SUCCESS;   	
+    XAresult res = XA_RESULT_SUCCESS;
     DEBUG_API("->XARadioItfAdapt_SetStereoMode");
-    mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);
-    res = set_stereo_mode(cmmfradiobackendengine_init(), mode);    
+    res = set_stereo_mode(cmmfradiobackendengine_init(), bCtx, mode);
     DEBUG_API("<-XARadioItfAdapt_SetStereoMode");
     return res;
 }
@@ -165,9 +168,9 @@
  */
 XAresult XARadioItfAdapt_GetSignalStrength(XAuint32 * pStrength)
 {
- 		XAresult ret = XA_RESULT_SUCCESS;   	
-    DEBUG_API("->XARadioItfAdapt_GetSignalStrength");  		
-		ret = get_signal_strength(cmmfradiobackendengine_init(), pStrength);    
+    XAresult ret = XA_RESULT_SUCCESS;
+    DEBUG_API("->XARadioItfAdapt_GetSignalStrength");
+    ret = get_signal_strength(cmmfradiobackendengine_init(), pStrength);
     DEBUG_API("<-XARadioItfAdapt_GetSignalStrength");
     return ret;
 }
@@ -177,11 +180,9 @@
  */
 XAresult XARadioItfAdapt_Seek(XAAdaptationMMFCtx *bCtx, XAboolean upwards)
 {
-    XAresult ret = XA_RESULT_SUCCESS;          
- 		
-   	DEBUG_API("->XARadioItfAdapt_Seek");	    
-    mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);     	
-		station_seek(cmmfradiobackendengine_init(), upwards);   				
+    XAresult ret = XA_RESULT_SUCCESS;
+    DEBUG_API("->XARadioItfAdapt_Seek");
+    station_seek(cmmfradiobackendengine_init(), bCtx, upwards);
     DEBUG_API("<-XARadioItfAdapt_Seek");
     return ret;
 }
@@ -192,8 +193,7 @@
 void XARadioItfAdapt_StopSeeking(XAAdaptationMMFCtx *bCtx)
 {
     DEBUG_API("->XARadioItfAdapt_StopSeeking");	
-    mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);	
-		cancel_station_seek(cmmfradiobackendengine_init());   
+    cancel_station_seek(cmmfradiobackendengine_init());
     DEBUG_API("<-XARadioItfAdapt_StopSeeking");
 }
 
@@ -202,9 +202,9 @@
  */
 XAresult XARadioItfAdapt_GetStereoMode(XAuint32 * pMode)
 {
- 		XAresult ret = XA_RESULT_SUCCESS;   	
-    DEBUG_API("->XARadioItfAdapt_GetStereoMode");  		
-		ret = get_stereo_mode(cmmfradiobackendengine_init(), pMode);    
+    XAresult ret = XA_RESULT_SUCCESS;
+    DEBUG_API("->XARadioItfAdapt_GetStereoMode");
+    ret = get_stereo_mode(cmmfradiobackendengine_init(), pMode);
     DEBUG_API("<-XARadioItfAdapt_GetStereoMode");
     return ret;
 }
@@ -215,100 +215,138 @@
 void XARadioItfAdapt_Free()
 {
     DEBUG_API("->XARadioItfAdapt_Free");
-    
 }
 
 void XARadioItfAdapt_SeekComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency)
 {
-   	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SEEK_COMPLETE,1,0};        	
-		if (ctx)
+    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SEEK_COMPLETE,1,0};
+    if (ctx)
     {
-    	if (aError)
-    	{
-    		event.data = &aError;
-    	}
-    	else
-    	{
-   			event.data = &aFrequency;
-   		}
-   		
-     	XAAdaptationBase_SendAdaptEvents(ctx, &event );
-   	}   
+        if (aError)
+        {
+            event.data = &aError;
+        }
+        else
+        {
+            event.data = &aFrequency;
+        }
+        XAAdaptationBase_SendAdaptEvents(ctx, &event );
+    }
 }
 
 void XARadioItfAdapt_FrequencyChange(XAAdaptationBaseCtx *ctx, TInt aFrequency)
 {
-		// Currently: Bug in FM Radio Utility: SetFrequency calls this callback as well as SetFrequencyComplete
-		// (So client will end up getting 2 events on a SetFrequency call)
-   	XAuint32 freq = aFrequency;    		
-    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0};        	
-		if (ctx)
+    // Currently: Bug in FM Radio Utility: SetFrequency calls this callback as well as SetFrequencyComplete
+    // (So client will end up getting 2 events on a SetFrequency call)
+    XAuint32 freq = aFrequency;    		
+    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0};
+    if (ctx)
     {
-    	event.data = &freq;
-     	XAAdaptationBase_SendAdaptEvents(ctx, &event );
-   	}  
+        event.data = &freq;
+        XAAdaptationBase_SendAdaptEvents(ctx, &event );
+    }
 }
 
 void XARadioItfAdapt_FrequencyRangeChange(XAAdaptationBaseCtx* ctx, TInt aFreqRangeChange)
 {
-		// Currently: Bug in FM Radio Utility: SetFrequencyRange triggers this callback as well as SetFrequencyRangeComplete
-		
+    // Currently: Bug in FM Radio Utility: SetFrequencyRange triggers this callback as well as SetFrequencyRangeComplete
    /*	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0};        	
 		if (baseCtx)
     {
     	event.data = &aFreqRangeChange;
      	XAAdaptationBase_SendAdaptEvents(&baseCtx->baseObj, &event );
    	} 
-   	*/  
+   	*/
 }
 
 void XARadioItfAdapt_SetFrequencyComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency)
 {
-		// Currently: Qt API has no event for SetFrequencyComplete, so must use this one:
-   	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0};   
-   	XAuint32 freq = aFrequency;     	
-		if (ctx)
+    // Currently: Qt API has no event for SetFrequencyComplete, so must use this one:
+    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0};   
+    XAuint32 freq = aFrequency;
+    if (ctx)
     {
-    	if (!aError)
-    	{
-    		event.data = &freq;
-    	}
-    	else
-    	{
-    		event.data = &aError;
-    	}
-     	XAAdaptationBase_SendAdaptEvents(ctx, &event );
-   	}   
+        if (!aError)
+        {
+            event.data = &freq;
+        }
+        else
+        {
+            event.data = &aError;
+        }
+        XAAdaptationBase_SendAdaptEvents(ctx, &event );
+    }
 }
 
 void XARadioItfAdapt_SetFrequencyRangeComplete(XAAdaptationBaseCtx *ctx, TInt aError)
 {
-   	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0};        	
-		if (ctx)
+    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0};
+    if (ctx)
     {
-    	event.data = &aError;
-     	XAAdaptationBase_SendAdaptEvents(ctx, &event );
-   	}   
+        event.data = &aError;
+        XAAdaptationBase_SendAdaptEvents(ctx, &event );
+    }
 }
 
 void XARadioItfAdapt_StereoStatusChange(XAAdaptationBaseCtx *ctx, XAboolean aStereoStatus)
 {
-   	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_STEREO_STATUS_CHANGED,1,0}; 
-  	DEBUG_INFO_A1("XARadioItfAdapt_StereoStatusChange to: %s", aStereoStatus);	   	       	
-		if (ctx)
+    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_STEREO_STATUS_CHANGED,1,0}; 
+    DEBUG_INFO_A1("XARadioItfAdapt_StereoStatusChange to: %s", aStereoStatus);
+    if (ctx)
     {
-    	event.data = &aStereoStatus;
-     	XAAdaptationBase_SendAdaptEvents(ctx, &event );
-   	}   
+        event.data = &aStereoStatus;
+        XAAdaptationBase_SendAdaptEvents(ctx, &event );
+    }
 }
 
 void XARadioItfAdapt_SignalStrengthChange(XAAdaptationBaseCtx *ctx, TInt aSignalStrength)
 {
-   	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED,1,0}; 
-  	DEBUG_INFO_A1("XARadioItfAdapt_SignalStrengthChange to: %s", aSignalStrength);	   	       	
-		if (ctx)
+    XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED,1,0};
+    DEBUG_INFO_A1("XARadioItfAdapt_SignalStrengthChange to: %s", aSignalStrength);
+    if (ctx)
+    {
+        event.data = &aSignalStrength;
+        XAAdaptationBase_SendAdaptEvents(ctx, &event );
+    }
+}
+
+void XARadioItfAdapt_StateChange(XAAdaptationBaseCtx *ctx, XAboolean aState)
+{
+    if (aState) // playing
+    {
+        XAAdaptEvent event = {XA_PLAYITFEVENTS, XA_PLAYEVENT_HEADMOVING, 1, 0};
+        XAAdaptationBase_SendAdaptEvents(ctx, &event);
+    }
+    else  // idle
+    {
+        XAAdaptEvent event = {XA_PLAYITFEVENTS, XA_PLAYEVENT_HEADSTALLED, 1, 0};
+        XAAdaptationBase_SendAdaptEvents(ctx, &event);
+    }
+}
+
+void XARadioItfAdapt_VolumeChange(XAAdaptationBaseCtx *ctx, TInt aVolume)
     {
-    	event.data = &aSignalStrength;
-     	XAAdaptationBase_SendAdaptEvents(ctx, &event );
-   	}   
-}
+    XAAdaptEvent event =
+        {
+        XA_NOKIALINEARVOLITFEVENTS, XA_ADAPT_VOLUME_VOLUME_CHANGED, 1, 0
+        };
+    if (ctx)
+        {
+        event.data = &aVolume;
+        XAAdaptationBase_SendAdaptEvents(ctx, &event);
+        }
+    }
+    
+
+void XARadioItfAdapt_MuteChange(XAAdaptationBaseCtx* ctx, XAboolean aMute)
+    {
+    XAAdaptEvent event =
+        {
+        XA_NOKIAEXTVOLITFEVENTS, XA_ADAPT_VOLUME_MUTE_CHANGED, 1, 0
+        };
+    if (ctx)
+        {
+        event.data = &aMute;
+        XAAdaptationBase_SendAdaptEvents(ctx, &event);
+        }
+    }