khronosfws/openmax_al/src/radio/xaradioitf.c
changeset 28 ebf79c79991a
parent 25 6f7ceef7b1d1
child 33 5e8b14bae8c3
equal deleted inserted replaced
25:6f7ceef7b1d1 28:ebf79c79991a
    22 #include <xaradioitfext.h>
    22 #include <xaradioitfext.h>
    23 #include "xaradioitf.h"
    23 #include "xaradioitf.h"
    24 #include "xaradioitfadaptation.h"
    24 #include "xaradioitfadaptation.h"
    25 #include "xathreadsafety.h"
    25 #include "xathreadsafety.h"
    26 
    26 
    27 #define FREQINTERVAL 20
    27 #define FREQINTERVAL 200000
    28 
    28 
    29 /**
    29 /**
    30  * XARadioItfImpl* GetImpl(XARadioItf self)
    30  * XARadioItfImpl* GetImpl(XARadioItf self)
    31  * Description: Validated interface pointer and cast it to implementations pointer.
    31  * Description: Validated interface pointer and cast it to implementations pointer.
    32  **/
    32  **/
    52  * Description: Sets the frequency range. Asynchronous – xaRadioCallback() callback with
    52  * Description: Sets the frequency range. Asynchronous – xaRadioCallback() callback with
    53  *              XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED event is used for notifying of the result.
    53  *              XA_RADIO_EVENT_FREQUENCY_RANGE_CHANGED event is used for notifying of the result.
    54  **/
    54  **/
    55 XAresult XARadioItfImpl_SetFreqRange(XARadioItf self, XAuint8 range)
    55 XAresult XARadioItfImpl_SetFreqRange(XARadioItf self, XAuint8 range)
    56 {
    56 {
    57     XAresult ret = XA_RESULT_SUCCESS;
    57     XAresult ret = XA_RESULT_PARAMETER_INVALID;
    58     XAboolean isSupported = XA_BOOLEAN_FALSE;
    58     XAboolean isSupported = XA_BOOLEAN_FALSE;
    59     XARadioItfImpl* impl = GetImpl(self);
    59     XARadioItfImpl* impl = GetImpl(self);
    60 
    60 
    61     DEBUG_API("->XARadioItfImpl_SetFreqRange");
    61     DEBUG_API("->XARadioItfImpl_SetFreqRange");
    62     XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
    62     XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
    66         XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
    66         XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
    67         /* invalid parameter */
    67         /* invalid parameter */
    68         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
    68         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
    69         DEBUG_API("<-XARadioItfImpl_SetFreqRange");
    69         DEBUG_API("<-XARadioItfImpl_SetFreqRange");
    70 
    70 
    71         return XA_RESULT_PARAMETER_INVALID;
    71         return ret;
    72     }
    72     }
    73 
    73 
    74     ret = XARadioItfAdapt_IsFreqRangeSupported(range, &isSupported);
    74     ret = XARadioItfAdapt_IsFreqRangeSupported(range, &isSupported);
    75 
    75 
    76     if ( ret == XA_RESULT_SUCCESS && isSupported == XA_BOOLEAN_TRUE )
    76     if ( ret == XA_RESULT_SUCCESS && isSupported == XA_BOOLEAN_TRUE )
    77     {
    77     {
    78         ret = XARadioItfAdapt_SetFreqRange((XAAdaptationMMFCtx*)impl->adapCtx, range);
    78         ret = XARadioItfAdapt_SetFreqRange((XAAdaptationMMFCtx*)impl->adapCtx, range);
       
    79     }
       
    80     else if (!isSupported)
       
    81     {
       
    82     	ret = XA_RESULT_PARAMETER_INVALID;
    79     }
    83     }
    80 
    84 
    81     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
    85     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
    82     DEBUG_API("<-XARadioItfImpl_SetFreqRange");
    86     DEBUG_API("<-XARadioItfImpl_SetFreqRange");
    83     return ret;
    87     return ret;
   202  *              GetFreqRangeProperties() method.
   206  *              GetFreqRangeProperties() method.
   203  **/
   207  **/
   204 XAresult XARadioItfImpl_SetFrequency(XARadioItf self, XAuint32 freq)
   208 XAresult XARadioItfImpl_SetFrequency(XARadioItf self, XAuint32 freq)
   205 {
   209 {
   206     XAresult ret = XA_RESULT_SUCCESS;
   210     XAresult ret = XA_RESULT_SUCCESS;
       
   211         
   207     XARadioItfImpl* impl = GetImpl(self);
   212     XARadioItfImpl* impl = GetImpl(self);
   208     DEBUG_API("->XARadioItfImpl_SetFrequency");
   213     DEBUG_API("->XARadioItfImpl_SetFrequency");
   209     XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
   214     XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
   210 
   215 
   211     if(!impl)
   216     if(!impl)
   213         XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   218         XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   214         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   219         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   215         DEBUG_API("<-XARadioItfImpl_SetFrequency");
   220         DEBUG_API("<-XARadioItfImpl_SetFrequency");
   216         return XA_RESULT_PARAMETER_INVALID;
   221         return XA_RESULT_PARAMETER_INVALID;
   217     }
   222     }
       
   223     
       
   224  
   218 
   225 
   219     ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
   226     ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
   220 
   227 
   221     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   228     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   222     DEBUG_API("<-XARadioItfImpl_SetFrequency");
   229     DEBUG_API("<-XARadioItfImpl_SetFrequency");
   605         self->itf.RegisterRadioCallback = XARadioItfImpl_RegisterRadioCallback;
   612         self->itf.RegisterRadioCallback = XARadioItfImpl_RegisterRadioCallback;
   606 
   613 
   607         /* init variables */
   614         /* init variables */
   608 
   615 
   609         self->squelch = XA_BOOLEAN_FALSE;
   616         self->squelch = XA_BOOLEAN_FALSE;
   610         self->stereoMode = RADIO_DEFAULT_STEREO_MODE;
   617         self->stereoMode = XA_STEREOMODE_STEREO;
   611         self->callback = NULL;
   618         self->callback = NULL;
   612         self->context = NULL;
   619         self->context = NULL;
   613         self->cbPtrToSelf = NULL;
   620         self->cbPtrToSelf = NULL;
   614         self->adapCtx = adapCtx;
   621         self->adapCtx = adapCtx;
   615 
   622