khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c
changeset 32 94fc26b6e006
parent 31 8dfd592727cb
child 33 5e8b14bae8c3
--- a/khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c	Wed Jun 23 18:47:10 2010 +0300
+++ b/khronosfws/openmax_al/src/common/xanokialinearvolumeitf.c	Tue Jul 06 14:50:35 2010 +0300
@@ -89,7 +89,8 @@
 
     if ((!impl) || (vol > MAX_PERCENTAGE_VOLUME))
         {
-        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");DEBUG_API("<-XANokiaLinearVolumeItfImpl_SetVolumeLevel");
+        DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
+        DEBUG_API("<-XANokiaLinearVolumeItfImpl_SetVolumeLevel");
         /* invalid parameter */
         return XA_RESULT_PARAMETER_INVALID;
         }
@@ -130,7 +131,20 @@
         return XA_RESULT_PARAMETER_INVALID;
         }
 
-    *percentage = impl->volumeLevel;
+    ret = XAAdaptationBase_ThreadEntry(impl->adapCtx);
+    if (ret == XA_RESULT_SUCCESS)
+        {
+        if (impl->adapCtx && impl->adapCtx->fwtype == FWMgrFWMMF)
+            {
+            ret = XANokiaLinearVolumeItfAdapt_GetVolumeLevel(
+                    (XAAdaptationMMFCtx*) impl->adapCtx, percentage);
+            if (ret == XA_RESULT_SUCCESS)
+                {
+                impl->volumeLevel = *percentage;
+                }
+            }
+        XAAdaptationBase_ThreadExit(impl->adapCtx);
+        }
 
     DEBUG_API("<-XANokiaLinearVolumeItfImpl_GetVolumeLevel");
     return ret;