examples/sfexamples/RockPaperScissorsGameSourceCode_S60/RPS/inc/rpsGameEngine.h

00001 /*
00002 Copyright (c) 2002-2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
00003 
00004 Redistribution and use in source and binary forms, with or without
00005 modification, are permitted provided that the following conditions are met:
00006 
00007 * Redistributions of source code must retain the above copyright notice, this
00008   list of conditions and the following disclaimer.
00009 * Redistributions in binary form must reproduce the above copyright notice,
00010   this list of conditions and the following disclaimer in the documentation
00011   and/or other materials provided with the distribution.
00012 * Neither the name of Nokia Corporation nor the names of its contributors
00013   may be used to endorse or promote products derived from this software
00014   without specific prior written permission.
00015 
00016 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00017 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00020 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00022 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00023 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00024 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00025 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 
00027 Description:  
00028 */ 
00029 
00030 #ifndef __RPSGAMEENGINE_H__
00031 #define __RPSGAMEENGINE_H__
00032 
00033 // INCLUDES
00034 #include "rpsappview.h"
00035 #include "rpsGameScreens.h"
00036 #include "commoninterfaces.h"
00037 
00038 class CInactivityTimer;
00039 
00040 // CLASS DECLARATION
00041 class MEngineObserver
00042         {
00043 public:
00044         virtual void UpdateScreen()=0;
00045         };
00046                 
00047 //-----------------------------------------------------------
00048 class CRpsGameEngine : public CBase, public MAppViewObserver
00049                                                                          
00050         {
00051 public: // Construction methods
00052 
00059         static CRpsGameEngine* NewL(MEngineObserver& aObs);
00060 
00065         virtual ~CRpsGameEngine();
00066 
00067 public: //From MAppViewObserver
00072         void FocusChanged(TBool aFocus);
00073         
00078         void KeyEvent(TUint& aKeyState);
00079         
00083         void DrawGameScreen();
00084         
00085 public: 
00091         static TInt Tick(TAny* aCallback);
00092         
00096         void StartHeartbeat();
00097         
00104         void StopHeartbeat(TBool aTimedOut = EFalse);
00105         
00109         void PauseGame();
00110         
00114         void UnpauseGame();
00115                         
00116 private: // Construction and methods that leave
00117 
00122         void ConstructL();
00123 
00129         CRpsGameEngine(MEngineObserver& aObs);
00130         
00131 private:                        
00132         
00137         void GameLoop();
00138         
00139 private:
00143         MEngineObserver& iObs;
00144         
00148         CPeriodic* iPeriodicTimer;
00149         
00153         CInactivityTimer* iInactivity;
00154         
00158         CGameScreenManager* iGameScreenMgr;
00159                 
00160         };
00161 
00162 #endif // __RPSGAMEENGINE_H__
00163 
00164 // End of File

Generated by  doxygen 1.6.2