khronosfws/openmax_al/src/common/xanokiavolumeextitf.c
changeset 31 8dfd592727cb
parent 16 43d09473c595
child 33 5e8b14bae8c3
equal deleted inserted replaced
22:128eb6a32b84 31:8dfd592727cb
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3  * All rights reserved.
     4 * This component and the accompanying materials are made available
     4  * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5  * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6  * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     8  *
     9 * Initial Contributors:
     9  * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10  * Nokia Corporation - initial contribution.
    11 *
    11  *
    12 * Contributors:
    12  * Contributors:
    13 *
    13  *
    14 * Description: 
    14  * Description: 
    15 *
    15  *
    16 */
    16  */
    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 
    21 
    25 /**
    25 /**
    26  * XANokiaVolumeExtItfImpl* GetImpl(XANokiaVolumeExtItf self)
    26  * XANokiaVolumeExtItfImpl* GetImpl(XANokiaVolumeExtItf 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 XANokiaVolumeExtItfImpl* GetImpl(XANokiaVolumeExtItf self)
    29 static XANokiaVolumeExtItfImpl* GetImpl(XANokiaVolumeExtItf self)
    30 {
    30     {
    31     if(self)
    31     if (self)
    32     {
    32         {
    33         XANokiaVolumeExtItfImpl* impl = (XANokiaVolumeExtItfImpl*)(*self);
    33         XANokiaVolumeExtItfImpl* impl = (XANokiaVolumeExtItfImpl*) (*self);
    34         if(impl && impl == impl->self)
    34         if (impl && impl == impl->self)
    35         {
    35             {
    36             return impl;
    36             return impl;
    37         }
    37             }
    38     }
    38         }
    39     return NULL;
    39     return NULL;
    40 }
    40     }
    41 
    41 
    42 /**
    42 /**
    43  * XAresult XANokiaVolumeExtItfImpl_RegisterVolumeCallback(XANokiaVolumeExtItf self,
    43  * XAresult XANokiaVolumeExtItfImpl_RegisterVolumeCallback(XANokiaVolumeExtItf self,
    44  *                                               xaNokiaVolumeExtCallback callback,
    44  *                                               xaNokiaVolumeExtCallback callback,
    45  *                                               void * pContext)
    45  *                                               void * pContext)
    46  * Description: Sets or clears the xaVolumeCallback.
    46  * Description: Sets or clears the xaVolumeCallback.
    47  **/
    47  **/
    48 XAresult XANokiaVolumeExtItfImpl_RegisterVolumeCallback(XANokiaVolumeExtItf self,
    48 XAresult XANokiaVolumeExtItfImpl_RegisterVolumeCallback(
    49                                               xaNokiaVolumeExtCallback callback,
    49         XANokiaVolumeExtItf self, xaNokiaVolumeExtCallback callback,
    50                                               void * pContext)
    50         void * pContext)
    51 {
    51     {
    52     XAresult ret = XA_RESULT_SUCCESS;
    52     XAresult ret = XA_RESULT_SUCCESS;
    53     XANokiaVolumeExtItfImpl* impl = GetImpl(self);
    53     XANokiaVolumeExtItfImpl* impl = GetImpl(self);
    54     DEBUG_API("->XANokiaVolumeExtItfImpl_RegisterVolumeCallback");
    54     DEBUG_API("->XANokiaVolumeExtItfImpl_RegisterVolumeCallback");
    55 
    55 
    56     if(!impl)
    56     if (!impl)
    57     {
    57         {
    58         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
    58         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
    59         /* invalid parameter */
    59         /* invalid parameter */
    60         DEBUG_API("<-XANokiaVolumeExtItfImpl_RegisterVolumeCallback");
    60         DEBUG_API("<-XANokiaVolumeExtItfImpl_RegisterVolumeCallback");
    61         return XA_RESULT_PARAMETER_INVALID;
    61         return XA_RESULT_PARAMETER_INVALID;
    62     }
    62         }
    63 
    63 
    64     impl->callback = callback;
    64     impl->callback = callback;
    65     impl->context = pContext;
    65     impl->context = pContext;
    66     impl->cbPtrToSelf = self;
    66     impl->cbPtrToSelf = self;
    67 
    67 
    68     DEBUG_API("<-XANokiaVolumeExtItfImpl_RegisterVolumeCallback");
    68     DEBUG_API("<-XANokiaVolumeExtItfImpl_RegisterVolumeCallback");
    69     return ret;
    69     return ret;
    70 }
    70     }
    71 
    71 
    72 /**
    72 /**
    73  * Base interface XANokiaVolumeExtItf implementation
    73  * Base interface XANokiaVolumeExtItf implementation
    74  */
    74  */
    75 
    75 
    76 /**
    76 /**
    77  * XAresult XANokiaVolumeExtItfImpl_SetVolumeLevel(XANokiaVolumeExtItf self, XAmillibel level)
    77  * XAresult XANokiaVolumeExtItfImpl_SetVolumeLevel(XANokiaVolumeExtItf self, XAmillibel level)
    78  * Description: Sets the object's volume level.
    78  * Description: Sets the object's volume level.
    79  **/
    79  **/
    80 XAresult XANokiaVolumeExtItfImpl_SetVolumeLevel(XANokiaVolumeExtItf self, XAmillibel level)
    80 XAresult XANokiaVolumeExtItfImpl_SetVolumeLevel(XANokiaVolumeExtItf self,
    81 {
    81         XAmillibel level)
    82     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
    82     {
    83     XAresult ret = XA_RESULT_SUCCESS;
    83     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
    84 
    84     XAresult ret = XA_RESULT_SUCCESS;
    85     XAmillibel maximumLevel = 0; 
    85 
    86  
    86     XAmillibel maximumLevel = 0;
       
    87 
    87     DEBUG_API("->XANokiaVolumeExtItfImpl_SetVolumeLevel");
    88     DEBUG_API("->XANokiaVolumeExtItfImpl_SetVolumeLevel");
    88 
    89 
    89     /* check maximum volume level */
    90     /* check maximum volume level */
    90   	if(XANokiaVolumeExtItfImpl_GetMaxVolumeLevel(self, &maximumLevel) != XA_RESULT_SUCCESS)
    91     if (XANokiaVolumeExtItfImpl_GetMaxVolumeLevel(self, &maximumLevel)
    91    	{
    92             != XA_RESULT_SUCCESS)
    92         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
    93         {
    93         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetVolumeLevel");
    94         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_SetVolumeLevel");
    94         /* cannot solve maximum volume level */
    95         /* cannot solve maximum volume level */
    95         return XA_RESULT_PARAMETER_INVALID;
    96         return XA_RESULT_PARAMETER_INVALID;
    96    	}
    97         }
    97     
    98 
    98     if(!impl || level > maximumLevel)
    99     if (!impl || level > maximumLevel)
    99     {
   100         {
   100         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   101         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_SetVolumeLevel");
   101         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetVolumeLevel");
   102         /* invalid parameter */
   102         /* invalid parameter */
   103         return XA_RESULT_PARAMETER_INVALID;
   103         return XA_RESULT_PARAMETER_INVALID;
   104         }
   104     }
       
   105 
   105 
   106     impl->volumeLevel = level;
   106     impl->volumeLevel = level;
   107 
   107 
   108     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetVolumeLevel");
   108     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetVolumeLevel");
   109     return ret ;
   109     return ret;
   110 }
   110     }
   111 
   111 
   112 /**
   112 /**
   113  * XAresult XANokiaVolumeExtItfImpl_GetVolumeLevel(XANokiaVolumeExtItf self, XAmillibel *pLevel)
   113  * XAresult XANokiaVolumeExtItfImpl_GetVolumeLevel(XANokiaVolumeExtItf self, XAmillibel *pLevel)
   114  * Description: Gets the object’s volume level.
   114  * Description: Gets the object’s volume level.
   115  **/
   115  **/
   116 XAresult XANokiaVolumeExtItfImpl_GetVolumeLevel(XANokiaVolumeExtItf self, XAmillibel *pLevel)
   116 XAresult XANokiaVolumeExtItfImpl_GetVolumeLevel(XANokiaVolumeExtItf self,
   117 {
   117         XAmillibel *pLevel)
       
   118     {
   118     XAresult ret = XA_RESULT_SUCCESS;
   119     XAresult ret = XA_RESULT_SUCCESS;
   119     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   120     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   120     DEBUG_API("->XANokiaVolumeExtItfImpl_GetVolumeLevel");
   121     DEBUG_API("->XANokiaVolumeExtItfImpl_GetVolumeLevel");
   121 
   122 
   122     if(!impl || !pLevel)
   123     if (!impl || !pLevel)
   123     {
   124         {
   124         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   125         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_GetVolumeLevel");
   125         DEBUG_API("<-XANokiaVolumeExtItfImpl_GetVolumeLevel");
   126         /* invalid parameter */
   126         /* invalid parameter */
   127         return XA_RESULT_PARAMETER_INVALID;
   127         return XA_RESULT_PARAMETER_INVALID;
   128         }
   128     }
       
   129 
   129 
   130     *pLevel = impl->volumeLevel;
   130     *pLevel = impl->volumeLevel;
   131 
   131 
   132     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetVolumeLevel");
   132     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetVolumeLevel");
   133     return ret;
   133     return ret;
   134 }
   134     }
   135 
   135 
   136 /**
   136 /**
   137  * XAresult XANokiaVolumeExtItfImpl_GetMaxVolumeLevel(XANokiaVolumeExtItf  self, XAmillibel *pMaxLevel)
   137  * XAresult XANokiaVolumeExtItfImpl_GetMaxVolumeLevel(XANokiaVolumeExtItf  self, XAmillibel *pMaxLevel)
   138  * Description: Gets the maximum supported level.
   138  * Description: Gets the maximum supported level.
   139  **/
   139  **/
   140 XAresult XANokiaVolumeExtItfImpl_GetMaxVolumeLevel(XANokiaVolumeExtItf  self, XAmillibel *pMaxLevel)
   140 XAresult XANokiaVolumeExtItfImpl_GetMaxVolumeLevel(XANokiaVolumeExtItf self,
   141 {
   141         XAmillibel *pMaxLevel)
       
   142     {
   142     XAresult ret = XA_RESULT_SUCCESS;
   143     XAresult ret = XA_RESULT_SUCCESS;
   143     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   144     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   144     DEBUG_API("->XANokiaVolumeExtItfImpl_GetVolumeLevel");
   145     DEBUG_API("->XANokiaVolumeExtItfImpl_GetVolumeLevel");
   145 
   146 
   146     if(!impl || !pMaxLevel)
   147     if (!impl || !pMaxLevel)
   147     {
   148         {
   148         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   149         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMaxVolumeLevel");
   149         DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMaxVolumeLevel");
   150         /* invalid parameter */
   150         /* invalid parameter */
   151         return XA_RESULT_PARAMETER_INVALID;
   151         return XA_RESULT_PARAMETER_INVALID;
   152         }
   152     }
       
   153 
   153 
   154     *pMaxLevel = MAX_SUPPORT_VOLUME_LEVEL;
   154     *pMaxLevel = MAX_SUPPORT_VOLUME_LEVEL;
   155     
   155 
   156     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMaxVolumeLevel");
   156     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMaxVolumeLevel");
   157     return ret;
   157     return ret;
   158 }
   158     }
   159 
   159 
   160 /**
   160 /**
   161  * XAresult XANokiaVolumeExtItfImpl_SetMute(XANokiaVolumeExtItf self, XAboolean mute)
   161  * XAresult XANokiaVolumeExtItfImpl_SetMute(XANokiaVolumeExtItf self, XAboolean mute)
   162  * Description: Mutes or unmutes the object.
   162  * Description: Mutes or unmutes the object.
   163  **/
   163  **/
   164 XAresult XANokiaVolumeExtItfImpl_SetMute(XANokiaVolumeExtItf self, XAboolean mute)
   164 XAresult XANokiaVolumeExtItfImpl_SetMute(XANokiaVolumeExtItf self,
   165 {
   165         XAboolean mute)
       
   166     {
   166     XAresult ret = XA_RESULT_SUCCESS;
   167     XAresult ret = XA_RESULT_SUCCESS;
   167     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   168     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   168     DEBUG_API("->XANokiaVolumeExtItfImpl_SetMute");
   169     DEBUG_API("->XANokiaVolumeExtItfImpl_SetMute");
   169 
   170 
   170     if(!impl)
   171     if (!impl)
   171     {
   172         {
   172         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   173         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_SetMute");
   173         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetMute");
   174         /* invalid parameter */
   174         /* invalid parameter */
   175         return XA_RESULT_PARAMETER_INVALID;
   175         return XA_RESULT_PARAMETER_INVALID;
   176         }
   176     }
       
   177 
   177 
   178     ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
   178     ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
   179     if( ret == XA_RESULT_PARAMETER_INVALID || ret == XA_RESULT_PRECONDITIONS_VIOLATED )
   179     if (ret == XA_RESULT_SUCCESS)
   180     {
   180         {
   181         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetMute");
   181         /* check is mute state changed */
   182         return ret;
   182         if (mute != impl->mute)
   183     }
   183             {
   184     /* check is mute state changed */
   184             if (impl->adapCtx && impl->adapCtx->fwtype == FWMgrFWMMF)
   185     if(mute != impl->mute)
   185                 {
   186     {
   186                 ret = XANokiaVolumeExtItfAdapt_SetMute(
   187         if(impl->adapCtx->fwtype == FWMgrFWMMF)
   187                         (XAAdaptationMMFCtx*) impl->adapCtx, mute);
   188         {
   188                 if (ret == XA_RESULT_SUCCESS)
   189         ret = XANokiaVolumeExtItfAdapt_SetMute((XAAdaptationMMFCtx*)impl->adapCtx,  mute);
   189                     {
   190         }
   190                     impl->mute = mute;
   191 
   191                     }
   192         if(ret == XA_RESULT_SUCCESS)
   192                 }
   193         {
   193             }
   194             impl->mute = mute;
   194 
   195         }
   195         XAAdaptationBase_ThreadExit(impl->adapCtx);
   196     }
   196         }
   197 
       
   198     XAAdaptationBase_ThreadExit(impl->adapCtx);
       
   199     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetMute");
   197     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetMute");
   200     return ret;
   198     return ret;
   201 }
   199     }
   202 
   200 
   203 /**
   201 /**
   204  * XAresult XANokiaVolumeExtItfImpl_GetMute(XANokiaVolumeExtItf self, XAboolean *pMute)
   202  * XAresult XANokiaVolumeExtItfImpl_GetMute(XANokiaVolumeExtItf self, XAboolean *pMute)
   205  * Description: Retrieves the object's state.
   203  * Description: Retrieves the object's state.
   206  **/
   204  **/
   207 XAresult XANokiaVolumeExtItfImpl_GetMute(XANokiaVolumeExtItf self, XAboolean *pMute)
   205 XAresult XANokiaVolumeExtItfImpl_GetMute(XANokiaVolumeExtItf self,
   208 {
   206         XAboolean *pMute)
       
   207     {
   209     XAresult ret = XA_RESULT_SUCCESS;
   208     XAresult ret = XA_RESULT_SUCCESS;
   210     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   209     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   211     DEBUG_API("->XANokiaVolumeExtItfImpl_GetMute");
   210     DEBUG_API("->XANokiaVolumeExtItfImpl_GetMute");
   212 
   211 
   213     if(!impl || !pMute)
   212     if (!impl || !pMute)
   214     {
   213         {
   215         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   214         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMute");
   216         DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMute");
   215         /* invalid parameter */
   217         /* invalid parameter */
   216         return XA_RESULT_PARAMETER_INVALID;
   218         return XA_RESULT_PARAMETER_INVALID;
   217         }
   219     }
       
   220 
   218 
   221     *pMute = impl->mute;
   219     *pMute = impl->mute;
   222 
   220 
   223     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMute");
   221     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetMute");
   224     return ret;
   222     return ret;
   225 }
   223     }
   226 
   224 
   227 /**
   225 /**
   228  * XAresult XANokiaVolumeExtItfImpl_EnableStereoPosition(XANokiaVolumeExtItf self, XAboolean enable)
   226  * XAresult XANokiaVolumeExtItfImpl_EnableStereoPosition(XANokiaVolumeExtItf self, XAboolean enable)
   229  * Description: Enables or disables the stereo positioning effect.
   227  * Description: Enables or disables the stereo positioning effect.
   230  **/
   228  **/
   231 XAresult XANokiaVolumeExtItfImpl_EnableStereoPosition(XANokiaVolumeExtItf self, XAboolean enable)
   229 XAresult XANokiaVolumeExtItfImpl_EnableStereoPosition(
   232 {
   230         XANokiaVolumeExtItf self, XAboolean enable)
       
   231     {
   233     XAresult ret = XA_RESULT_SUCCESS;
   232     XAresult ret = XA_RESULT_SUCCESS;
   234     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   233     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   235     DEBUG_API("->XANokiaVolumeExtItfImpl_EnableStereoPosition");
   234     DEBUG_API("->XANokiaVolumeExtItfImpl_EnableStereoPosition");
   236 
   235 
   237     if(!impl)
   236     if (!impl)
   238     {
   237         {
   239         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   238         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_EnableStereoPosition");
   240         DEBUG_API("<-XANokiaVolumeExtItfImpl_EnableStereoPosition");
   239         /* invalid parameter */
   241         /* invalid parameter */
   240         return XA_RESULT_PARAMETER_INVALID;
   242         return XA_RESULT_PARAMETER_INVALID;
   241         }
   243     }
       
   244 
   242 
   245     ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
   243     ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
   246     if( ret == XA_RESULT_PARAMETER_INVALID || ret == XA_RESULT_PRECONDITIONS_VIOLATED )
   244     if (ret == XA_RESULT_PARAMETER_INVALID || ret
   247     {
   245             == XA_RESULT_PRECONDITIONS_VIOLATED)
       
   246         {
   248         DEBUG_API("<-XANokiaVolumeExtItfImpl_EnableStereoPosition");
   247         DEBUG_API("<-XANokiaVolumeExtItfImpl_EnableStereoPosition");
   249         return ret;
   248         return ret;
   250     }
   249         }
   251     /* Check is stereo position state changed */
   250     /* Check is stereo position state changed */
   252     if(enable != impl->enableStereoPos)
   251     if (enable != impl->enableStereoPos)
   253     {
   252         {
   254         if(impl->adapCtx->fwtype == FWMgrFWMMF)
   253         if (impl->adapCtx->fwtype == FWMgrFWMMF)
   255         {
   254             {
   256         ret = XANokiaVolumeExtItfAdapt_EnableStereoPosition((XAAdaptationMMFCtx*)impl->adapCtx,
   255             ret = XANokiaVolumeExtItfAdapt_EnableStereoPosition(
   257                                                     enable);
   256                     (XAAdaptationMMFCtx*) impl->adapCtx, enable);
   258         }
   257             }
   259 
   258 
   260         if(ret == XA_RESULT_SUCCESS)
   259         if (ret == XA_RESULT_SUCCESS)
   261         {
   260             {
   262             impl->enableStereoPos = enable;
   261             impl->enableStereoPos = enable;
   263         }
   262             }
   264     }
   263         }
   265 
   264 
   266     XAAdaptationBase_ThreadExit(impl->adapCtx);
   265     XAAdaptationBase_ThreadExit(impl->adapCtx);
   267     DEBUG_API("<-XANokiaVolumeExtItfImpl_EnableStereoPosition");
   266     DEBUG_API("<-XANokiaVolumeExtItfImpl_EnableStereoPosition");
   268     return ret;
   267     return ret;
   269 }
   268     }
   270 
   269 
   271 /**
   270 /**
   272  * XAresult XANokiaVolumeExtItfImpl_IsEnabledStereoPosition(XANokiaVolumeExtItf self,
   271  * XAresult XANokiaVolumeExtItfImpl_IsEnabledStereoPosition(XANokiaVolumeExtItf self,
   273  *                                                  XAboolean *pEnable)
   272  *                                                  XAboolean *pEnable)
   274  * Description: Returns the enabled state of the stereo positioning effect.
   273  * Description: Returns the enabled state of the stereo positioning effect.
   275  **/
   274  **/
   276 XAresult XANokiaVolumeExtItfImpl_IsEnabledStereoPosition(XANokiaVolumeExtItf self,
   275 XAresult XANokiaVolumeExtItfImpl_IsEnabledStereoPosition(
   277                                                  XAboolean *pEnable)
   276         XANokiaVolumeExtItf self, XAboolean *pEnable)
   278 {
   277     {
   279     XAresult ret = XA_RESULT_SUCCESS;
   278     XAresult ret = XA_RESULT_SUCCESS;
   280     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   279     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   281     DEBUG_API("->XANokiaVolumeExtItfImpl_IsEnabledStereoPosition");
   280     DEBUG_API("->XANokiaVolumeExtItfImpl_IsEnabledStereoPosition");
   282 
   281 
   283     if(!impl || !pEnable)
   282     if (!impl || !pEnable)
   284     {
   283         {
   285         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   284         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_IsEnabledStereoPosition");
   286         DEBUG_API("<-XANokiaVolumeExtItfImpl_IsEnabledStereoPosition");
   285         /* invalid parameter */
   287         /* invalid parameter */
   286         return XA_RESULT_PARAMETER_INVALID;
   288         return XA_RESULT_PARAMETER_INVALID;
   287         }
   289     }
       
   290 
   288 
   291     *pEnable = impl->enableStereoPos;
   289     *pEnable = impl->enableStereoPos;
   292 
   290 
   293     DEBUG_API("<-XANokiaVolumeExtItfImpl_IsEnabledStereoPosition");
   291     DEBUG_API("<-XANokiaVolumeExtItfImpl_IsEnabledStereoPosition");
   294     return ret;
   292     return ret;
   295 }
   293     }
   296 
   294 
   297 /**
   295 /**
   298  * XAresult XANokiaVolumeExtItfImpl_SetStereoPosition(XANokiaVolumeExtItf self,
   296  * XAresult XANokiaVolumeExtItfImpl_SetStereoPosition(XANokiaVolumeExtItf self,
   299  *                                            XApermille stereoPosition)
   297  *                                            XApermille stereoPosition)
   300  * Description: Sets the stereo position of the object.
   298  * Description: Sets the stereo position of the object.
   301  **/
   299  **/
   302 XAresult XANokiaVolumeExtItfImpl_SetStereoPosition(XANokiaVolumeExtItf self,
   300 XAresult XANokiaVolumeExtItfImpl_SetStereoPosition(XANokiaVolumeExtItf self,
   303                                            XApermille stereoPosition)
   301         XApermille stereoPosition)
   304 {
   302     {
   305     XAresult ret = XA_RESULT_SUCCESS;
   303     XAresult ret = XA_RESULT_SUCCESS;
   306     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   304     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   307     DEBUG_API("->XANokiaVolumeExtItfImpl_SetStereoPosition");
   305     DEBUG_API("->XANokiaVolumeExtItfImpl_SetStereoPosition");
   308 
   306 
   309     if(!impl || (stereoPosition < STEREO_POSITION_LEFT) ||
   307     if (!impl || (stereoPosition < STEREO_POSITION_LEFT) || (stereoPosition
   310         (stereoPosition > STEREO_POSITION_RIGHT))
   308             > STEREO_POSITION_RIGHT))
   311     {
   309         {
   312         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   310         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_SetStereoPosition");
   313         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetStereoPosition");
   311         /* invalid parameter */
   314         /* invalid parameter */
   312         return XA_RESULT_PARAMETER_INVALID;
   315         return XA_RESULT_PARAMETER_INVALID;
   313         }
   316     }
       
   317 
   314 
   318     impl->stereoPosition = stereoPosition;
   315     impl->stereoPosition = stereoPosition;
   319 
   316 
   320     ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
   317     ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
   321     if( ret == XA_RESULT_PARAMETER_INVALID || ret == XA_RESULT_PRECONDITIONS_VIOLATED )
   318     if (ret == XA_RESULT_PARAMETER_INVALID || ret
   322     {
   319             == XA_RESULT_PRECONDITIONS_VIOLATED)
       
   320         {
   323         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetStereoPosition");
   321         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetStereoPosition");
   324         return ret;
   322         return ret;
   325     }
   323         }
   326     /* check is stereo position effect enabled if is then handle effect */
   324     /* check is stereo position effect enabled if is then handle effect */
   327     if(impl->enableStereoPos)
   325     if (impl->enableStereoPos)
   328     {
   326         {
   329     if(impl->adapCtx->fwtype == FWMgrFWMMF)
   327         if (impl->adapCtx->fwtype == FWMgrFWMMF)
   330         {
   328             {
   331         ret = XANokiaVolumeExtItfAdapt_SetStereoPosition((XAAdaptationMMFCtx*)impl->adapCtx,
   329             ret = XANokiaVolumeExtItfAdapt_SetStereoPosition(
   332                                                  stereoPosition);
   330                     (XAAdaptationMMFCtx*) impl->adapCtx, stereoPosition);
   333         
   331 
   334         }
   332             }
   335     }
   333         }
   336 
   334 
   337     XAAdaptationBase_ThreadExit(impl->adapCtx);
   335     XAAdaptationBase_ThreadExit(impl->adapCtx);
   338     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetStereoPosition");
   336     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetStereoPosition");
   339     return ret;
   337     return ret;
   340 }
   338     }
   341 
   339 
   342 /**
   340 /**
   343  * XAresult XANokiaVolumeExtItfImpl_GetStereoPosition(XANokiaVolumeExtItf self,
   341  * XAresult XANokiaVolumeExtItfImpl_GetStereoPosition(XANokiaVolumeExtItf self,
   344  *                                            XApermille *pStereoPosition)
   342  *                                            XApermille *pStereoPosition)
   345  * Description: Gets the object’s stereo position setting.
   343  * Description: Gets the object’s stereo position setting.
   346  **/
   344  **/
   347 XAresult XANokiaVolumeExtItfImpl_GetStereoPosition(XANokiaVolumeExtItf self,
   345 XAresult XANokiaVolumeExtItfImpl_GetStereoPosition(XANokiaVolumeExtItf self,
   348                                            XApermille *pStereoPosition)
   346         XApermille *pStereoPosition)
   349 {
   347     {
   350     XAresult ret = XA_RESULT_SUCCESS;
   348     XAresult ret = XA_RESULT_SUCCESS;
   351     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   349     XANokiaVolumeExtItfImpl *impl = GetImpl(self);
   352     DEBUG_API("->XANokiaVolumeExtItfImpl_GetStereoPosition");
   350     DEBUG_API("->XANokiaVolumeExtItfImpl_GetStereoPosition");
   353 
   351 
   354     if(!impl || !pStereoPosition)
   352     if (!impl || !pStereoPosition)
   355     {
   353         {
   356         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   354         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaVolumeExtItfImpl_GetStereoPosition");
   357         DEBUG_API("<-XANokiaVolumeExtItfImpl_GetStereoPosition");
   355         /* invalid parameter */
   358         /* invalid parameter */
   356         return XA_RESULT_PARAMETER_INVALID;
   359         return XA_RESULT_PARAMETER_INVALID;
   357         }
   360     }
       
   361 
   358 
   362     *pStereoPosition = impl->stereoPosition;
   359     *pStereoPosition = impl->stereoPosition;
   363 
   360 
   364     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetStereoPosition");
   361     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetStereoPosition");
   365     return ret;
   362     return ret;
   366 }
   363     }
   367 
   364 
   368 XAresult XANokiaVolumeExtItfImpl_SetCallbackEventsMask(XANokiaVolumeExtItf self, XAuint32 eventFlags )
   365 XAresult XANokiaVolumeExtItfImpl_SetCallbackEventsMask(
       
   366         XANokiaVolumeExtItf self, XAuint32 eventFlags)
   369     {
   367     {
   370     XAresult ret = XA_RESULT_SUCCESS;
   368     XAresult ret = XA_RESULT_SUCCESS;
   371     XANokiaVolumeExtItfImpl* impl = GetImpl(self);
   369     XANokiaVolumeExtItfImpl* impl = GetImpl(self);
   372     DEBUG_API("->XANokiaVolumeExtItfImpl_SetCallbackEventsMask");
   370     DEBUG_API("->XANokiaVolumeExtItfImpl_SetCallbackEventsMask");
   373 
   371 
   374     if(!impl)
   372     if (!impl)
   375     {
   373         {
   376         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   374         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   377         /* invalid parameter */
   375         /* invalid parameter */
   378         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetCallbackEventsMask");
   376         DEBUG_API("<-XANokiaVolumeExtItfImpl_SetCallbackEventsMask");
   379         return XA_RESULT_PARAMETER_INVALID;
   377         return XA_RESULT_PARAMETER_INVALID;
   380     }
   378         }
   381 
   379 
   382     impl->eventFlags = eventFlags;
   380     impl->eventFlags = eventFlags;
   383 
   381 
   384     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetCallbackEventsMask");
   382     DEBUG_API("<-XANokiaVolumeExtItfImpl_SetCallbackEventsMask");
   385     return ret;    
   383     return ret;
   386     }
   384     }
   387 
   385 
   388 XAresult XANokiaVolumeExtItfImpl_GetCallbackEventsMask(XANokiaVolumeExtItf self, XAuint32 * pEventFlags)
   386 XAresult XANokiaVolumeExtItfImpl_GetCallbackEventsMask(
       
   387         XANokiaVolumeExtItf self, XAuint32 * pEventFlags)
   389     {
   388     {
   390     XAresult ret = XA_RESULT_SUCCESS;
   389     XAresult ret = XA_RESULT_SUCCESS;
   391     XANokiaVolumeExtItfImpl* impl = GetImpl(self);
   390     XANokiaVolumeExtItfImpl* impl = GetImpl(self);
   392     DEBUG_API("->XANokiaVolumeExtItfImpl_GetCallbackEventsMask");
   391     DEBUG_API("->XANokiaVolumeExtItfImpl_GetCallbackEventsMask");
   393 
   392 
   394     if(!impl || !pEventFlags)
   393     if (!impl || !pEventFlags)
   395     {
   394         {
   396         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   395         DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
   397         /* invalid parameter */
   396         /* invalid parameter */
   398         DEBUG_API("<-XANokiaVolumeExtItfImpl_GetCallbackEventsMask");
   397         DEBUG_API("<-XANokiaVolumeExtItfImpl_GetCallbackEventsMask");
   399         return XA_RESULT_PARAMETER_INVALID;
   398         return XA_RESULT_PARAMETER_INVALID;
   400     }
   399         }
   401 
   400 
   402     *pEventFlags = impl->eventFlags;
   401     *pEventFlags = impl->eventFlags;
   403 
   402 
   404     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetCallbackEventsMask");
   403     DEBUG_API("<-XANokiaVolumeExtItfImpl_GetCallbackEventsMask");
   405     return ret;    
   404     return ret;
   406     }
   405     }
   407 
       
   408 
   406 
   409 /**
   407 /**
   410  * XANokiaVolumeExtItfImpl -specific methods
   408  * XANokiaVolumeExtItfImpl -specific methods
   411  **/
   409  **/
   412 
   410 
   413 /**
   411 /**
   414  * XANokiaVolumeExtItfImpl* XANokiaVolumeExtItfImpl_Create()
   412  * XANokiaVolumeExtItfImpl* XANokiaVolumeExtItfImpl_Create()
   415  * Description: Allocate and initialize VolumeItfImpl
   413  * Description: Allocate and initialize VolumeItfImpl
   416  **/
   414  **/
   417 XANokiaVolumeExtItfImpl* XANokiaVolumeExtItfImpl_Create(XAAdaptationBaseCtx *adapCtx )
   415 XANokiaVolumeExtItfImpl* XANokiaVolumeExtItfImpl_Create(
   418 {
   416         XAAdaptationBaseCtx *adapCtx)
   419     XANokiaVolumeExtItfImpl *self = (XANokiaVolumeExtItfImpl*)
   417     {
   420         calloc(1,sizeof(XANokiaVolumeExtItfImpl));
   418     XANokiaVolumeExtItfImpl *self = (XANokiaVolumeExtItfImpl*) calloc(1,
       
   419             sizeof(XANokiaVolumeExtItfImpl));
   421     DEBUG_API("->XANokiaVolumeExtItfImpl_Create");
   420     DEBUG_API("->XANokiaVolumeExtItfImpl_Create");
   422 
   421 
   423     if(self)
   422     if (self)
   424     {
   423         {
   425         /* init itf default implementation */
   424         /* init itf default implementation */
   426         self->itf.EnableStereoPosition = XANokiaVolumeExtItfImpl_EnableStereoPosition;
   425         self->itf.EnableStereoPosition
   427         self->itf.GetMaxVolumeLevel = XANokiaVolumeExtItfImpl_GetMaxVolumeLevel;
   426                 = XANokiaVolumeExtItfImpl_EnableStereoPosition;
       
   427         self->itf.GetMaxVolumeLevel
       
   428                 = XANokiaVolumeExtItfImpl_GetMaxVolumeLevel;
   428         self->itf.GetMute = XANokiaVolumeExtItfImpl_GetMute;
   429         self->itf.GetMute = XANokiaVolumeExtItfImpl_GetMute;
   429         self->itf.GetStereoPosition = XANokiaVolumeExtItfImpl_GetStereoPosition;
   430         self->itf.GetStereoPosition
       
   431                 = XANokiaVolumeExtItfImpl_GetStereoPosition;
   430         self->itf.GetVolumeLevel = XANokiaVolumeExtItfImpl_GetVolumeLevel;
   432         self->itf.GetVolumeLevel = XANokiaVolumeExtItfImpl_GetVolumeLevel;
   431         self->itf.IsEnabledStereoPosition = XANokiaVolumeExtItfImpl_IsEnabledStereoPosition;
   433         self->itf.IsEnabledStereoPosition
       
   434                 = XANokiaVolumeExtItfImpl_IsEnabledStereoPosition;
   432         self->itf.SetMute = XANokiaVolumeExtItfImpl_SetMute;
   435         self->itf.SetMute = XANokiaVolumeExtItfImpl_SetMute;
   433         self->itf.SetStereoPosition = XANokiaVolumeExtItfImpl_SetStereoPosition;
   436         self->itf.SetStereoPosition
       
   437                 = XANokiaVolumeExtItfImpl_SetStereoPosition;
   434         self->itf.SetVolumeLevel = XANokiaVolumeExtItfImpl_SetVolumeLevel;
   438         self->itf.SetVolumeLevel = XANokiaVolumeExtItfImpl_SetVolumeLevel;
   435        	self->itf.RegisterVolumeCallback = XANokiaVolumeExtItfImpl_RegisterVolumeCallback;
   439         self->itf.RegisterVolumeCallback
   436        	self->itf.SetCallbackEventsMask = XANokiaVolumeExtItfImpl_SetCallbackEventsMask;
   440                 = XANokiaVolumeExtItfImpl_RegisterVolumeCallback;
   437        	self->itf.GetCallbackEventsMask = XANokiaVolumeExtItfImpl_GetCallbackEventsMask;
   441         self->itf.SetCallbackEventsMask
       
   442                 = XANokiaVolumeExtItfImpl_SetCallbackEventsMask;
       
   443         self->itf.GetCallbackEventsMask
       
   444                 = XANokiaVolumeExtItfImpl_GetCallbackEventsMask;
   438 
   445 
   439         /* init variables */
   446         /* init variables */
   440         self->volumeLevel = 0;
   447         self->volumeLevel = 0;
   441         self->mute = XA_BOOLEAN_FALSE;
   448         self->mute = XA_BOOLEAN_FALSE;
   442         self->enableStereoPos = XA_BOOLEAN_FALSE;
   449         self->enableStereoPos = XA_BOOLEAN_FALSE;
   443         self->stereoPosition = STEREO_POSITION_CENTER;
   450         self->stereoPosition = STEREO_POSITION_CENTER;
   444 
   451 
   445         self->adapCtx = adapCtx;
   452         self->adapCtx = adapCtx;
   446 
   453 
   447         XAAdaptationBase_AddEventHandler(adapCtx, &XANokiaVolumeExtItfImpl_AdaptCb, XA_NOKIAEXTVOLITFEVENTS, self );
   454         XAAdaptationBase_AddEventHandler(adapCtx,
   448         
   455                 &XANokiaVolumeExtItfImpl_AdaptCb, XA_NOKIAEXTVOLITFEVENTS,
       
   456                 self);
       
   457 
   449         self->self = self;
   458         self->self = self;
   450     }
   459         }
   451 
   460 
   452     DEBUG_API("<-XANokiaVolumeExtItfImpl_Create");
   461     DEBUG_API("<-XANokiaVolumeExtItfImpl_Create");
   453     return self;
   462     return self;
   454 }
   463     }
   455 
   464 
   456 /**
   465 /**
   457  * void XANokiaVolumeExtItfImpl_Free(XANokiaVolumeExtItfImpl* self)
   466  * void XANokiaVolumeExtItfImpl_Free(XANokiaVolumeExtItfImpl* self)
   458  * Description: Free all resources reserved at XANokiaVolumeExtItfImpl_Create
   467  * Description: Free all resources reserved at XANokiaVolumeExtItfImpl_Create
   459  **/
   468  **/
   460 void XANokiaVolumeExtItfImpl_Free(XANokiaVolumeExtItfImpl* self)
   469 void XANokiaVolumeExtItfImpl_Free(XANokiaVolumeExtItfImpl* self)
   461 {
   470     {
   462     DEBUG_API("->XANokiaVolumeExtItfImpl_Free");
   471     DEBUG_API("->XANokiaVolumeExtItfImpl_Free");
   463     assert(self==self->self);
   472     assert(self==self->self);
   464     free(self);
   473     free(self);
   465     DEBUG_API("<-XANokiaVolumeExtItfImpl_Free");
   474     DEBUG_API("<-XANokiaVolumeExtItfImpl_Free");
   466 }
   475     }
   467 
   476 
   468 /* void XANokiaVolumeExtItfimpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event )
   477 /* void XANokiaVolumeExtItfimpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event )
   469  * Description: Event handler for adaptation events
   478  * Description: Event handler for adaptation events
   470  */
   479  */
   471 void XANokiaVolumeExtItfImpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event )
   480 void XANokiaVolumeExtItfImpl_AdaptCb(void *pHandlerCtx, XAAdaptEvent *event)
   472 {
   481     {
   473     XANokiaVolumeExtItfImpl* impl =(XANokiaVolumeExtItfImpl*)pHandlerCtx;
   482     XANokiaVolumeExtItfImpl* impl = (XANokiaVolumeExtItfImpl*) pHandlerCtx;
   474     XAboolean eventBoolean = XA_BOOLEAN_FALSE;
   483     XAboolean eventBoolean = XA_BOOLEAN_FALSE;
   475     
   484 
   476     DEBUG_API("->XANokiaVolumeExtItfimpl_AdaptCb");
   485     DEBUG_API("->XANokiaVolumeExtItfimpl_AdaptCb");
   477 
   486 
   478     if(!impl)
   487     if (!impl)
   479     {
   488         {
   480         DEBUG_ERR("XANokiaVolumeExtItfImpl_AdaptCb, invalid context pointer!");
   489         DEBUG_ERR("XANokiaVolumeExtItfImpl_AdaptCb, invalid context pointer!");DEBUG_API("<-XANokiaVolumeExtItfImpl_AdaptCb");
   481         DEBUG_API("<-XANokiaVolumeExtItfImpl_AdaptCb");
       
   482         return;
   490         return;
   483     }
   491         }
   484     assert(event);
   492     assert(event);
   485     
   493 
   486     if( event->eventid == XA_ADAPT_VOLUME_MUTE_CHANGED && impl->callback )
   494     if (event->eventid == XA_ADAPT_VOLUME_MUTE_CHANGED && impl->callback)
   487     {
   495         {
   488         if(impl->eventFlags & XA_NOKIAVOLUMEEXT_EVENT_MUTE_CHANGED)
   496         if (impl->eventFlags & XA_NOKIAVOLUMEEXT_EVENT_MUTE_CHANGED)
   489             {
   497             {
   490             DEBUG_API("Mute Status  changed in adaptation");
   498             DEBUG_API("Mute Status  changed in adaptation");
   491             eventBoolean = *(XAboolean*)event->data;    
   499             eventBoolean = *(XAboolean*) event->data;
   492             impl->callback( impl->cbPtrToSelf, impl->context, XA_NOKIAVOLUMEEXT_EVENT_MUTE_CHANGED, eventBoolean  );
   500             impl->callback(impl->cbPtrToSelf, impl->context,
   493             }
   501                     XA_NOKIAVOLUMEEXT_EVENT_MUTE_CHANGED, eventBoolean);
   494     }
   502             }
   495        
   503         }
       
   504 
   496     else if (event->eventid == XA_ADAPT_VOLUME_VOLUME_CHANGED)
   505     else if (event->eventid == XA_ADAPT_VOLUME_VOLUME_CHANGED)
   497     {
   506         {
   498         if(impl->eventFlags & XA_NOKIAVOLUMEEXT_EVENT_VOLUME_CHANGED)
   507         if (impl->eventFlags & XA_NOKIAVOLUMEEXT_EVENT_VOLUME_CHANGED)
   499             {
   508             {
   500             DEBUG_API("Volume Status  changed in adaptation");
   509             DEBUG_API("Volume Status  changed in adaptation");
   501             eventBoolean = *(XAboolean*)event->data;    
   510             eventBoolean = *(XAboolean*) event->data;
   502             impl->callback( impl->cbPtrToSelf, impl->context, XA_NOKIAVOLUMEEXT_EVENT_VOLUME_CHANGED, eventBoolean  );
   511             impl->callback(impl->cbPtrToSelf, impl->context,
   503             }
   512                     XA_NOKIAVOLUMEEXT_EVENT_VOLUME_CHANGED, eventBoolean);
   504     }
   513             }
       
   514         }
   505     else if (event->eventid == XA_ADAPT_VULOME_STEREOPOSITION_CHANGED)
   515     else if (event->eventid == XA_ADAPT_VULOME_STEREOPOSITION_CHANGED)
   506     {
   516         {
   507         if(impl->eventFlags & XA_NOKIAVOLUMEEXT_EVENT_STEREO_POSITION_CHANGED)
   517         if (impl->eventFlags
       
   518                 & XA_NOKIAVOLUMEEXT_EVENT_STEREO_POSITION_CHANGED)
   508             {
   519             {
   509             DEBUG_API("StereoPosituin Status  changed in adaptation");
   520             DEBUG_API("StereoPosituin Status  changed in adaptation");
   510             eventBoolean = *(XAboolean*)event->data;    
   521             eventBoolean = *(XAboolean*) event->data;
   511             impl->callback( impl->cbPtrToSelf, impl->context, XA_NOKIAVOLUMEEXT_EVENT_STEREO_POSITION_CHANGED, eventBoolean  );
   522             impl->callback(impl->cbPtrToSelf, impl->context,
   512             }
   523                     XA_NOKIAVOLUMEEXT_EVENT_STEREO_POSITION_CHANGED,
   513     }
   524                     eventBoolean);
   514     
   525             }
       
   526         }
       
   527 
   515     DEBUG_API("<-XANokiaVolumeExtItfimpl_AdaptCb");
   528     DEBUG_API("<-XANokiaVolumeExtItfimpl_AdaptCb");
   516 }
   529     }