From 34dffe437703ebf2d194a3221bb45cc18760627f Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Thu, 8 Oct 2009 11:24:34 +0200 Subject: store informations about regions in cDxr3Osd class --- dxr3osd.c | 10 ++++++---- dxr3osd.h | 4 ++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dxr3osd.c b/dxr3osd.c index 72b7dc4..288f62a 100644 --- a/dxr3osd.c +++ b/dxr3osd.c @@ -62,8 +62,6 @@ public: }; #endif -#define MAXNUMWINDOWS 7 // OSD windows are counted 1...7 - // ================================== //! constructor cDxr3Osd::cDxr3Osd(int Left, int Top, uint Level) @@ -135,11 +133,15 @@ eOsdError cDxr3Osd::CanHandleAreas(const tArea *Areas, int NumAreas) eOsdError cDxr3Osd::SetAreas(const tArea *Areas, int NumAreas) { - if (shown) - { + if (shown) { Spu->Clear(); shown = false; } + + // store area informations + memcpy(areas, Areas, sizeof(tArea) * NumAreas); + numAreas = NumAreas; + return cOsd::SetAreas(Areas, NumAreas); } diff --git a/dxr3osd.h b/dxr3osd.h index 1738587..3d0ab07 100644 --- a/dxr3osd.h +++ b/dxr3osd.h @@ -11,6 +11,8 @@ public: virtual cOsd *CreateOsd(int Left, int Top, uint Level); }; +static const int MAXNUMWINDOWS = 7; + // ================================== // osd interface class cDxr3Osd : public cOsd { @@ -31,6 +33,8 @@ private: bool shown; ///< is the osd shown? cPalette* Palette; ///< global palette (needed by all bitmaps) cTimeMs *last; + tArea areas[MAXNUMWINDOWS]; + int numAreas; }; #endif /*_DXR3_OSD_H_*/ -- cgit v1.2.3