/* * GraphLCD plugin for the Video Disk Recorder * * display.h - display class * * This file is released under the GNU General Public License. Refer * to the COPYING file distributed with this package. * * (c) 2001-2004 Carsten Siebholz * (c) 2004 Andreas Regel */ #ifndef _GRAPHLCD_DISPLAY_H_ #define _GRAPHLCD_DISPLAY_H_ #include #include #include #include #include #include #include "global.h" #include "setup.h" #include "state.h" #include "skinconfig.h" #include enum eThreadState { StateNormal, StateReplay, StateMenu }; // Display update Thread class cGraphLCDDisplay : public cThread { public: cGraphLCDDisplay(void); ~cGraphLCDDisplay(void); bool Initialise(GLCD::cDriver * Lcd, const std::string & CfgPath, const std::string & SkinsPath, const std::string & SkinName); void Tick(); void Update(); void Replaying(bool Starting); void SetMenuClear(); void SetMenuTitle(); void SetMenuCurrent(); const GLCD::cBitmap * GetScreen() const { return mScreen; } protected: virtual void Action(); private: GLCD::cDriver * mLcd; GLCD::cBitmap * mScreen; GLCD::cSkin * mSkin; cGraphLCDSkinConfig * mSkinConfig; bool mUpdate; uint64_t mUpdateAt; uint64_t mLastTimeMs; eThreadState mState; eThreadState mLastState; cMutex mMutex; cGraphLCDState * mGraphLCDState; bool mShowVolume; void UpdateIn(uint64_t msec); }; #endif