serviceproviders/sapi_sensor/sensorservice/src/sensorservice.cpp
changeset 26 5d0ec8b709be
parent 5 989d2f495d90
child 27 02682e02e51f
--- a/serviceproviders/sapi_sensor/sensorservice/src/sensorservice.cpp	Tue Nov 24 08:56:33 2009 +0200
+++ b/serviceproviders/sapi_sensor/sensorservice/src/sensorservice.cpp	Thu Dec 17 09:09:50 2009 +0200
@@ -240,4 +240,37 @@
 		}
 			
 	}
-	
+/*
+-----------------------------------------------------------------------------
+    CSensorService::GetScaleFactorL()
+    Description   : Get property of specified channel
+    Return values : NA
+-----------------------------------------------------------------------------
+*/  
+
+EXPORT_C void CSensorService::GetScaleFactorL(const TSensrvChannelInfo& aChannelInfo, 
+                          TSensrvProperty& aMeasureRange,TSensrvProperty& aScaleRange)
+    {
+    TInt index;
+    //Channel Id of the specified channel in the inpiut parameter
+    TUint32 channelId = aChannelInfo.iChannelId;
+    //Find if specified channel is already opened
+    if ( ( IsChannelOpen( channelId,index ) ) )
+        {
+        iChannelList[index]->GetPropertyL( KSensrvPropIdMeasureRange,-1, aMeasureRange );
+        iChannelList[index]->GetPropertyL( KSensrvPropIdScaledRange,-1, aScaleRange );
+        }
+    //else open new channel and get property change listener for it
+     else
+        {
+        CSensrvChannel* sensorChannel = CSensrvChannel::NewL( aChannelInfo );
+        CleanupStack::PushL( sensorChannel );
+        //open requested channel
+        sensorChannel->OpenChannelL();
+        sensorChannel->GetPropertyL( KSensrvPropIdMeasureRange,-1, aMeasureRange );
+        sensorChannel->GetPropertyL( KSensrvPropIdScaledRange,-1, aScaleRange );
+        sensorChannel->CloseChannel();
+        CleanupStack::PopAndDestroy( sensorChannel );
+        }
+            
+    }