khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c
changeset 31 8dfd592727cb
child 32 94fc26b6e006
equal deleted inserted replaced
22:128eb6a32b84 31:8dfd592727cb
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <unistd.h>
       
    19 #include "xadebug.h"
       
    20 #include "xaadaptationmmf.h"
       
    21 #include "xaradioitfadaptation.h"
       
    22 #include "xaradioadaptctx.h"
       
    23 #include "cmmfradiobackendengine.h"
       
    24 
       
    25 /*
       
    26  * XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range)
       
    27  */
       
    28 XAresult XARadioItfAdapt_SetFreqRange(XAAdaptationMMFCtx *bCtx, XAuint8 range)
       
    29 {
       
    30     XAresult ret = XA_RESULT_SUCCESS;  
       
    31     DEBUG_API("->XARadioItfAdapt_SetFreqRange");    
       
    32     mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);		
       
    33     set_freq_range(cmmfradiobackendengine_init(), range);    
       
    34     DEBUG_API("<-XARadioItfAdapt_SetFreqRange");
       
    35     return ret;
       
    36 }
       
    37 
       
    38 /*
       
    39  * XAresult XARadioItfAdapt_GetFreqRange(XAuint8 * pFreqRange)
       
    40  *
       
    41  */
       
    42 XAresult XARadioItfAdapt_GetFreqRange(XAuint8 * pFreqRange)
       
    43 {
       
    44     XAresult res = XA_RESULT_SUCCESS;    
       
    45     DEBUG_API("->XARadioItfAdapt_GetFreqRange");    
       
    46  		res = get_freq_range(cmmfradiobackendengine_init(), pFreqRange);
       
    47     DEBUG_API("<-XARadioItfAdapt_GetFreqRange");
       
    48     return res;
       
    49 }
       
    50 
       
    51 /*
       
    52  *  XAresult XARadioItfAdapt_IsFreqRangeSupported(XAuint8 range,
       
    53  *                                                XAboolean * pSupported)
       
    54  */
       
    55 XAresult XARadioItfAdapt_IsFreqRangeSupported(XAuint8 range,
       
    56                                              XAboolean * pSupported)
       
    57 {
       
    58     XAresult ret = XA_RESULT_SUCCESS;
       
    59     DEBUG_API("->XARadioItfAdapt_IsFreqRangeSupported");    
       
    60  		*pSupported = XA_BOOLEAN_TRUE;    // No radio utility API for this, set to true automatically.
       
    61     DEBUG_API("<-XARadioItfAdapt_IsFreqRangeSupported");
       
    62     return ret;
       
    63 }
       
    64 
       
    65 /*
       
    66  * XAresult XARadioItfAdapt_GetFreqRangeProperties(XAAdaptationMMFCtx *bCtx,
       
    67  *                                                 XAuint8 * pRange,
       
    68  *                                                 XAuint32 * pMinFreq,
       
    69  *                                                 XAuint32 * pMaxFreq)
       
    70  */
       
    71 XAresult XARadioItfAdapt_GetFreqRangeProperties(XAAdaptationMMFCtx *bCtx,
       
    72                                                XAuint8  range,
       
    73                                                XAuint32 * pMinFreq,
       
    74                                                XAuint32 * pMaxFreq)
       
    75 {
       
    76     XAresult res = XA_RESULT_SUCCESS;    
       
    77     DEBUG_API("->XARadioItfAdapt_GetFreqRangeProperties");
       
    78     mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);		
       
    79  		res = get_freq_range_properties(cmmfradiobackendengine_init(), range, pMinFreq, pMaxFreq); 					 		
       
    80     DEBUG_API("<-XARadioItfAdapt_GetFreqRangeProperties");
       
    81     return res;
       
    82 }
       
    83 
       
    84 /*
       
    85  * XAresult XARadioItfAdapt_SetFrequency(XAAdaptationMMFCtx *bCtx, XAuint32 freq)
       
    86  */
       
    87 XAresult XARadioItfAdapt_SetFrequency(XAAdaptationMMFCtx *bCtx, XAuint32 freq)
       
    88 {
       
    89     XAresult ret = XA_RESULT_SUCCESS; 
       
    90     DEBUG_API("->XARadioItfAdapt_SetFrequency");    
       
    91     mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);
       
    92     set_frequency(cmmfradiobackendengine_init(), freq);    
       
    93     DEBUG_API("<-XARadioItfAdapt_SetFrequency");
       
    94     return ret;
       
    95 }
       
    96 
       
    97 
       
    98 /*
       
    99  * XAresult XARadioItfAdapt_GetFrequency(XAAdaptationMMFCtx *bCtx,
       
   100  *                                       XAuint32* pFrequency)
       
   101  */
       
   102 XAresult XARadioItfAdapt_GetFrequency(XAuint32* pFrequency)
       
   103 {
       
   104     XAresult ret = XA_RESULT_SUCCESS;
       
   105     DEBUG_API("->XARadioItfAdapt_GetFrequency");	
       
   106 		ret = get_frequency(cmmfradiobackendengine_init(), pFrequency);       
       
   107    DEBUG_API("<-XARadioItfAdapt_GetFrequency");
       
   108    return ret;
       
   109 }
       
   110 
       
   111 
       
   112 /*
       
   113  * XAresult XARadioItfAdapt_CancelSetFrequency()
       
   114  */
       
   115 XAresult XARadioItfAdapt_CancelSetFrequency()
       
   116 {
       
   117     XAresult ret = XA_RESULT_SUCCESS;
       
   118     DEBUG_API("->XARadioItfAdapt_CancelSetFrequency");
       
   119 		cancel_set_frequency(cmmfradiobackendengine_init());     
       
   120     DEBUG_API("<-XARadioItfAdapt_CancelSetFrequency");
       
   121     return ret;
       
   122 }
       
   123 
       
   124 /*
       
   125  * XAresult XARadioItfAdapt_CancelStationSeek()
       
   126  */
       
   127 XAresult XARadioItfAdapt_CancelStationSeek()
       
   128 {
       
   129     XAresult ret = XA_RESULT_SUCCESS;         
       
   130     DEBUG_API("->XARadioItfAdapt_CancelStationSeek");		
       
   131 		cancel_station_seek(cmmfradiobackendengine_init());    
       
   132     DEBUG_API("<-XARadioItfAdapt_CancelStationSeek");
       
   133     return ret;
       
   134 }
       
   135 
       
   136 /*
       
   137  * XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch)
       
   138  */
       
   139 XAresult XARadioItfAdapt_SetSquelch(XAboolean squelch)
       
   140 {	
       
   141     XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED;	
       
   142     DEBUG_API("->XARadioItfAdapt_SetSquelch");
       
   143     return ret;
       
   144 }
       
   145 
       
   146 /*
       
   147  * XAresult XARadioItfAdapt_GetSquelch(XAboolean *squelch)
       
   148  */
       
   149 XAresult XARadioItfAdapt_GetSquelch(XAboolean* squelch)
       
   150 {
       
   151     XAresult ret = XA_RESULT_FEATURE_UNSUPPORTED;	
       
   152     DEBUG_API("->XARadioItfAdapt_GetSquelch");
       
   153     return ret;
       
   154 }
       
   155 
       
   156 /*
       
   157  * XAresult XARadioItfAdapt_SetStereoMode(XAAdaptationMMFCtx *bCtx, XAuint32 mode)
       
   158  */
       
   159 XAresult XARadioItfAdapt_SetStereoMode(XAAdaptationMMFCtx *bCtx, XAuint32 mode)
       
   160 {
       
   161 		XAresult res = XA_RESULT_SUCCESS;   	
       
   162     DEBUG_API("->XARadioItfAdapt_SetStereoMode");
       
   163     mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);
       
   164     res = set_stereo_mode(cmmfradiobackendengine_init(), mode);    
       
   165     DEBUG_API("<-XARadioItfAdapt_SetStereoMode");
       
   166     return res;
       
   167 }
       
   168 
       
   169 /*
       
   170  * XAresult XARadioItfAdapt_GetSignalStrength(XAuint32 * pStrength)
       
   171  */
       
   172 XAresult XARadioItfAdapt_GetSignalStrength(XAuint32 * pStrength)
       
   173 {
       
   174  		XAresult ret = XA_RESULT_SUCCESS;   	
       
   175     DEBUG_API("->XARadioItfAdapt_GetSignalStrength");  		
       
   176 		ret = get_signal_strength(cmmfradiobackendengine_init(), pStrength);    
       
   177     DEBUG_API("<-XARadioItfAdapt_GetSignalStrength");
       
   178     return ret;
       
   179 }
       
   180 
       
   181 /*
       
   182  * XAresult XARadioItfAdapt_Seek(XAAdaptationMMFCtx *bCtx, XAboolean upwards)
       
   183  */
       
   184 XAresult XARadioItfAdapt_Seek(XAAdaptationMMFCtx *bCtx, XAboolean upwards)
       
   185 {
       
   186 	  XAboolean direction; 
       
   187     XAresult ret = XA_RESULT_SUCCESS;          
       
   188     if (!upwards)
       
   189     	direction = XA_BOOLEAN_FALSE;  
       
   190     else
       
   191     	direction = XA_BOOLEAN_TRUE;      			
       
   192    	DEBUG_API("->XARadioItfAdapt_Seek");	    
       
   193     mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);     	
       
   194 		station_seek(cmmfradiobackendengine_init(), direction);   				
       
   195     DEBUG_API("<-XARadioItfAdapt_Seek");
       
   196     return ret;
       
   197 }
       
   198 
       
   199 /*
       
   200  * void XARadioItfAdapt_StopSeeking(XAAdaptationMMFCtx *bCtx)
       
   201  */
       
   202 void XARadioItfAdapt_StopSeeking(XAAdaptationMMFCtx *bCtx)
       
   203 {
       
   204     DEBUG_API("->XARadioItfAdapt_StopSeeking");	
       
   205     mmf_set_radio_adapt_context(cmmfradiobackendengine_init(), bCtx);	
       
   206 		cancel_station_seek(cmmfradiobackendengine_init());   
       
   207     DEBUG_API("<-XARadioItfAdapt_StopSeeking");
       
   208 }
       
   209 
       
   210 /*
       
   211  * XAresult XARadioItfAdapt_GetStereoMode(XAuint32 * pMode)
       
   212  */
       
   213 XAresult XARadioItfAdapt_GetStereoMode(XAuint32 * pMode)
       
   214 {
       
   215  		XAresult ret = XA_RESULT_SUCCESS;   	
       
   216     DEBUG_API("->XARadioItfAdapt_GetStereoMode");  		
       
   217 		ret = get_stereo_mode(cmmfradiobackendengine_init(), pMode);    
       
   218     DEBUG_API("<-XARadioItfAdapt_GetStereoMode");
       
   219     return ret;
       
   220 }
       
   221 
       
   222 /*
       
   223  * void XARadioItfAdapt_Free()
       
   224  */
       
   225 void XARadioItfAdapt_Free()
       
   226 {
       
   227     DEBUG_API("->XARadioItfAdapt_Free");
       
   228     
       
   229 }
       
   230 
       
   231 void XARadioItfAdapt_SeekComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency)
       
   232 {
       
   233    	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SEEK_COMPLETE,1,0};        	
       
   234 		if (ctx)
       
   235     {
       
   236     	if (aError)
       
   237     	{
       
   238     		event.data = &aError;
       
   239     	}
       
   240     	else
       
   241     	{
       
   242    			event.data = &aFrequency;
       
   243    		}
       
   244    		
       
   245      	XAAdaptationBase_SendAdaptEvents(ctx, &event );
       
   246    	}   
       
   247 }
       
   248 
       
   249 void XARadioItfAdapt_FrequencyChange(XAAdaptationBaseCtx *ctx, TInt aFrequency)
       
   250 {
       
   251 		// Currently: Bug in FM Radio Utility: SetFrequency calls this callback as well as SetFrequencyComplete
       
   252 		// (So client will end up getting 2 events on a SetFrequency call)
       
   253    	XAuint32 freq = aFrequency;    		
       
   254     XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0};        	
       
   255 		if (ctx)
       
   256     {
       
   257     	event.data = &freq;
       
   258      	XAAdaptationBase_SendAdaptEvents(ctx, &event );
       
   259    	}  
       
   260 }
       
   261 
       
   262 void XARadioItfAdapt_FrequencyRangeChange(XAAdaptationBaseCtx* ctx, TInt aFreqRangeChange)
       
   263 {
       
   264 		// Currently: Bug in FM Radio Utility: SetFrequencyRange triggers this callback as well as SetFrequencyRangeComplete
       
   265 		
       
   266    /*	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0};        	
       
   267 		if (baseCtx)
       
   268     {
       
   269     	event.data = &aFreqRangeChange;
       
   270      	XAAdaptationBase_SendAdaptEvents(&baseCtx->baseObj, &event );
       
   271    	} 
       
   272    	*/  
       
   273 }
       
   274 
       
   275 void XARadioItfAdapt_SetFrequencyComplete(XAAdaptationBaseCtx *ctx, TInt aError, TInt aFrequency)
       
   276 {
       
   277 		// Currently: Qt API has no event for SetFrequencyComplete, so must use this one:
       
   278    	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_CHANGED,1,0};   
       
   279    	XAuint32 freq = aFrequency;     	
       
   280 		if (ctx)
       
   281     {
       
   282     	if (!aError)
       
   283     	{
       
   284     		event.data = &freq;
       
   285     	}
       
   286     	else
       
   287     	{
       
   288     		event.data = &aError;
       
   289     	}
       
   290      	XAAdaptationBase_SendAdaptEvents(ctx, &event );
       
   291    	}   
       
   292 }
       
   293 
       
   294 void XARadioItfAdapt_SetFrequencyRangeComplete(XAAdaptationBaseCtx *ctx, TInt aError)
       
   295 {
       
   296    	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_FREQUENCY_RANGE_CHANGED,1,0};        	
       
   297 		if (ctx)
       
   298     {
       
   299     	event.data = &aError;
       
   300      	XAAdaptationBase_SendAdaptEvents(ctx, &event );
       
   301    	}   
       
   302 }
       
   303 
       
   304 void XARadioItfAdapt_StereoStatusChange(XAAdaptationBaseCtx *ctx, XAboolean aStereoStatus)
       
   305 {
       
   306    	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_STEREO_STATUS_CHANGED,1,0}; 
       
   307   	DEBUG_INFO_A1("XARadioItfAdapt_StereoStatusChange to: %s", aStereoStatus);	   	       	
       
   308 		if (ctx)
       
   309     {
       
   310     	event.data = &aStereoStatus;
       
   311      	XAAdaptationBase_SendAdaptEvents(ctx, &event );
       
   312    	}   
       
   313 }
       
   314 
       
   315 void XARadioItfAdapt_SignalStrengthChange(XAAdaptationBaseCtx *ctx, TInt aSignalStrength)
       
   316 {
       
   317    	XAAdaptEvent event = {XA_RADIOITFEVENTS, XA_ADAPT_RADIO_SIGNAL_STRENGTH_CHANGED,1,0}; 
       
   318   	DEBUG_INFO_A1("XARadioItfAdapt_SignalStrengthChange to: %s", aSignalStrength);	   	       	
       
   319 		if (ctx)
       
   320     {
       
   321     	event.data = &aSignalStrength;
       
   322      	XAAdaptationBase_SendAdaptEvents(ctx, &event );
       
   323    	}   
       
   324 }