khronosfws/openmax_al/src/radio/xaradioitf.c
changeset 42 1fa3fb47b1e3
parent 32 94fc26b6e006
child 47 c2e43643db4c
--- a/khronosfws/openmax_al/src/radio/xaradioitf.c	Tue Jul 06 14:50:35 2010 +0300
+++ b/khronosfws/openmax_al/src/radio/xaradioitf.c	Wed Aug 18 10:17:22 2010 +0300
@@ -19,7 +19,6 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <string.h>
-#include <xaradioitfext.h>
 #include "xaradioitf.h"
 #include "xaradioitfadaptation.h"
 #include "xathreadsafety.h"
@@ -96,7 +95,6 @@
     XAresult ret = XA_RESULT_SUCCESS;
     XARadioItfImpl* impl = GetImpl(self);
     DEBUG_API("->XARadioItfImpl_GetFreqRange");
-    XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
 
     if(!impl || !pRange)
     {
@@ -109,7 +107,6 @@
 
     ret = XARadioItfAdapt_GetFreqRange(pRange);
 
-    XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
     DEBUG_API("<-XARadioItfImpl_GetFreqRange");
     return ret;
 }
@@ -148,7 +145,7 @@
 
 /**
  * XAresult XARadioItfImpl_GetFreqRangeProperties(XARadioItf self,
- *                                                XAuint8 range,
+ *                                                XAuint8  range,
  *                                                XAuint32 * pMinFreq,
  *                                                XAuint32 * pMaxFreq,
  *                                                XAuint32 * pFreqInterval)
@@ -156,7 +153,7 @@
  *              modulation of the given frequency range.
  **/
 XAresult XARadioItfImpl_GetFreqRangeProperties(XARadioItf self,
-                                               XAuint8 range,
+                                               XAuint8  range,
                                                XAuint32 * pMinFreq,
                                                XAuint32 * pMaxFreq,
                                                XAuint32 * pFreqInterval)
@@ -168,21 +165,9 @@
    *pFreqInterval = FREQINTERVAL;   
 		    
     DEBUG_API("->XARadioItfImpl_GetFreqRangeProperties");
-    XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
 
     if(!impl || !pMinFreq || !pMaxFreq || !pFreqInterval)
     {
-        XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
-        /* invalid parameter */
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
-        DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
-        return XA_RESULT_PARAMETER_INVALID;
-    }
-    ret = XARadioItfAdapt_IsFreqRangeSupported( range, &isSupported );
-
-    if (isSupported != XA_BOOLEAN_TRUE || ret != XA_RESULT_SUCCESS)
-    {
-        XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
         /* invalid parameter */
         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
         DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
@@ -192,7 +177,6 @@
     ret = XARadioItfAdapt_GetFreqRangeProperties( (XAAdaptationMMFCtx*)impl->adapCtx,
             range, pMinFreq, pMaxFreq );
 
-    XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
     DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
     return ret;
 }
@@ -208,6 +192,10 @@
 XAresult XARadioItfImpl_SetFrequency(XARadioItf self, XAuint32 freq)
 {
     XAresult ret = XA_RESULT_SUCCESS;
+    XAuint8 range = 1; // Default to EuroAmerica
+    XAuint32 minFreq;
+    XAuint32 maxFreq;
+   	XAuint32 freqInterval;
         
     XARadioItfImpl* impl = GetImpl(self);
     DEBUG_API("->XARadioItfImpl_SetFrequency");
@@ -221,9 +209,23 @@
         return XA_RESULT_PARAMETER_INVALID;
     }
     
- 
-
-    ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
+    // Check for valid entries: 
+ 		ret = XARadioItfImpl_GetFreqRangeProperties(self, range, &minFreq, &maxFreq, &freqInterval);   
+    if (ret != XA_RESULT_SUCCESS)
+    {
+    	XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
+    	DEBUG_API("<-XARadioItfImpl_SetFrequency");    	
+    	return ret;
+    }		
+    
+    if ( (freq < minFreq) || (freq > maxFreq) )
+    {
+    	XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
+    	DEBUG_API("<-XARadioItfImpl_SetFrequency");    	
+    	return XA_RESULT_PARAMETER_INVALID;
+    }	  
+           
+   	ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
 
     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
     DEBUG_API("<-XARadioItfImpl_SetFrequency");