voiceui/voiceuivoicerecognition/inc/vuicstate.h
branchRCL_3
changeset 19 e36f3802f733
parent 0 bf1d17376201
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voiceui/voiceuivoicerecognition/inc/vuicstate.h	Wed Sep 01 12:29:17 2010 +0100
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2006-2007 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:  Base class for voice ui states
+*
+*/
+
+
+#ifndef VUICSTATE_H
+#define VUICSTATE_H
+
+// INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CDataStorage;
+class CUiModel;
+
+// CLASS DECLARATION
+/**
+* Abstract base class for different states
+*
+*/
+NONSHARABLE_CLASS( CState ) : public CBase
+{
+    public:     // Constructors and destructor
+
+        /**
+        * Destructor.
+        */
+        virtual ~CState();
+                                
+    public:     // New functions    
+    
+        /**
+        * Handles received event
+        * @param Event to be handled
+        */
+        virtual void HandleEventL( TInt aEvent ) = 0;
+        
+        /**
+        * Executes the state functionality
+        */
+        virtual void ExecuteL() = 0;
+         
+    protected:  // New functions
+        
+        /**
+        * C++ default constructor.
+        */
+        CState( CDataStorage& aDataStorage, CUiModel& aUiModel );
+                
+        /**
+        * Symbian OS 2nd phase constructor.
+        */
+        virtual void ConstructL();
+        
+        /**
+        * Returns the data storage
+        * @return Reference to DataStorage
+        */
+        CDataStorage& DataStorage() const;
+         
+        /**
+        * Returns the ui model
+        * @return Reference to UiModel
+        */     
+        CUiModel& UiModel() const;
+        
+        /**
+        * Starts progress timer
+        * @param aEventHandler Object which will handle timed event
+        * @param aDelay Delay before first timed event
+        * @param aInterval Interval between timed events
+        */
+        void StartTimerL( CState& aEventHandler, TInt aDelay, TInt aInterval );
+        
+        /**
+        * Deletes progress timer
+        */
+        void StopTimer();
+       
+        /**
+        * Callback for timed event
+        * @param aObject Contains this pointer
+        * @return KErrNone
+        */
+        static TInt OnTimedEvent( TAny* aObject );
+        
+        /**
+        * Handles timed event
+        */
+        virtual void DoTimedEventL();
+        
+        /**
+        * Brings the application to foreground
+        */
+        void BringToForeground();
+        
+    private:    // Data
+
+        // Data storage
+        CDataStorage*     iDataStorage;
+        
+        // Data model
+        CUiModel*         iUiModel;
+        
+        // Timer for timed events
+        CPeriodic*        iTimer;
+};
+
+#endif  // VUICSTATE_H
+
+// End of File