uiacceltk/hitchcock/Client/src/alftransformationsubsession.cpp
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/Client/src/alftransformationsubsession.cpp	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,236 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Sub-session for transformation
+*
+*/
+
+
+
+#include "alftransformationsubsession.h"
+#include "alf/alfconstants.h"
+#include "alflogger.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Opens subsession
+// ---------------------------------------------------------------------------
+//
+TInt RAlfTransformationSubSession::Open( RAlfClient& aSession )
+    {
+    TAlfImplementationInformation info(EAlfTransformationSubSessionOpen);
+    TPckgC<TAlfImplementationInformation> infoBuf(info);
+
+
+    return CreateSubSession( 
+        aSession,
+        EAlfCreateSubSession,
+        TIpcArgs(&infoBuf) );
+    }
+ 
+// ---------------------------------------------------------------------------
+// Closes subsession
+// ---------------------------------------------------------------------------
+//   
+void RAlfTransformationSubSession::Close()
+    {
+    CloseSubSession( EAlfCloseSubSession );
+    }
+    
+// ---------------------------------------------------------------------------
+// Loads identity matrix i.e. resets.
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::LoadIdentity()
+    {
+    Send/*Receive*/(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs( EAlfTransformationLoadIdentity ) );
+    __ALFLOGSTRING( "RAlfTransformationSubSession::LoadIdentity sent" )
+    }
+    
+// ---------------------------------------------------------------------------
+// 2D translate.
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::Translate( 
+    TReal32 aX, 
+    TReal32 aY )
+    {
+    TPckg<TReal32> xRealPckg(aX);
+    TPckg<TReal32> yRealPckg(aY);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs( EAlfTransformationTranslate, &xRealPckg, &yRealPckg ) );
+        
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Translate ignore error %d", err )
+        }
+    }
+    
+// ---------------------------------------------------------------------------
+// 2D rotation.
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::Rotate( const TAlfTimedValue& aAngle )
+    {
+    TPckgC<TAlfTimedValue> anglePckg(aAngle);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationRotate, &anglePckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Rotate ignore error %d", err )
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+TInt RAlfTransformationSubSession::Count() const
+    {
+    TInt retVal = 0;
+    TPckg<TInt> retValPckg(retVal);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationCount, &retValPckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Count ignore error %d", err )
+        }       
+    return retVal;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+TInt RAlfTransformationSubSession::NonIdentityCount() const
+    {
+    TInt retVal = 0;
+    TPckg<TInt> retValPckg(retVal);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationNonIdentityCount, &retValPckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::NonIdentityCount ignore error %d", err )
+        }                   
+    return retVal;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+CAlfTransformation::TTransform RAlfTransformationSubSession::Step(TInt aIndex)
+    {
+    CAlfTransformation::TTransform retVal;
+    TPckg<CAlfTransformation::TTransform> retValPckg(retVal);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationStep, aIndex, &retValPckg) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Step ignore error %d", err )
+        }                  
+    return retVal;        
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::ReplaceStep(TInt aIndex, 
+    CAlfTransformation::TTransform aTransformationStep)
+    {
+    TPckg<CAlfTransformation::TTransform> inputValPckg(aTransformationStep);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationReplaceStep, aIndex, &inputValPckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::ReplaceStep ignore error %d", err )
+        }               
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::Rotate(const TAlfTimedValue& aAngle, 
+                         TReal32 aAxisX, TReal32 aAxisY, TReal32 aAxisZ)
+    {
+    TAlfTransformationRotateParams params;
+    params.iAngle = aAngle;
+    params.iAxisX = aAxisX;
+    params.iAxisY = aAxisY;
+    params.iAxisZ = aAxisZ;
+    
+    TPckg<TAlfTransformationRotateParams> inputValPckg(params);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationRotate3D, &inputValPckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Rotate ignore error %d", err )
+        }                   
+        
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::Translate(const TAlfTimedValue& aX, 
+    const TAlfTimedValue& aY)
+    {
+    TAlfTransformationTimedParams params;
+    params.iX = aX;
+    params.iY = aY;
+    
+    TPckg<TAlfTransformationTimedParams> inputValPckg(params);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationTranslate2D, &inputValPckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Translate ignore error %d", err )
+        }                               
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+// 
+void RAlfTransformationSubSession::Scale(const TAlfTimedValue& aX, 
+    const TAlfTimedValue& aY, const TAlfTimedValue& aZ)
+    {
+    TAlfTransformationTimedParams params;
+    params.iX = aX;
+    params.iY = aY;
+    params.iZ = aZ;
+    
+    TPckg<TAlfTransformationTimedParams> inputValPckg(params);
+    TInt err = SendReceive(
+        EAlfDoSubSessionCmd, 
+        TIpcArgs(EAlfTransformationScale, &inputValPckg ) );
+    if ( err )
+        {
+        __ALFLOGSTRING1( "RAlfTransformationSubSession::Scale ignore error %d", err )
+        }                   
+        
+    }