uiacceltk/hitchcock/tsrc/alfdebugextension/inc/alfdebug.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/tsrc/alfdebugextension/inc/alfdebug.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,131 @@
+/*
+* Copyright (c)  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:  ?Description
+*
+*/
+
+
+
+#ifndef C_ALFDEBUGEXTENSION_H
+#define C_ALFDEBUGEXTENSION_H
+
+#include <e32base.h>
+
+_LIT( KAlfDebugExtensionLibraryName, "alfdebug.dll" );
+const TInt KAlfDebugExtensionLibraryEntryOrdinal = 1;
+
+class CAlfEnv;
+
+/**
+ * Measurement structure for server.
+ */
+struct TAlfDebugServerMeasurements
+    {
+    TUint32 iTimeStamp;
+    TInt iServerCells;
+    TInt iServerMemory;
+    TInt iServerFree;
+    TUint iFrameCount;
+    };
+        
+/**
+ *  ?one_line_short_description
+ *  ?more_complete_description
+ *
+ *  @code
+ *   ?good_class_usage_example(s)
+ *  @endcode
+ *
+ *  @lib ?library
+ *  @since S60 ?S60_version *** for example, S60 v3.0
+ */
+NONSHARABLE_CLASS( CAlfDebugExtension ) : public CBase
+    {
+    
+public:
+        
+    /**
+     * Sets the time factor that affects the internal absolute clock, which
+     * is returned by Time(). Zero stops the progress of time completely,
+     * 0.5 means that time  progresses in half the speed compared to real
+     * time (1.0).
+     *
+     * @param aTimeFactor  Time factor.
+     */
+    virtual void SetTimeFactor(TReal32 aTimeFactor) = 0;
+
+    /**
+     * Determines the current time factor.
+     *
+     * @return  Time factor.
+     */
+    virtual TReal32 TimeFactor() = 0;
+
+    /**
+     * Determines the number of frames shown.
+     *
+     * @return  Frame count since the system first began rendering.
+     */
+    virtual TUint FrameCount() = 0;
+    
+    /**
+     * Determines the current frame rate. The rate is calculated at most
+     * once per second. Calling this less frequently causes the rate to be
+     * calculated as an average since the last time this was called.
+     *
+     * @return  Frames per second.
+     * 
+     */
+    virtual TReal32 FrameRate() = 0;
+    
+    
+    /**
+     * Shows the frame rate on screen
+     *
+     * @param aInterval Interval in milliseconds when the framerate is 
+     *                  measured and shown
+     *
+     *                  Special cased (from alfdebugextensionconstants.h)
+     *                  KAlfDebugHideFraweRate (0) Hides the framerate counter
+     *                  KAlfDebugShowFraweRateAfterDrawLoop (-1) Updates frame rate
+     *                      on screen when a drawing sequence ends (idle-idle)
+     *                  KAlfDebugShowFraweRateWhenQueried (-2) updates the screen 
+     *                      when user calls FrameCount().
+     *
+     */ 
+    virtual void ShowFrameRate( TInt aInterval = 500 ) = 0;
+       
+    virtual void ShowServerHeapUsage( TBool aShow = ETrue ) = 0;
+
+    /**
+     * Measures performance from the server side.
+     * @param aResult this will contain results of measurements.
+     * @return error code.
+     */
+    virtual TInt GetMeasurements( TAlfDebugServerMeasurements& aResult ) = 0;
+    
+    };
+
+
+NONSHARABLE_CLASS( CAlfDebugFactory ) : public CBase
+    {
+public:
+    virtual CAlfDebugExtension* CreateDebugExtensionL( CAlfEnv* aEnv = NULL ) = 0; 
+    };
+
+
+IMPORT_C CAlfDebugFactory* CreateDebugExtensionFactoryL();
+
+
+#endif // C_ALFDEBUGEXTENSION_H