diff --git a/HISTORY b/HISTORY index a450e2da..01ab2984 100644 --- a/HISTORY +++ b/HISTORY @@ -1308,3 +1308,4 @@ Video Disk Recorder Revision History buffer (thanks to Sven Grothklags). - Added an error message if the directory specified in the '-L' option can't be accessed (suggested by Stefan Huelswitt). +- Rearranged OSD class names to make 'cOsd' available for the main OSD interface. diff --git a/dvbosd.c b/dvbosd.c index 294ee90d..a0b41d58 100644 --- a/dvbosd.c +++ b/dvbosd.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.c 1.15 2002/05/13 16:29:20 kls Exp $ + * $Id: dvbosd.c 1.16 2002/05/18 12:39:39 kls Exp $ */ #include "dvbosd.h" @@ -14,7 +14,7 @@ #include "tools.h" cDvbOsd::cDvbOsd(int VideoDev, int x, int y) -:cOsd(x, y) +:cOsdBase(x, y) { videoDev = VideoDev; if (videoDev < 0) diff --git a/dvbosd.h b/dvbosd.h index ff26bcff..acecd0ee 100644 --- a/dvbosd.h +++ b/dvbosd.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbosd.h 1.11 2002/05/10 14:22:07 kls Exp $ + * $Id: dvbosd.h 1.12 2002/05/18 12:39:31 kls Exp $ */ #ifndef __DVBOSD_H @@ -13,7 +13,7 @@ #include #include "osdbase.h" -class cDvbOsd : public cOsd { +class cDvbOsd : public cOsdBase { private: int videoDev; bool SetWindow(cWindow *Window); diff --git a/menu.c b/menu.c index e149a72d..341cb00e 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.192 2002/05/13 16:30:50 kls Exp $ + * $Id: menu.c 1.193 2002/05/18 12:35:21 kls Exp $ */ #include "menu.h" @@ -2113,7 +2113,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key) #define INFOTIMEOUT 5000 //ms cDisplayChannel::cDisplayChannel(int Number, bool Switched) -:cOsdBase(true) +:cOsdObject(true) { group = -1; withInfo = !Switched || Setup.ShowInfoOnChSwitch; @@ -2130,7 +2130,7 @@ cDisplayChannel::cDisplayChannel(int Number, bool Switched) } cDisplayChannel::cDisplayChannel(eKeys FirstKey) -:cOsdBase(true) +:cOsdObject(true) { group = -1; oldNumber = cDvbApi::CurrentChannel(); @@ -2322,7 +2322,7 @@ cVolumeBar::cVolumeBar(int Width, int Height, int Current, int Total, const char cDisplayVolume *cDisplayVolume::displayVolume = NULL; cDisplayVolume::cDisplayVolume(void) -:cOsdBase(true) +:cOsdObject(true) { displayVolume = this; timeout = time_ms() + (cDvbApi::PrimaryDvbApi->IsMute() ? MUTETIMEOUT : VOLUMETIMEOUT); diff --git a/menu.h b/menu.h index a0e0851e..70aba6e6 100644 --- a/menu.h +++ b/menu.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.h 1.42 2002/04/13 15:31:41 kls Exp $ + * $Id: menu.h 1.43 2002/05/18 12:36:06 kls Exp $ */ #ifndef __MENU_H @@ -24,7 +24,7 @@ public: virtual eOSState ProcessKey(eKeys Key); }; -class cDisplayChannel : public cOsdBase { +class cDisplayChannel : public cOsdObject { private: int group; bool withInfo; @@ -40,7 +40,7 @@ public: virtual eOSState ProcessKey(eKeys Key); }; -class cDisplayVolume : public cOsdBase { +class cDisplayVolume : public cOsdObject { private: int timeout; static cDisplayVolume *displayVolume; @@ -108,7 +108,7 @@ public: static bool Active(void); }; -class cReplayControl : public cOsdBase { +class cReplayControl : public cOsdObject { private: cDvbApi *dvbApi; cMarks marks; diff --git a/osd.h b/osd.h index afd44859..174bf099 100644 --- a/osd.h +++ b/osd.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osd.h 1.29 2002/05/12 11:19:22 kls Exp $ + * $Id: osd.h 1.30 2002/05/18 12:36:30 kls Exp $ */ #ifndef __OSD_H @@ -69,19 +69,19 @@ public: virtual eOSState ProcessKey(eKeys Key); }; -class cOsdBase { +class cOsdObject { protected: bool needsFastResponse; public: - cOsdBase(bool FastResponse = false) { needsFastResponse = FastResponse; } - virtual ~cOsdBase() {} + cOsdObject(bool FastResponse = false) { needsFastResponse = FastResponse; } + virtual ~cOsdObject() {} int Width(void) { return Interface->Width(); } int Height(void) { return Interface->Height(); } bool NeedsFastResponse(void) { return needsFastResponse; } virtual eOSState ProcessKey(eKeys Key) = 0; }; -class cOsdMenu : public cOsdBase, public cList { +class cOsdMenu : public cOsdObject, public cList { private: char *title; int cols[cInterface::MaxCols]; diff --git a/osdbase.c b/osdbase.c index 20e331fb..e7486a74 100644 --- a/osdbase.c +++ b/osdbase.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.c 1.3 2002/05/18 08:54:31 kls Exp $ + * $Id: osdbase.c 1.4 2002/05/18 12:39:16 kls Exp $ */ #include "osdbase.h" @@ -316,22 +316,22 @@ const char *cWindow::Data(int x, int y) return cBitmap::Data(x, y); } -// --- cOsd ------------------------------------------------------------------ +// --- cOsdBase -------------------------------------------------------------- -cOsd::cOsd(int x, int y) +cOsdBase::cOsdBase(int x, int y) { numWindows = 0; x0 = x; y0 = y; } -cOsd::~cOsd() +cOsdBase::~cOsdBase() { for (int i = 0; i < numWindows; i++) delete window[i]; } -tWindowHandle cOsd::Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground, bool Tiled) +tWindowHandle cOsdBase::Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground, bool Tiled) { if (numWindows < MAXNUMWINDOWS) { if (x >= 0 && y >= 0 && w > 0 && h > 0 && (Bpp == 1 || Bpp == 2 || Bpp == 4 || Bpp == 8)) { @@ -356,7 +356,7 @@ tWindowHandle cOsd::Create(int x, int y, int w, int h, int Bpp, bool ClearWithBa return -1; } -void cOsd::AddColor(eDvbColor Color, tWindowHandle Window) +void cOsdBase::AddColor(eDvbColor Color, tWindowHandle Window) { cWindow *w = GetWindow(Window); if (w) { @@ -365,7 +365,7 @@ void cOsd::AddColor(eDvbColor Color, tWindowHandle Window) } } -cWindow *cOsd::GetWindow(int x, int y) +cWindow *cOsdBase::GetWindow(int x, int y) { for (int i = 0; i < numWindows; i++) { if (window[i]->Tiled() && window[i]->Contains(x, y)) @@ -374,7 +374,7 @@ cWindow *cOsd::GetWindow(int x, int y) return NULL; } -cWindow *cOsd::GetWindow(tWindowHandle Window) +cWindow *cOsdBase::GetWindow(tWindowHandle Window) { if (0 <= Window && Window < numWindows) return window[Window]; @@ -383,7 +383,7 @@ cWindow *cOsd::GetWindow(tWindowHandle Window) return NULL; } -void cOsd::Flush(void) +void cOsdBase::Flush(void) { for (int i = 0; i < numWindows; i++) { CommitWindow(window[i]); @@ -396,7 +396,7 @@ void cOsd::Flush(void) } } -void cOsd::Clear(tWindowHandle Window) +void cOsdBase::Clear(tWindowHandle Window) { if (Window == ALL_TILED_WINDOWS || Window == ALL_WINDOWS) { for (int i = 0; i < numWindows; i++) @@ -410,31 +410,31 @@ void cOsd::Clear(tWindowHandle Window) } } -void cOsd::Fill(int x1, int y1, int x2, int y2, eDvbColor Color, tWindowHandle Window) +void cOsdBase::Fill(int x1, int y1, int x2, int y2, eDvbColor Color, tWindowHandle Window) { cWindow *w = (Window == ALL_TILED_WINDOWS) ? GetWindow(x1, y1) : GetWindow(Window); if (w) w->Fill(x1, y1, x2, y2, Color); } -void cOsd::SetBitmap(int x, int y, const cBitmap &Bitmap, tWindowHandle Window) +void cOsdBase::SetBitmap(int x, int y, const cBitmap &Bitmap, tWindowHandle Window) { cWindow *w = (Window == ALL_TILED_WINDOWS) ? GetWindow(x, y) : GetWindow(Window); if (w) w->SetBitmap(x, y, Bitmap); } -int cOsd::Width(unsigned char c) +int cOsdBase::Width(unsigned char c) { return numWindows ? window[0]->Width(c) : 0; } -int cOsd::Width(const char *s) +int cOsdBase::Width(const char *s) { return numWindows ? window[0]->Width(s) : 0; } -eDvbFont cOsd::SetFont(eDvbFont Font) +eDvbFont cOsdBase::SetFont(eDvbFont Font) { eDvbFont oldFont = Font; for (int i = 0; i < numWindows; i++) @@ -442,14 +442,14 @@ eDvbFont cOsd::SetFont(eDvbFont Font) return oldFont; } -void cOsd::Text(int x, int y, const char *s, eDvbColor ColorFg, eDvbColor ColorBg, tWindowHandle Window) +void cOsdBase::Text(int x, int y, const char *s, eDvbColor ColorFg, eDvbColor ColorBg, tWindowHandle Window) { cWindow *w = (Window == ALL_TILED_WINDOWS) ? GetWindow(x, y) : GetWindow(Window); if (w) w->Text(x, y, s, ColorFg, ColorBg); } -void cOsd::Relocate(tWindowHandle Window, int x, int y, int NewWidth, int NewHeight) +void cOsdBase::Relocate(tWindowHandle Window, int x, int y, int NewWidth, int NewHeight) { cWindow *w = GetWindow(Window); if (w) { @@ -471,12 +471,12 @@ void cOsd::Relocate(tWindowHandle Window, int x, int y, int NewWidth, int NewHei } } -void cOsd::Hide(tWindowHandle Window) +void cOsdBase::Hide(tWindowHandle Window) { HideWindow(GetWindow(Window), true); } -void cOsd::Show(tWindowHandle Window) +void cOsdBase::Show(tWindowHandle Window) { HideWindow(GetWindow(Window), false); } diff --git a/osdbase.h b/osdbase.h index 859939bd..a20dfc46 100644 --- a/osdbase.h +++ b/osdbase.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osdbase.h 1.1 2002/05/10 14:26:09 kls Exp $ + * $Id: osdbase.h 1.2 2002/05/18 12:38:17 kls Exp $ */ #ifndef __OSDBASE_H @@ -119,7 +119,7 @@ typedef int tWindowHandle; #define ALL_TILED_WINDOWS (-3) #define LAST_CREATED_WINDOW (-4) -class cOsd { +class cOsdBase { private: int numWindows; int x0, y0; @@ -149,9 +149,9 @@ protected: virtual void CloseWindow(cWindow *Window) = 0; // Close the window and release any OSD hardware resources allocated for it. public: - cOsd(int x, int y); + cOsdBase(int x, int y); // Initializes the OSD, starting at screen coordinates (x, y). - virtual ~cOsd(); + virtual ~cOsdBase(); // Destroys all windows and shuts down the OSD. tWindowHandle Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground = true, bool Tiled = true); // Creates a window at coordinates (x, y), which are relative to the OSD's diff --git a/vdr.c b/vdr.c index 5acd2241..6d83acce 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.cadsoft.de/people/kls/vdr * - * $Id: vdr.c 1.110 2002/05/18 10:33:54 kls Exp $ + * $Id: vdr.c 1.111 2002/05/18 12:35:34 kls Exp $ */ #include @@ -363,7 +363,7 @@ int main(int argc, char *argv[]) // Main program loop: - cOsdBase *Menu = NULL; + cOsdObject *Menu = NULL; cReplayControl *ReplayControl = NULL; int LastChannel = -1; int PreviousChannel = cDvbApi::CurrentChannel(); @@ -409,7 +409,7 @@ int main(int argc, char *argv[]) } } // User Input: - cOsdBase **Interact = Menu ? &Menu : (cOsdBase **)&ReplayControl; + cOsdObject **Interact = Menu ? &Menu : (cOsdObject **)&ReplayControl; eKeys key = Interface->GetKey(!*Interact || !(*Interact)->NeedsFastResponse()); if (NORMALKEY(key) != kNone) { EITScanner.Activity();