uiacceltk/hitchcock/plugins/alftranseffect/alftfxserverplugin/inc/alftfxserverdef.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/plugins/alftranseffect/alftfxserverplugin/inc/alftfxserverdef.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,289 @@
+/*
+* 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:   TFX server definitions. Contains various names and numbers
+*                used in the server.
+*
+*/
+
+
+#ifndef _SERVERDEF_H_
+#define _SERVERDEF_H_
+
+#include <e32base.h>
+
+_LIT(KTfxServerName,"TfxServer");
+_LIT(KTfxServerImageName, "TfxServer");
+_LIT(KAnyName, "*");
+
+/** transition server version numbers */
+const TInt KTfxServerMajorVN = 0;
+const TInt KTfxServerMinorVN = 6;
+const TInt KTfxServerBuildVN = 0;
+
+/** transition server uid */
+const TUid KTfxServerUid = { 0x10281F7D };
+
+/** RProperty value for server status */
+const TUint KTfxServerStatus = 0x10281F7D; 
+
+/** transition server stack size */
+const TInt KTfxServerStackSize = KDefaultStackSize;
+/** transition server minimum heap size */
+const TInt KTfxServerHeapMinSize = 64*1024; //64KB
+/** transition server maximum heap size */
+const TInt KTfxServerHeapMaxSize = 4*1024*1024; //4MB
+
+/** The time between start of frames the engine will try to keep, in ms. (1000/fps) */
+const TInt KDefaultWantedTime = 67;
+/** The minimum time between end of a frame to start of next frame allowed, in ms
+    increase this to give more time to other threads.
+    A high number will decrease framerate on complex scenes. */
+const TInt KDefaultMinTime = 22;
+
+/* 
+    default values for cache size
+    see TCacheSizeProperties for comments
+*/
+const TInt KDefaultMaxBytesOngoing = 1024*1024; // 1MB
+const TInt KDefaultMaxBytesBetween = 0; //
+
+/*
+    The maximum cache size between effects
+    if the phone is low on ram
+*/
+const TInt KLowMemoryMaxBytesBetween = 0; 
+
+/** priority of repository handler. Has to be higher then message loop to ensure repository changes are heeded */
+const TInt KTfxServerRepositoryHandler = 110; 
+/** priority of CServer2 object. only repository handler is higher. */
+const TInt KTfxServerMessageLoopPrio = 100;
+/** priority of frame timer. needs to be kept high, but lower then message loop */
+const TInt KTfxServerFrameTimerPrio = 80;
+/** priority of the requesthandler. needs to be higher then the frame timer, but lower then message loop */
+const TInt KTfxServerRequestHandlerPrio = 90;
+
+/** microseconds to wait after InitControltransition before assuming client has failed */
+const TInt KStartControlTransitionTimeout = 2000000;  //2s
+
+/** Window Server Secure ID */
+const TInt KWServSID = 268450592;
+
+/**  Nokia VID: = VID_DEFAULT */
+const TInt KNokiaVID  = 0x101FB657;
+
+/** Ranges for TFX messages */
+const TInt KTfxRanges[] =
+    {
+    0, //range is 0-10 inclusive
+    10, //range is 11-254 inclusive
+    255 // message 255 (shutdown)
+    };
+
+/** Element Indexes for PolicyElement */  
+const TUint8 KTfxElementsIndex[] =
+    {
+    0,                             
+    CPolicyServer::EAlwaysPass,
+    1
+    };
+
+/** Policy Elements */
+const CPolicyServer::TPolicyElement KTfxElements[] =
+    {
+    {_INIT_SECURITY_POLICY_S0(KWServSID), CPolicyServer::EFailClient},
+    {_INIT_SECURITY_POLICY_V0(KNokiaVID), CPolicyServer::EFailClient}
+    };
+
+/** Policy definition */    
+const CPolicyServer::TPolicy KTfxPolicy =
+    {
+    CPolicyServer::EAlwaysPass, //specifies all connect attempts should pass
+    sizeof(KTfxRanges) / sizeof(TInt),                   
+    KTfxRanges,
+    KTfxElementsIndex,
+    KTfxElements,
+    };
+
+/** opcodes used in message passing between client and server */
+enum TTfxServerServRqst
+    {
+//Wserv only:
+	ETfxServerOpRegisterControlDrawer, //0
+	ETfxServerOpDeregisterControlDrawer,
+//Wserv only:
+	ETfxServerOpStartTransition,
+	ETfxServerOpFullscreenBegin,
+	ETfxServerOpFullscreenEnd,         
+//Wserv only:
+	ETfxServerOpDSABegin,              //5
+	ETfxServerOpDSAEnd,
+//Wserv only:
+	ETfxServerOpFailedControlTransition,
+//Wserv only:
+	ETfxServerOpReqUnredirEvent,
+	ETfxServerOpCancelUnredirEvent,
+//Any thread:
+	ETfxServerOpSendStartTick,         //10
+	ETfxServerOpRequestFinishedEvent,
+//Any thread:
+	ETfxServerOpFullscreenAbort,
+	ETfxServerOpControlPolicyUpdate,
+	ETfxServerOpBeginGroup,
+	ETfxServerOpEndGroup,			   //15
+	ETfxServerOpAddFullscreenKML,      
+	ETfxServerOpRemoveFullscreenKML,
+	ETfxServerOpControlPolicyRemove,
+	ETfxServerOpControlPolicyGet,      //20
+	ETfxServerOpControlPolicyRequest,  
+	ETfxServerOpBlockFullscreenUid,
+	ETfxServerOpRegisterControlKml,
+	ETfxServerOpRemoveControlKml,
+	ETfxServerOpControlCancelPolicyUpdate, //25
+//Any thread:
+	ETfxServerOpSetWantedTime,
+	ETfxServerOpSetMinTime,
+	ETfxServerVerifyConnection,
+	ETfxServerOpAddFullscreenKMLEx,    
+//Any thread:
+	ETfxServerOpDumpClients,              //30
+//Any thread:
+    ETfxServerOpHandover,
+    ETfxServerOpUpdateLiveBuffer,
+    ETfxServerOpControlTransitionAbort,
+    ETfxServerOpRemoveAllKml,
+    ETfxServerOpFreeRam,
+    ETfxServerOpMemoryGood,            //36
+    ETfxServerOpRegisterControlKmlEx,
+    ETfxServerOpControlSetFrameTime,
+    ETfxServerOpControlSetMinFrameTime,
+// ListBox opcodes
+    ETfxServerOpListBoxStart = 100,
+    ETfxServerOpListBoxRegister,
+    ETfxServerOpListBoxMakeMove,
+    ETfxServerOpListBoxGetObsoleteItems,
+    ETfxServerOpListBoxRequestFrame,
+    ETfxServerOpListBoxGetDirtyRect,
+    ETfxServerOpListBoxInvalidate,
+    ETfxServerOpListBoxSetFrameTime,
+    ETfxServerOpListBoxSetMinFrameTime,
+    ETfxServerOpListBoxDeregister,
+    ETfxServerOpListBoxVerifyKML,
+    ETfxServerOpListBoxSetBorderDims,
+    ETfxServerOpListBoxRegisterKML,
+    ETfxServerOpListBoxUnregisterKML,
+    ETfxServerOpListBoxInPosition,
+    ETfxServerOpListBoxSetDrawing,
+#ifdef RD_UI_TRANSITION_EFFECTS_TOUCH_P2
+    ETfxServerOpListBoxLongTapStart,
+    ETfxServerOpListBoxLongTapEnd,
+#endif
+
+    ETfxServerOpListBoxEnd,
+ // Shutdown
+    ETfxServerOpShutdown = 255
+    };
+
+enum TTfxServPanic
+    {
+    EAlreadyRegistered,
+    ENotRegistered
+    };
+
+/**
+* This is a utility class that retrieves the name and version number 
+* of the tfxserver. 
+*/
+class KSCliDefinitions
+    {
+public:
+    static const TDesC&			ServerAndThreadName();
+    static const TDesC&						ServerImageName();
+    static TUidType							ServerUidType();
+    static TVersion							Version();
+};
+
+/**
+ * Holds animation and cache priority information of a fullscreen transition
+ */
+class TFullscreenInfo
+	{
+public:
+	TFullscreenInfo();
+	TFullscreenInfo(TInt aActionId, TInt aCachePriority, TInt aWantedTime, TInt aMinTime);
+	TInt iActionId;
+	TInt iCachePriority;
+	TInt iWantedTime;
+	TInt iMinTime;
+	};
+
+/**
+ * Holds cache size properties
+ */
+class TCacheSizeProperties
+	{
+public:
+/* 
+	Maximum amount of bytes that may be cached while a transition
+	is ongoing. If this value is less than the total size of the 
+	decoded images in the effect the images has to be decoded every 
+	frame which will have a huge impact on performance.
+	Default is KDefaultMaxBytesOngoing
+*/
+    TInt32 iMaxBytesOngoing; 
+/*
+    Maximum amount of bytes that may be cached when a transition
+    is not ongoing.
+    Default is KDefaultMaxBytesBetween.
+*/
+    TInt32 iMaxBytesBetween;
+    };
+
+struct TParticipantInfo
+  {
+  TPoint iTl;
+  TInt iBitmapHandle;
+  TUint32 iId;
+  };
+  
+struct TWantedTimes
+{
+	TInt32 iWantedTime  : 16;
+	TInt32 iMinTime 	: 16;
+};
+
+union TWantedTimesPacked
+{
+	struct TWantedTimes times;
+	TInt32 packed;
+};
+
+const TUint KMaxDirtyRegions = 5;
+
+/**
+ * The time between start of frames the engine will try to keep, 
+ * in microseconds.
+ */
+const TInt KDefaultListBoxWantedTime = 33;
+
+/** 
+ * The minimum time between end of a frame to start of next frame allowed, 
+ * in microseconds.
+ * Increase this to give more time to other threads.
+ * A high number will decrease framerate on complex scenes.
+ */
+const TInt KDefaultListBoxMinTime = 10;
+
+_LIT( KTfxListBoxMutexName, "TfxListBox%d" );
+
+#endif