diff options
Diffstat (limited to 'display.h')
| -rw-r--r-- | display.h | 63 |
1 files changed, 23 insertions, 40 deletions
@@ -23,12 +23,12 @@ namespace Display { // The Display:: namespace mainly encapsulates a cDisplay *display variable // and allows NULL-safe access to display members. // Additionally, selects via mode the actually used instance for *display. - + enum Mode { Full, HalfUpper, HalfLower }; // Full mode: 2BPP or 4BPP full screen display, depending on memory constrains // HalfUpper: 4BPP display of upper half, drop lower half if out of memory // HalfLower: 4BPP display of lower half, drop upper half if out of memory - + extern Mode mode; extern cDisplay *display; @@ -36,40 +36,40 @@ namespace Display { void SetMode(Display::Mode mode); inline void Delete() { if (display) { DELETENULL(display); } } - + void ShowUpperHalf(); // Make sure the upper half of screen is visible // eg. for entering numbers etc. // Wrapper calls for various *display members: - inline bool GetBlink() + inline bool GetBlink() { if (display) return display->GetBlink(); else return false; } - inline bool SetBlink(bool blink) + inline bool SetBlink(bool blink) { if (display) display->SetBlink(blink); else return false; } - inline bool GetConceal() + inline bool GetConceal() { if (display) return display->GetConceal(); else return false; } - inline bool SetConceal(bool conceal) + inline bool SetConceal(bool conceal) { if (display) display->SetConceal(conceal); else return false; } - inline cDisplay::enumZoom GetZoom() + inline cDisplay::enumZoom GetZoom() { if (display) return display->GetZoom(); else return cDisplay::Zoom_Off; } inline void SetZoom(cDisplay::enumZoom zoom) { if (display) display->SetZoom(zoom); } inline void SetBackgroundColor(tColor c) { if (display) display->SetBackgroundColor(c); } - - inline tColor GetBackgroundColor() + + inline tColor GetBackgroundColor() { if (display) return display->GetBackgroundColor(); else return 0; } - inline void HoldFlush() + inline void HoldFlush() { if (display) display->HoldFlush(); } - inline void ReleaseFlush() + inline void ReleaseFlush() { if (display) display->ReleaseFlush(); } inline void RenderTeletextCode(unsigned char *PageCode) { if (display) display->RenderTeletextCode(PageCode); } - + inline void DrawClock() { if (display) display->DrawClock(); } inline void DrawPageId(const char *text) @@ -81,51 +81,34 @@ namespace Display { } - - -class cDisplay2BPP : public cDisplay { - // 2BPP (4 color) OSD display - // Use static color mapping to limit color depth - -public: - cDisplay2BPP(int x0, int y0, int width, int height); - - virtual tColor GetColorRGB(enumTeletextColor ttc, int Area); - virtual tColor GetColorRGBAlternate(enumTeletextColor ttc, int Area); -}; - - - -class cDisplay4BPP : public cDisplay { - // 4BPP (16 color) OSD display +class cDisplay32BPP : public cDisplay { + // True Color OSD display // No need for color mapping + // Uses cPixmap instead of cBitmap public: - cDisplay4BPP(int x0, int y0, int width, int height); + cDisplay32BPP(int x0, int y0, int width, int height); }; - -class cDisplay4BPPHalf : public cDisplay { - // 4BPP (16 color) OSD display with auto size reduction on memory constrains +class cDisplay32BPPHalf : public cDisplay { + // 32BPP (true color) OSD display with auto size reduction on memory constrains // Automatically tries to make visible area as big as possible // No need for color mapping bool Upper; // Prefer to show upper half or lower half? - - int OsdX0,OsdY0; + + int OsdX0,OsdY0; // Needed to re-initialize osd public: - cDisplay4BPPHalf(int x0, int y0, int width, int height, bool upper); + cDisplay32BPPHalf(int x0, int y0, int width, int height, bool upper); bool GetUpper() { return Upper; } - void SetUpper(bool upper) + void SetUpper(bool upper) { if (Upper!=upper) { Upper=upper; InitOSD(); } } protected: void InitOSD(); }; - - #endif |
