khronosfws/openmax_al/src/radio/xardsitf.c
changeset 16 43d09473c595
parent 12 5a06f39ad45b
child 21 2ed61feeead6
equal deleted inserted replaced
14:80975da52420 16:43d09473c595
    17 
    17 
    18 #include <stdio.h>
    18 #include <stdio.h>
    19 #include <stdlib.h>
    19 #include <stdlib.h>
    20 #include <assert.h>
    20 #include <assert.h>
    21 #include "xardsitf.h"
    21 #include "xardsitf.h"
    22 /*#include "XARDSItfAdaptation.h"*/
    22 #include "xardsitfadaptation.h"
    23 #include "xathreadsafety.h"
    23 #include "xathreadsafety.h"
    24 
    24 #include "xaadaptationgst.h"
    25 /**
    25 /**
    26  * XARDSItfImpl* GetImpl(XARDSItf self)
    26  * XARDSItfImpl* GetImpl(XARDSItf self)
    27  * Description: Validated interface pointer and cast it to implementations pointer.
    27  * Description: Validated interface pointer and cast it to implementations pointer.
    28  **/
    28  **/
    29 static XARDSItfImpl* GetImpl(XARDSItf self)
    29 static XARDSItfImpl* GetImpl(XARDSItf self)
    60         /* invalid parameter */
    60         /* invalid parameter */
    61         DEBUG_API("<-XARDSItfImpl_QueryRDSSignal");
    61         DEBUG_API("<-XARDSItfImpl_QueryRDSSignal");
    62         return XA_RESULT_PARAMETER_INVALID;
    62         return XA_RESULT_PARAMETER_INVALID;
    63     }
    63     }
    64 
    64 
    65 #ifdef _GSTREAMER_BACKEND_
    65 
    66     ret = XARDSItfAdapt_QueryRDSSignal(impl->adapCtx, isSignal);
    66     ret = XARDSItfAdapt_QueryRDSSignal((XAAdaptationGstCtx*)impl->adapCtx, isSignal);
    67 #endif
    67 
    68     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
    68     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
    69     DEBUG_API("<-XARDSItfImpl_QueryRDSSignal");
    69     DEBUG_API("<-XARDSItfImpl_QueryRDSSignal");
    70     return ret;
    70     return ret;
    71 }
    71 }
    72 
    72 
    85         /* invalid parameter */
    85         /* invalid parameter */
    86         DEBUG_API("<-XARDSItfImpl_GetProgrammeServiceName");
    86         DEBUG_API("<-XARDSItfImpl_GetProgrammeServiceName");
    87         return XA_RESULT_PARAMETER_INVALID;
    87         return XA_RESULT_PARAMETER_INVALID;
    88     }
    88     }
    89 
    89 
    90 #ifdef _GSTREAMER_BACKEND_
    90 
    91     ret = XARDSItfAdapt_GetProgrammeServiceName(impl->adapCtx, ps);
    91     ret = XARDSItfAdapt_GetProgrammeServiceName((XAAdaptationGstCtx*)impl->adapCtx, ps);
    92 #endif
    92 
    93     DEBUG_API("<-XARDSItfImpl_GetProgrammeServiceName");
    93     DEBUG_API("<-XARDSItfImpl_GetProgrammeServiceName");
    94     return ret;
    94     return ret;
    95 }
    95 }
    96 
    96 
    97 /**
    97 /**
   112         /* invalid parameter */
   112         /* invalid parameter */
   113         DEBUG_API("<-XARDSItfImpl_GetRadioText");
   113         DEBUG_API("<-XARDSItfImpl_GetRadioText");
   114         return XA_RESULT_PARAMETER_INVALID;
   114         return XA_RESULT_PARAMETER_INVALID;
   115     }
   115     }
   116 
   116 
   117 #ifdef _GSTREAMER_BACKEND_
   117 
   118     ret = XARDSItfAdapt_GetRadioText(impl->adapCtx, rt);
   118     ret = XARDSItfAdapt_GetRadioText((XAAdaptationGstCtx*)impl->adapCtx, rt);
   119 #endif
   119 
   120     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   120     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   121     DEBUG_API("<-XARDSItfImpl_GetRadioText");
   121     DEBUG_API("<-XARDSItfImpl_GetRadioText");
   122     return ret;
   122     return ret;
   123 }
   123 }
   124 
   124 
   150         /* invalid parameter */
   150         /* invalid parameter */
   151         DEBUG_API("<-XARDSItfImpl_GetRadioTextPlus");
   151         DEBUG_API("<-XARDSItfImpl_GetRadioTextPlus");
   152         return XA_RESULT_PARAMETER_INVALID;
   152         return XA_RESULT_PARAMETER_INVALID;
   153     }
   153     }
   154 
   154 
   155 #ifdef _GSTREAMER_BACKEND_
   155 
   156     ret = XARDSItfAdapt_GetRadioTextPlus(impl->adapCtx, contentType, informationElement,
   156     ret = XARDSItfAdapt_GetRadioTextPlus((XAAdaptationGstCtx*)impl->adapCtx, contentType, informationElement,
   157                                         descriptor, descriptorContentType);
   157                                         descriptor, descriptorContentType);
   158 #endif
   158 
   159     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   159     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   160     DEBUG_API("<-XARDSItfImpl_GetRadioTextPlus");
   160     DEBUG_API("<-XARDSItfImpl_GetRadioTextPlus");
   161     return ret;
   161     return ret;
   162 }
   162 }
   163 
   163 
   180         /* invalid parameter */
   180         /* invalid parameter */
   181         DEBUG_API("<-XARDSItfImpl_GetProgrammeType");
   181         DEBUG_API("<-XARDSItfImpl_GetProgrammeType");
   182         return XA_RESULT_PARAMETER_INVALID;
   182         return XA_RESULT_PARAMETER_INVALID;
   183     }
   183     }
   184 
   184 
   185 #ifdef _GSTREAMER_BACKEND_
   185 
   186     ret = XARDSItfAdapt_GetProgrammeType(impl->adapCtx, pty);
   186     ret = XARDSItfAdapt_GetProgrammeType((XAAdaptationGstCtx*)impl->adapCtx, pty);
   187 #endif
   187 
   188     DEBUG_API("<-XARDSItfImpl_GetProgrammeType");
   188     DEBUG_API("<-XARDSItfImpl_GetProgrammeType");
   189     return ret;
   189     return ret;
   190 }
   190 }
   191 
   191 
   192 /**
   192 /**
   214         /* invalid parameter */
   214         /* invalid parameter */
   215         DEBUG_API("<-XARDSItfImpl_GetProgrammeTypeString");
   215         DEBUG_API("<-XARDSItfImpl_GetProgrammeTypeString");
   216         return XA_RESULT_PARAMETER_INVALID;
   216         return XA_RESULT_PARAMETER_INVALID;
   217     }
   217     }
   218 
   218 
   219 #ifdef _GSTREAMER_BACKEND_
   219 
   220     ret = XARDSItfAdapt_GetProgrammeTypeString(impl->adapCtx, isLengthMax16, pty);
   220     ret = XARDSItfAdapt_GetProgrammeTypeString((XAAdaptationGstCtx*)impl->adapCtx, isLengthMax16, pty);
   221 #endif
   221 
   222     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   222     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   223     DEBUG_API("<-XARDSItfImpl_GetProgrammeTypeString");
   223     DEBUG_API("<-XARDSItfImpl_GetProgrammeTypeString");
   224     return ret;
   224     return ret;
   225 }
   225 }
   226 
   226 
   245         /* invalid parameter */
   245         /* invalid parameter */
   246         DEBUG_API("<-XARDSItfImpl_GetProgrammeIdentificationCode");
   246         DEBUG_API("<-XARDSItfImpl_GetProgrammeIdentificationCode");
   247         return XA_RESULT_PARAMETER_INVALID;
   247         return XA_RESULT_PARAMETER_INVALID;
   248     }
   248     }
   249 
   249 
   250 #ifdef _GSTREAMER_BACKEND_
   250 
   251     ret = XARDSItfAdapt_GetProgrammeIdentificationCode(impl->adapCtx, pi);
   251     ret = XARDSItfAdapt_GetProgrammeIdentificationCode((XAAdaptationGstCtx*)impl->adapCtx, pi);
   252 #endif
   252 
   253     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   253     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   254     DEBUG_API("<-XARDSItfImpl_GetProgrammeIdentificationCode");
   254     DEBUG_API("<-XARDSItfImpl_GetProgrammeIdentificationCode");
   255     return ret;
   255     return ret;
   256 }
   256 }
   257 
   257 
   273         /* invalid parameter */
   273         /* invalid parameter */
   274         DEBUG_API("<-XARDSItfImpl_GetClockTime");
   274         DEBUG_API("<-XARDSItfImpl_GetClockTime");
   275         return XA_RESULT_PARAMETER_INVALID;
   275         return XA_RESULT_PARAMETER_INVALID;
   276     }
   276     }
   277 
   277 
   278 #ifdef _GSTREAMER_BACKEND_
   278 
   279     ret = XARDSItfAdapt_GetClockTime(impl->adapCtx, dateAndTime);
   279     ret = XARDSItfAdapt_GetClockTime((XAAdaptationGstCtx*)impl->adapCtx, dateAndTime);
   280 #endif
   280 
   281     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   281     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   282     DEBUG_API("<-XARDSItfImpl_GetClockTime");
   282     DEBUG_API("<-XARDSItfImpl_GetClockTime");
   283     return ret;
   283     return ret;
   284 }
   284 }
   285 
   285 
   301         /* invalid parameter */
   301         /* invalid parameter */
   302         DEBUG_API("<-XARDSItfImpl_GetTrafficAnnouncement");
   302         DEBUG_API("<-XARDSItfImpl_GetTrafficAnnouncement");
   303         return XA_RESULT_PARAMETER_INVALID;
   303         return XA_RESULT_PARAMETER_INVALID;
   304     }
   304     }
   305 
   305 
   306 #ifdef _GSTREAMER_BACKEND_
   306 
   307     ret = XARDSItfAdapt_GetTrafficAnnouncement(impl->adapCtx, ta);
   307     ret = XARDSItfAdapt_GetTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, ta);
   308 #endif
   308 
   309     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   309     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   310     DEBUG_API("<-XARDSItfImpl_GetTrafficAnnouncement");
   310     DEBUG_API("<-XARDSItfImpl_GetTrafficAnnouncement");
   311     return ret;
   311     return ret;
   312 }
   312 }
   313 
   313 
   329         /* invalid parameter */
   329         /* invalid parameter */
   330         DEBUG_API("<-XARDSItfImpl_GetTrafficProgramme");
   330         DEBUG_API("<-XARDSItfImpl_GetTrafficProgramme");
   331         return XA_RESULT_PARAMETER_INVALID;
   331         return XA_RESULT_PARAMETER_INVALID;
   332     }
   332     }
   333 
   333 
   334 #ifdef _GSTREAMER_BACKEND_
   334 
   335     ret = XARDSItfAdapt_GetTrafficProgramme(impl->adapCtx, tp);
   335     ret = XARDSItfAdapt_GetTrafficProgramme((XAAdaptationGstCtx*)impl->adapCtx, tp);
   336 #endif
   336 
   337     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   337     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   338     DEBUG_API("<-XARDSItfImpl_GetTrafficProgramme");
   338     DEBUG_API("<-XARDSItfImpl_GetTrafficProgramme");
   339     return ret;
   339     return ret;
   340 }
   340 }
   341 
   341 
   366         /* invalid parameter */
   366         /* invalid parameter */
   367         DEBUG_API("<-XARDSItfImpl_SeekByProgrammeType");
   367         DEBUG_API("<-XARDSItfImpl_SeekByProgrammeType");
   368         return XA_RESULT_PARAMETER_INVALID;
   368         return XA_RESULT_PARAMETER_INVALID;
   369     }
   369     }
   370 
   370 
   371 #ifdef _GSTREAMER_BACKEND_
   371 
   372     ret = XARDSItfAdapt_SeekByProgrammeType(impl->adapCtx, pty, upwards);
   372     ret = XARDSItfAdapt_SeekByProgrammeType((XAAdaptationGstCtx*)impl->adapCtx, pty, upwards);
   373 #endif
   373 
   374     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   374     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   375     DEBUG_API("<-XARDSItfImpl_SeekByProgrammeType");
   375     DEBUG_API("<-XARDSItfImpl_SeekByProgrammeType");
   376     return ret;
   376     return ret;
   377 }
   377 }
   378 
   378 
   399         /* invalid parameter */
   399         /* invalid parameter */
   400         DEBUG_API("<-XARDSItfImpl_SeekTrafficAnnouncement");
   400         DEBUG_API("<-XARDSItfImpl_SeekTrafficAnnouncement");
   401         return XA_RESULT_PARAMETER_INVALID;
   401         return XA_RESULT_PARAMETER_INVALID;
   402     }
   402     }
   403 
   403 
   404 #ifdef _GSTREAMER_BACKEND_
   404 
   405     ret = XARDSItfAdapt_SeekTrafficAnnouncement(impl->adapCtx, upwards);
   405     ret = XARDSItfAdapt_SeekTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, upwards);
   406 #endif
   406 
   407     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   407     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   408     DEBUG_API("<-XARDSItfImpl_SeekTrafficAnnouncement");
   408     DEBUG_API("<-XARDSItfImpl_SeekTrafficAnnouncement");
   409     return ret;
   409     return ret;
   410 }
   410 }
   411 
   411 
   432         /* invalid parameter */
   432         /* invalid parameter */
   433         DEBUG_API("<-XARDSItfImpl_SeekTrafficProgramme");
   433         DEBUG_API("<-XARDSItfImpl_SeekTrafficProgramme");
   434         return XA_RESULT_PARAMETER_INVALID;
   434         return XA_RESULT_PARAMETER_INVALID;
   435     }
   435     }
   436 
   436 
   437 #ifdef _GSTREAMER_BACKEND_
   437 
   438     ret = XARDSItfAdapt_SeekTrafficProgramme(impl->adapCtx, upwards);
   438     ret = XARDSItfAdapt_SeekTrafficProgramme((XAAdaptationGstCtx*)impl->adapCtx, upwards);
   439 #endif
   439 
   440     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   440     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   441     DEBUG_API("<-XARDSItfImpl_SeekTrafficProgramme");
   441     DEBUG_API("<-XARDSItfImpl_SeekTrafficProgramme");
   442     return ret;
   442     return ret;
   443 }
   443 }
   444 
   444 
   462         /* invalid parameter */
   462         /* invalid parameter */
   463         DEBUG_API("<-XARDSItfImpl_SetAutomaticSwitching");
   463         DEBUG_API("<-XARDSItfImpl_SetAutomaticSwitching");
   464         return XA_RESULT_PARAMETER_INVALID;
   464         return XA_RESULT_PARAMETER_INVALID;
   465     }
   465     }
   466 
   466 
   467 #ifdef _GSTREAMER_BACKEND_
   467 
   468     ret = XARDSItfAdapt_SetAutomaticSwitching(impl->adapCtx, automatic);
   468     ret = XARDSItfAdapt_SetAutomaticSwitching((XAAdaptationGstCtx*)impl->adapCtx, automatic);
   469 #endif
   469 
   470     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   470     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   471     DEBUG_API("<-XARDSItfImpl_SetAutomaticSwitching");
   471     DEBUG_API("<-XARDSItfImpl_SetAutomaticSwitching");
   472     return ret;
   472     return ret;
   473 }
   473 }
   474 
   474 
   490         /* invalid parameter */
   490         /* invalid parameter */
   491         DEBUG_API("<-XARDSItfImpl_GetAutomaticSwitching");
   491         DEBUG_API("<-XARDSItfImpl_GetAutomaticSwitching");
   492         return XA_RESULT_PARAMETER_INVALID;
   492         return XA_RESULT_PARAMETER_INVALID;
   493     }
   493     }
   494 
   494 
   495 #ifdef _GSTREAMER_BACKEND_
   495 
   496     ret = XARDSItfAdapt_GetAutomaticSwitching(impl->adapCtx, automatic);
   496     ret = XARDSItfAdapt_GetAutomaticSwitching((XAAdaptationGstCtx*)impl->adapCtx, automatic);
   497 #endif
   497 
   498     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   498     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   499     DEBUG_API("<-XARDSItfImpl_GetAutomaticSwitching");
   499     DEBUG_API("<-XARDSItfImpl_GetAutomaticSwitching");
   500     return ret;
   500     return ret;
   501 }
   501 }
   502 
   502 
   519         /* invalid parameter */
   519         /* invalid parameter */
   520         DEBUG_API("<-XARDSItfImpl_SetAutomaticTrafficAnnouncement");
   520         DEBUG_API("<-XARDSItfImpl_SetAutomaticTrafficAnnouncement");
   521         return XA_RESULT_PARAMETER_INVALID;
   521         return XA_RESULT_PARAMETER_INVALID;
   522     }
   522     }
   523 
   523 
   524 #ifdef _GSTREAMER_BACKEND_
   524 
   525     ret = XARDSItfAdapt_SetAutomaticTrafficAnnouncement(impl->adapCtx, automatic);
   525     ret = XARDSItfAdapt_SetAutomaticTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, automatic);
   526 #endif
   526 
   527     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   527     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   528     DEBUG_API("<-XARDSItfImpl_SetAutomaticTrafficAnnouncement");
   528     DEBUG_API("<-XARDSItfImpl_SetAutomaticTrafficAnnouncement");
   529     return ret;
   529     return ret;
   530 }
   530 }
   531 
   531 
   549         DEBUG_API("<-XARDSItfImpl_GetAutomaticTrafficAnnouncement");
   549         DEBUG_API("<-XARDSItfImpl_GetAutomaticTrafficAnnouncement");
   550 
   550 
   551         return XA_RESULT_PARAMETER_INVALID;
   551         return XA_RESULT_PARAMETER_INVALID;
   552     }
   552     }
   553 
   553 
   554 #ifdef _GSTREAMER_BACKEND_
   554 
   555     ret = XARDSItfAdapt_GetAutomaticTrafficAnnouncement(impl->adapCtx, automatic);
   555     ret = XARDSItfAdapt_GetAutomaticTrafficAnnouncement((XAAdaptationGstCtx*)impl->adapCtx, automatic);
   556 #endif
   556 
   557     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   557     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   558     DEBUG_API("<-XARDSItfImpl_GetAutomaticTrafficAnnouncement");
   558     DEBUG_API("<-XARDSItfImpl_GetAutomaticTrafficAnnouncement");
   559     return ret;
   559     return ret;
   560 }
   560 }
   561 
   561 
   594     impl->odaGroupContext = pContext;
   594     impl->odaGroupContext = pContext;
   595     impl->odaGroupCbPtrToSelf = self;
   595     impl->odaGroupCbPtrToSelf = self;
   596 
   596 
   597     if (callback)
   597     if (callback)
   598     {
   598     {
   599 #ifdef _GSTREAMER_BACKEND_
   599 
   600         ret = XARDSItfAdapt_GetODAGroup(impl->adapCtx, AID);
   600         ret = XARDSItfAdapt_GetODAGroup((XAAdaptationGstCtx*)impl->adapCtx, AID);
   601 #endif
   601 
   602     }
   602     }
   603 
   603 
   604     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   604     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   605     DEBUG_API("<-XARDSItfImpl_GetODAGroup");
   605     DEBUG_API("<-XARDSItfImpl_GetODAGroup");
   606 
   606 
   632         /* invalid parameter */
   632         /* invalid parameter */
   633         DEBUG_API("<-XARDSItfImpl_SubscribeODAGroup");
   633         DEBUG_API("<-XARDSItfImpl_SubscribeODAGroup");
   634         return XA_RESULT_PARAMETER_INVALID;
   634         return XA_RESULT_PARAMETER_INVALID;
   635     }
   635     }
   636 
   636 
   637 #ifdef _GSTREAMER_BACKEND_
   637 
   638     ret = XARDSItfAdapt_SubscribeODAGroup(impl->adapCtx, group, useErrorCorrection);
   638     ret = XARDSItfAdapt_SubscribeODAGroup((XAAdaptationGstCtx*)impl->adapCtx, group, useErrorCorrection);
   639 #endif
   639 
   640     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   640     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   641     DEBUG_API("<-XARDSItfImpl_SubscribeODAGroup");
   641     DEBUG_API("<-XARDSItfImpl_SubscribeODAGroup");
   642     return ret;
   642     return ret;
   643 }
   643 }
   644 
   644 
   664         DEBUG_API("<-XARDSItfImpl_UnsubscribeODAGroup");
   664         DEBUG_API("<-XARDSItfImpl_UnsubscribeODAGroup");
   665 
   665 
   666         return XA_RESULT_PARAMETER_INVALID;
   666         return XA_RESULT_PARAMETER_INVALID;
   667     }
   667     }
   668 
   668 
   669 #ifdef _GSTREAMER_BACKEND_
   669 
   670     ret = XARDSItfAdapt_UnsubscribeODAGroup(impl->adapCtx, group);
   670     ret = XARDSItfAdapt_UnsubscribeODAGroup((XAAdaptationGstCtx*)impl->adapCtx, group);
   671 #endif
   671 
   672     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   672     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   673     DEBUG_API("<-XARDSItfImpl_UnsubscribeODAGroup");
   673     DEBUG_API("<-XARDSItfImpl_UnsubscribeODAGroup");
   674     return ret;
   674     return ret;
   675 }
   675 }
   676 
   676 
   696         /* invalid parameter */
   696         /* invalid parameter */
   697         DEBUG_API("<-XARDSItfImpl_ListODAGroupSubscriptions");
   697         DEBUG_API("<-XARDSItfImpl_ListODAGroupSubscriptions");
   698         return XA_RESULT_PARAMETER_INVALID;
   698         return XA_RESULT_PARAMETER_INVALID;
   699     }
   699     }
   700 
   700 
   701 #ifdef _GSTREAMER_BACKEND_
   701 
   702     XARDSItfAdapt_ListODAGroupSubscriptions(impl->adapCtx, pGroups, pLength);
   702     XARDSItfAdapt_ListODAGroupSubscriptions((XAAdaptationGstCtx*)impl->adapCtx, pGroups, pLength);
   703 #endif
   703 
   704     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   704     XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
   705     DEBUG_API("<-XARDSItfImpl_ListODAGroupSubscriptions");
   705     DEBUG_API("<-XARDSItfImpl_ListODAGroupSubscriptions");
   706     return ret;
   706     return ret;
   707 }
   707 }
   708 
   708 
   770 }
   770 }
   771 
   771 
   772 /**
   772 /**
   773  * XARDSItfImpl -specific methods
   773  * XARDSItfImpl -specific methods
   774  **/
   774  **/
   775 #ifdef _GSTREAMER_BACKEND_
   775 
   776 
   776 
   777 /**
   777 /**
   778  * XARDSItfImplImpl* XARDSItfImpl_Create()
   778  * XARDSItfImplImpl* XARDSItfImpl_Create()
   779  * @return  XARDSItfImplImpl* - Pointer to  RDSItf interface implementation
   779  * @return  XARDSItfImplImpl* - Pointer to  RDSItf interface implementation
   780  **/
   780  **/
   857         /* XA_BOOLEAN_FALSE and -1 means oda group not found */
   857         /* XA_BOOLEAN_FALSE and -1 means oda group not found */
   858         impl->odaGroupCallback( (XARadioItf) impl->odaGroupCbPtrToSelf, impl->odaGroupContext, XA_BOOLEAN_FALSE, -1, 0 );
   858         impl->odaGroupCallback( (XARadioItf) impl->odaGroupCbPtrToSelf, impl->odaGroupContext, XA_BOOLEAN_FALSE, -1, 0 );
   859     }
   859     }
   860     DEBUG_API("<-XARDSItfImpl_AdaptCb");
   860     DEBUG_API("<-XARDSItfImpl_AdaptCb");
   861 }
   861 }
   862 #endif
   862 
   863 /**
   863 /**
   864  * void XARDSItfImpl_Free(XARDSItfImpl* self)
   864  * void XARDSItfImpl_Free(XARDSItfImpl* self)
   865  * @param  XARDSItfImpl* self -
   865  * @param  XARDSItfImpl* self -
   866  **/
   866  **/
   867 void XARDSItfImpl_Free(XARDSItfImpl* self)
   867 void XARDSItfImpl_Free(XARDSItfImpl* self)
   868 {
   868 {
   869     DEBUG_API("->XARDSItfImpl_Free");
   869     DEBUG_API("->XARDSItfImpl_Free");
   870     XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS(XATSRadio);
   870     XA_IMPL_THREAD_SAFETY_ENTRY_FOR_VOID_FUNCTIONS(XATSRadio);
   871     assert(self==self->self);
   871     assert(self==self->self);
   872 #ifdef _GSTREAMER_BACKEND_
   872 
   873     XAAdaptationBase_RemoveEventHandler( self->adapCtx, &XARDSItfImpl_AdaptCb );
   873     XAAdaptationBase_RemoveEventHandler( self->adapCtx, &XARDSItfImpl_AdaptCb );
   874 
   874 
   875     XARDSItfAdapt_Free(self->adapCtx);
   875     XARDSItfAdapt_Free(self->adapCtx);
   876 #endif
   876 
   877     free(self);
   877     free(self);
   878     XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS(XATSRadio);
   878     XA_IMPL_THREAD_SAFETY_EXIT_FOR_VOID_FUNCTIONS(XATSRadio);
   879     DEBUG_API("<-XARDSItfImpl_Free");
   879     DEBUG_API("<-XARDSItfImpl_Free");
   880 }
   880 }
   881 
   881