vdr 2.7.3
|
#include <osd.h>
Public Member Functions | |
cOsdProvider (void) | |
virtual | ~cOsdProvider () |
Static Public Member Functions | |
static cOsd * | NewOsd (int Left, int Top, uint Level=OSD_LEVEL_DEFAULT) |
static void | UpdateOsdSize (bool Force=false) |
static bool | OsdSizeChanged (int &State) |
static bool | SupportsTrueColor (void) |
static int | StoreImage (const cImage &Image) |
static void | DropImage (int ImageHandle) |
static void | Shutdown (void) |
Protected Member Functions | |
virtual cOsd * | CreateOsd (int Left, int Top, uint Level)=0 |
virtual bool | ProvidesTrueColor (void) |
virtual int | StoreImageData (const cImage &Image) |
virtual void | DropImageData (int ImageHandle) |
Static Protected Member Functions | |
static const cImage * | GetImageData (int ImageHandle) |
Static Private Attributes | |
static cOsdProvider * | osdProvider = NULL |
static int | oldWidth = 0 |
static int | oldHeight = 0 |
static double | oldAspect = 1.0 |
static cImage * | images [MAXOSDIMAGES] = { NULL } |
static int | osdState = 0 |
Friends | |
class | cPixmapMemory |
cOsdProvider::cOsdProvider | ( | void | ) |
Definition at line 2279 of file osd.c.
References osdProvider.
|
virtual |
Definition at line 2285 of file osd.c.
References osdProvider.
|
protectedpure virtual |
Returns a pointer to a newly created cOsd object, which will be located at the given coordinates.
Implemented in cDvbOsdProvider, and cHdffOsdProvider.
|
static |
Drops the image referenced by the given ImageHandle.
If ImageHandle has an invalid value, nothing happens.
Definition at line 2391 of file osd.c.
References osdProvider.
Referenced by DrawImages().
|
protectedvirtual |
Drops the image data referenced by ImageHandle.
Definition at line 2367 of file osd.c.
References images, LOCK_PIXMAPS, and MAXOSDIMAGES.
|
staticprotected |
Gets the image data referenced by ImageHandle.
Definition at line 2376 of file osd.c.
References images, LOCK_PIXMAPS, and MAXOSDIMAGES.
Referenced by cPixmapMemory::DrawImage(), and cPixmapMemory::DrawScaledImage().
|
static |
Returns a pointer to a newly created cOsd object, which will be located at the given coordinates.
When the cOsd object is no longer needed, the caller must delete it. If the OSD is already in use, or there is no OSD provider, a dummy OSD is returned so that the caller may always use the returned pointer without having to check it every time it is accessed.
Definition at line 2290 of file osd.c.
References esyslog, cOsd::IsOpen(), isyslog, cOsd::mutex, OSD_LEVEL_DEFAULT, osdProvider, cOsd::Osds, and cOsd::SetActive().
Referenced by cDvbSubtitleConverter::AssertOsd(), CreateOsd(), cSkinClassicDisplayChannel::cSkinClassicDisplayChannel(), cSkinClassicDisplayMenu::cSkinClassicDisplayMenu(), cSkinClassicDisplayMessage::cSkinClassicDisplayMessage(), cSkinClassicDisplayReplay::cSkinClassicDisplayReplay(), cSkinClassicDisplayTracks::cSkinClassicDisplayTracks(), cSkinClassicDisplayVolume::cSkinClassicDisplayVolume(), cSkinSTTNGDisplayChannel::cSkinSTTNGDisplayChannel(), cSkinSTTNGDisplayMenu::cSkinSTTNGDisplayMenu(), cSkinSTTNGDisplayMessage::cSkinSTTNGDisplayMessage(), cSkinSTTNGDisplayReplay::cSkinSTTNGDisplayReplay(), cSkinSTTNGDisplayTracks::cSkinSTTNGDisplayTracks(), cSkinSTTNGDisplayVolume::cSkinSTTNGDisplayVolume(), cPictureControl::DisplayCaption(), cDvbSpuDecoder::Draw(), cLineGame::Show(), and cTrueColorDemo::Show().
|
static |
Checks if the OSD size has changed and a currently displayed OSD needs to be redrawn.
An internal reference value is incremented on every size change and is compared against State when calling the method. OsdSizeChanged() can be called with an uninitialized State to just get the current value of State.
Definition at line 2337 of file osd.c.
References cOsd::mutex, and osdState.
Referenced by cDisplayChannel::cDisplayChannel(), cDisplayChannel::cDisplayChannel(), cOsdMenu::cOsdMenu(), cOsdMenu::Display(), main(), and cDisplayChannel::ProcessKey().
|
inlineprotectedvirtual |
Returns true if this OSD provider is able to handle a true color OSD.
Reimplemented in cHdffOsdProvider.
|
static |
Shuts down the OSD provider facility by deleting the current OSD provider.
Definition at line 2397 of file osd.c.
References osdProvider.
Referenced by main().
|
static |
Stores the given Image for later use with DrawImage() on an OSD or pixmap.
The returned number is a handle that must be used when referencing this image in a call to DrawImage() or DropImage(). The image data is copied, so any later changes to Image will have no effect on the stored image. A derived class may be able to copy frequently used images to some space where they can be retrieved faster than using a cImage in each call. If this is not a true color OSD, or if the image data can't be stored for any reason, this function returns 0 and nothing is stored.
Definition at line 2384 of file osd.c.
References osdProvider.
Referenced by DrawImages().
|
protectedvirtual |
Copies the given Image and returns a handle for later reference.
A derived class can implement its own image storing mechanism by reimplementing this function as well as DropImageData(). The base class implementation simply copies the image data to allow plugins to always use this interface, no matter if the actual device provides support for storing image data or not. The handles returned by the default implementation are positive integers. A derived class might want to use negative integers as handles, so that it can fall back to using the base class image storing mechanism if, e.g., it runs out of memory.
Definition at line 2355 of file osd.c.
References images, LOCK_PIXMAPS, and MAXOSDIMAGES.
|
static |
Returns true if the current OSD provider is able to handle a true color OSD.
Definition at line 2345 of file osd.c.
References esyslog, and osdProvider.
Referenced by cPluginOsddemo::MainMenuAction().
|
static |
Inquires the actual size of the video display and adjusts the OSD and font sizes accordingly.
If Force is true, all settings are recalculated, even if the video resolution hasn't changed since the last call to this function.
Definition at line 2310 of file osd.c.
References DoubleEqual(), dsyslog, fontFix, fontOsd, cDevice::GetOsdSize(), min(), cOsd::mutex, oldAspect, oldHeight, oldWidth, osdState, cDevice::PrimaryDevice(), cFont::SetFont(), and Setup.
Referenced by main(), cMenuSetupOSD::ProcessKey(), cMenuSetupPlugins::ProcessKey(), and cMenuSetupBase::Store().
|
friend |
|
staticprivate |
Definition at line 2276 of file osd.h.
Referenced by DropImageData(), GetImageData(), and StoreImageData().
|
staticprivate |
Definition at line 1007 of file osd.h.
Referenced by UpdateOsdSize().
|
staticprivate |
Definition at line 1006 of file osd.h.
Referenced by UpdateOsdSize().
|
staticprivate |
Definition at line 1005 of file osd.h.
Referenced by UpdateOsdSize().
|
staticprivate |
Definition at line 1004 of file osd.h.
Referenced by cOsdProvider(), DropImage(), NewOsd(), Shutdown(), StoreImage(), SupportsTrueColor(), and ~cOsdProvider().
|
staticprivate |
Definition at line 1009 of file osd.h.
Referenced by OsdSizeChanged(), and UpdateOsdSize().