diff options
Diffstat (limited to 'display.h')
-rw-r--r-- | display.h | 136 |
1 files changed, 32 insertions, 104 deletions
@@ -10,8 +10,8 @@ * (c) 2004 Andreas Regel <andreas.regel AT powarman.de> */ -#ifndef GRAPHLCD_DISPLAY_H -#define GRAPHLCD_DISPLAY_H +#ifndef _GRAPHLCD_DISPLAY_H_ +#define _GRAPHLCD_DISPLAY_H_ #include <stdint.h> @@ -19,27 +19,22 @@ #include <vector> #include <glcdgraphics/bitmap.h> -#include <glcdgraphics/font.h> +#include <glcddrivers/driver.h> +#include <glcdskin/skin.h> #include "global.h" -#include "layout.h" -#include "logolist.h" #include "setup.h" #include "state.h" -#include "widgets.h" +#include "skinconfig.h" #include <vdr/thread.h> -#include <vdr/player.h> -#define LCDMAXCARDS 4 -static const int kMaxTabCount = 10; - -enum ThreadState +enum eThreadState { - Normal, - Replay, - Menu + StateNormal, + StateReplay, + StateMenu }; // Display update Thread @@ -49,104 +44,37 @@ public: cGraphLCDDisplay(void); ~cGraphLCDDisplay(void); - int Init(GLCD::cDriver * Lcd, const char * CfgDir); - void Tick(void); - - void SetChannel(int ChannelNumber); - void SetClear(); - void SetOsdTitle(); - void SetOsdItem(const char * Text); - void SetOsdCurrentItem(); - void Recording(const cDevice * Device , const char * Name); - void Replaying(bool starting, eReplayMode replayMode); - //void SetStatusMessage(const char * Msg); - void SetOsdTextItem(const char * Text, bool Scroll); - //void SetColorButtons(const char * Red, const char * Green, const char * Yellow, const char * Blue); - void SetVolume(int Volume, bool Absolute); - + 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: - bool update; - bool active; 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; - cFontList fontList; - GLCD::cBitmap * bitmap; - const GLCD::cFont * largeFont; - const GLCD::cFont * normalFont; - const GLCD::cFont * smallFont; - const GLCD::cFont * symbols; - std::string cfgDir; - std::string fontDir; - std::string logoDir; - - ThreadState State; - ThreadState LastState; - - cMutex mutex; - cGraphLCDState * GraphLCDState; - - int menuTop; - int menuCount; - int tabCount; - int tab[kMaxTabCount]; - int tabMax[kMaxTabCount]; - - std::vector <std::string> textItemLines; - int textItemTop; - int textItemVisibleLines; - - bool showVolume; - - time_t CurrTime; - time_t LastTime; - time_t LastTimeCheckSym; - time_t LastTimeModSym; - struct timeval CurrTimeval; - struct timeval UpdateAt; - - std::vector<cScroller> scroller; - - cGraphLCDLogoList * logoList; - cGraphLCDLogo * logo; - - char szETSymbols[32]; - - void DisplayChannel(); - void DisplayTime(); - void DisplayLogo(); - void DisplaySymbols(); - void DisplayProgramme(); - void DisplayReplay(tReplayState & replay); - void DisplayMenu(); - void DisplayMessage(); - void DisplayTextItem(); - void DisplayColorButtons(); - void DisplayVolume(); - - void UpdateIn(long usec); - bool CheckAndUpdateSymbols(); - - /** Check if replay index bigger as one hour */ - bool IndexIsGreaterAsOneHour(int Index) const; - /** Translate replay index to string with minute and second MM:SS */ - const char *IndexToMS(int Index) const; - /** Compare Scroller with new Textbuffer*/ - bool IsScrollerTextChanged(const std::vector<cScroller> & scroller, const std::vector <std::string> & lines) const; - /** Returns true if Logo loaded and active*/ - bool IsLogoActive() const; - /** Returns true if Symbols loaded and active*/ - bool IsSymbolsActive() const; - - /** Set Brightness depends user activity */ - void SetBrightness(); - uint64_t LastTimeBrightness; - int nCurrentBrightness; - bool bBrightnessActive; + void UpdateIn(uint64_t msec); }; #endif |