diff options
author | phintuka <phintuka> | 2007-10-15 00:31:39 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2007-10-15 00:31:39 +0000 |
commit | c377326fd5f2f109a701804cd5a0a4c83c7fc767 (patch) | |
tree | 4f84e278832a0272b61bcd386e5b95f1c79cadf3 | |
parent | 1c6d2698917f31188b8fafc480039713b9cc34b3 (diff) | |
download | xineliboutput-c377326fd5f2f109a701804cd5a0a4c83c7fc767.tar.gz xineliboutput-c377326fd5f2f109a701804cd5a0a4c83c7fc767.tar.bz2 |
Move cXinelibOsd from osd.h to osd.c (private class) and simplify vdr-1.5.9 compability code
-rw-r--r-- | osd.c | 43 | ||||
-rw-r--r-- | osd.h | 44 |
2 files changed, 38 insertions, 49 deletions
@@ -4,11 +4,12 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: osd.c,v 1.8 2007-09-01 08:47:04 phintuka Exp $ + * $Id: osd.c,v 1.9 2007-10-15 00:31:39 phintuka Exp $ * */ #include <vdr/config.h> +#include <vdr/tools.h> // cListObject #include "logdefs.h" #include "device.h" @@ -19,6 +20,38 @@ #include "xine_osd_command.h" +class cXinelibOsd : public cOsd, public cListObject +{ + private: + cXinelibOsd(); + cXinelibOsd(cXinelibOsd&); + + cXinelibDevice *m_Device; + + protected: + static cMutex m_Lock; + static cList<cXinelibOsd> m_OsdStack; + + bool m_IsVisible; + bool m_Shown; + + virtual eOsdError CanHandleAreas(const tArea *Areas, int NumAreas); + virtual eOsdError SetAreas(const tArea *Areas, int NumAreas); + virtual void Flush(void); + + // Messages from cXinelibOsdProvider + void Show(void); + void Hide(void); + void Refresh(void); + void Detach(void); + + friend class cXinelibOsdProvider; + + public: + cXinelibOsd(cXinelibDevice *Device, int x, int y, uint Level = 0); + virtual ~cXinelibOsd(); +}; + cList<cXinelibOsd> cXinelibOsd::m_OsdStack; cMutex cXinelibOsd::m_Lock; @@ -345,11 +378,7 @@ cXinelibOsdProvider::~cXinelibOsdProvider() } } -#if VDRVERSNUM >= 10509 cOsd *cXinelibOsdProvider::CreateOsd(int Left, int Top, uint Level) -#else -cOsd *cXinelibOsdProvider::CreateOsd(int Left, int Top) -#endif { TRACEF("cXinelibOsdProvider::CreateOsd"); @@ -358,11 +387,7 @@ cOsd *cXinelibOsdProvider::CreateOsd(int Left, int Top) if(cXinelibOsd::m_OsdStack.First()) LOGMSG("cXinelibOsdProvider::CreateOsd - OSD already open !"); -#if VDRVERSNUM >= 10509 cXinelibOsd *m_OsdInstance = new cXinelibOsd(m_Device, Left, Top, Level); -#else - cXinelibOsd *m_OsdInstance = new cXinelibOsd(m_Device, Left, Top); -#endif if(cXinelibOsd::m_OsdStack.First()) cXinelibOsd::m_OsdStack.First()->Hide(); @@ -4,52 +4,17 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: osd.h,v 1.4 2007-09-01 08:47:04 phintuka Exp $ + * $Id: osd.h,v 1.5 2007-10-15 00:31:39 phintuka Exp $ * */ #ifndef __XINELIB_OSD_H #define __XINELIB_OSD_H -#include <vdr/config.h> #include <vdr/osd.h> -#include <vdr/tools.h> // cListObject class cXinelibDevice; -class cXinelibOsd : public cOsd, public cListObject -{ - private: - cXinelibOsd(); - cXinelibOsd(cXinelibOsd&); - - cXinelibDevice *m_Device; - - protected: - static cMutex m_Lock; - static cList<cXinelibOsd> m_OsdStack; - - bool m_IsVisible; - bool m_Shown; - - virtual eOsdError CanHandleAreas(const tArea *Areas, int NumAreas); - virtual eOsdError SetAreas(const tArea *Areas, int NumAreas); - virtual void Flush(void); - - // Messages from cXinelibOsdProvider - void Show(void); - void Hide(void); - void Refresh(void); - void Detach(void); - - friend class cXinelibOsdProvider; - - public: - cXinelibOsd(cXinelibDevice *Device, int x, int y, uint Level = 0); - virtual ~cXinelibOsd(); -}; - - class cXinelibOsdProvider : public cOsdProvider { protected: @@ -59,13 +24,12 @@ class cXinelibOsdProvider : public cOsdProvider cXinelibOsdProvider(cXinelibDevice *Device); virtual ~cXinelibOsdProvider(); -#if VDRVERSNUM >= 10509 virtual cOsd *CreateOsd(int Left, int Top, uint Level); -#else - virtual cOsd *CreateOsd(int Left, int Top); -#endif static void RefreshOsd(void); + + // VDR < 1.5.9 compability + virtual cOsd *CreateOsd(int Left, int Top) { return CreateOsd(Left, Top, 0); } }; #endif //__XINELIB_OSD_H |