Go to the documentation of this file.
34 #include "symbols/arrowdown.xpm"
35 #include "symbols/arrowup.xpm"
36 #include "symbols/audio.xpm"
37 #include "symbols/audioleft.xpm"
38 #include "symbols/audioright.xpm"
39 #include "symbols/audiostereo.xpm"
40 #include "symbols/dolbydigital.xpm"
41 #include "symbols/encrypted.xpm"
42 #include "symbols/ffwd.xpm"
43 #include "symbols/ffwd1.xpm"
44 #include "symbols/ffwd2.xpm"
45 #include "symbols/ffwd3.xpm"
46 #include "symbols/frew.xpm"
47 #include "symbols/frew1.xpm"
48 #include "symbols/frew2.xpm"
49 #include "symbols/frew3.xpm"
50 #include "symbols/mute.xpm"
51 #include "symbols/pause.xpm"
52 #include "symbols/play.xpm"
53 #include "symbols/radio.xpm"
54 #include "symbols/recording.xpm"
55 #include "symbols/sfwd.xpm"
56 #include "symbols/sfwd1.xpm"
57 #include "symbols/sfwd2.xpm"
58 #include "symbols/sfwd3.xpm"
59 #include "symbols/srew.xpm"
60 #include "symbols/srew1.xpm"
61 #include "symbols/srew2.xpm"
62 #include "symbols/srew3.xpm"
63 #include "symbols/teletext.xpm"
64 #include "symbols/volume.xpm"
66 #define Gap (Setup.FontOsdSize / 5 & ~1) // must be even
67 #define TextFrame (Setup.FontOsdSize / TEXT_ALIGN_BORDER)
68 #define TextSpacing (2 * TextFrame)
69 #define SymbolSpacing TextSpacing
70 #define ShowSeenExtent (Setup.FontOsdSize / 5) // pixels by which the "seen" bar extends out of the frame
72 #define DISKUSAGEALERTLIMIT 95 // percent of disk usage above which the display goes into alert mode
73 #define SIGNALDISPLAYDELTA 2 // seconds between subsequent device signal displays
79 #define CLR_BACKGROUND 0x99000000
80 #define CLR_MAIN_FRAME 0xFFFF9966
81 #define CLR_CHANNEL_FRAME 0xFF8A9EC9
82 #define CLR_REPLAY_FRAME 0xFFCC6666
83 #define CLR_DATE 0xFF99CCFF
84 #define CLR_MENU_ITEMS 0xFF9999FF
85 #define CLR_TIMER 0xFF99CCFF
86 #define CLR_DEVICE 0xFFF1B1AF
87 #define CLR_CHANNEL_NAME 0xFF99CCFF
88 #define CLR_EVENT_TITLE 0xFF99CCFF
89 #define CLR_EVENT_TIME 0xFFFFCC66
90 #define CLR_EVENT_SHORTTEXT 0xFFFFCC66
91 #define CLR_TEXT 0xFF99CCFF
92 #define CLR_TRACK 0xFFFFCC66
93 #define CLR_SEEN 0xFFCC99CC
94 #define CLR_ALERT 0xFFFF0000
95 #define CLR_EXPOSED 0xFF990000
96 #define CLR_WHITE 0xFFFFFFFF
97 #define CLR_RED 0xFFCC6666
98 #define CLR_GREEN 0xFFA0FF99
99 #define CLR_YELLOW 0xFFF1DF60
100 #define CLR_BLUE 0xFF9A99FF
101 #define CLR_BLACK 0xFF000000
208 int Bpp[] = { 32, 8, 4, 2, 1 };
209 tArea Area = { x0, y0, x1, y1, 0 };
210 for (
unsigned int i = 0; i <
sizeof(Bpp) /
sizeof(
int); i++) {
226 int Height = LineHeight;
229 if (Height < 2 || TinyFont->Height() <= LineHeight)
236 static bool DrawDeviceData(
cOsd *Osd,
const cDevice *Device,
int x0,
int y0,
int x1,
int y1,
int &xs,
const cFont *TinyFont,
cString &LastDeviceType,
cCamSlot *&LastCamSlot,
bool Initial)
240 if (Initial || strcmp(DeviceType, LastDeviceType) || CamSlot != LastCamSlot) {
248 int w =
max(font->
Width(Nr), y1 - y0);
252 Osd->
DrawText(x, y0, DeviceType, ColorFg, ColorBg, TinyFont);
253 xs =
max(xs, x + TinyFont->
Width(DeviceType));
254 LastDeviceType = DeviceType;
258 Osd->
DrawText(x, y1 - TinyFont->
Height(), s, ColorFg, ColorBg, TinyFont);
259 xs =
max(xs, x + TinyFont->
Width(s));
261 LastCamSlot = CamSlot;
267 static void DrawDeviceSignal(
cOsd *Osd,
const cDevice *Device,
int x0,
int y0,
int x1,
int y1,
int &LastSignalStrength,
int &LastSignalQuality,
bool Initial)
271 int d =
max((y1 - y0) / 10, 1);
274 int h = (y1 - y0 - 3 * d) / 2;
280 tColor ColorSignalValue, ColorSignalRest;
283 ColorSignalRest =
Theme.
Color(clrMenuFrameBg);
286 ColorSignalValue =
Theme.
Color(clrSignalValue);
289 if (SignalStrength >= 0 && (Initial || SignalStrength != LastSignalStrength)) {
290 int s = SignalStrength * w / 100;
291 Osd->
DrawRectangle(x00, y00, x00 + s - 1, y01 - 1, ColorSignalValue);
292 Osd->
DrawRectangle(x00 + s, y00, x01 - 1, y01 - 1, ColorSignalRest);
293 LastSignalStrength = SignalStrength;
295 if (SignalQuality >= 0 && (Initial || SignalQuality != LastSignalQuality)) {
296 int q = SignalQuality * w / 100;
297 Osd->
DrawRectangle(x00, y02, x00 + q - 1, y03 - 1, ColorSignalValue);
298 Osd->
DrawRectangle(x00 + q, y02, x01 - 1, y03 - 1, ColorSignalRest);
299 LastSignalQuality = SignalQuality;
312 int d = (y1 - y0) / 2;
313 int w = x1 - x0 - 2 * d;
314 int l =
max(x0 + d, x0 + d + w * HardLimitLeft / HorizonDelta);
315 int r =
min(x1 - d, x1 - d - w * HardLimitRight / HorizonDelta) - 1;
316 int c =
constrain(x0 + d + w * Current / HorizonDelta, l, r);
317 int t =
constrain(x0 + d + w * Target / HorizonDelta, l, r);
318 if (c == LastCurrent)
322 tColor ColorRange, ColorMove;
332 Osd->
DrawEllipse(l - d, y0, l, y1 - 1, ColorRange, 7);
334 Osd->
DrawEllipse(r, y0, r + d, y1 - 1, ColorRange, 5);
335 Osd->
DrawEllipse(c - d, y0, c, y1 - 1, ColorMove, 7);
337 Osd->
DrawEllipse(t, y0, t + d, y1 - 1, ColorMove, 5);
346 int xc00,
xc01,
xc02,
xc03,
xc04,
xc05,
xc06,
xc07,
xc08,
xc09,
xc10,
xc11,
xc12,
xc13,
xc14,
xc15;
347 int yc00,
yc01,
yc02,
yc03,
yc04,
yc05,
yc06,
yc07,
yc08,
yc09,
yc10,
yc11,
yc12;
380 virtual void Flush(
void);
518 if (
DrawDeviceData(
osd, Device,
xc10,
yc11,
xc11,
yc12,
xs,
tinyFont,
lastDeviceType,
lastCamSlot, Device->
DeviceNumber() !=
lastDeviceNumber)) {
529 time_t Now = time(NULL);
546 if (Channel && !Channel->
GroupSep()) {
556 if (Channel->
Vpid()) {
560 else if (Channel->
Apid(0)) {
568 ChName = Channel->
Name();
595 for (
int i = 0; i < 2; i++) {
596 const cEvent *e = !i ? Present : Following;
613 int x0, x1, y0, y1, y2;
664 time_t t = time(NULL);
683 int yc00,
yc01,
yc02,
yc03,
yc04,
yc05,
yc06,
yc07,
yc08,
yc09,
yc10,
yc11;
684 int yb00,
yb01,
yb02,
yb03,
yb04,
yb05,
yb06,
yb07,
yb08,
yb09,
yb10,
yb11,
yb12,
yb13,
yb14,
yb15;
687 int xs00,
xs01,
xs02,
xs03,
xs04,
xs05,
xs06,
xs07,
xs08,
xs09,
xs10,
xs11,
xs12,
xs13;
691 int xb00,
xb01,
xb02,
xb03,
xb04,
xb05,
xb06,
xb07,
xb08,
xb09,
xb10,
xb11,
xb12,
xb13,
xb14,
xb15;
734 void DrawScrollbar(
int Total,
int Offset,
int Shown,
bool CanScrollUp,
bool CanScrollDown);
749 virtual void Scroll(
bool Up,
bool Page);
751 virtual void Clear(
void);
753 virtual void SetTitle(
const char *Title);
754 virtual void SetButtons(
const char *Red,
const char *Green = NULL,
const char *Yellow = NULL,
const char *Blue = NULL);
756 virtual void SetItem(
const char *Text,
int Index,
bool Current,
bool Selectable);
760 virtual void SetText(
const char *Text,
bool FixedFont);
763 virtual void Flush(
void);
1063 tColor lutBg[] = { clrButtonRedBg, clrButtonGreenBg, clrButtonYellowBg, clrButtonBlueBg };
1078 const char *t = strrchr(s,
' ');
1097 osd->
DrawText(
xa00,
yb03 -
lineHeight,
cString::sprintf(
"%02d:%02d",
cVideoDiskUsage::FreeMinutes() / 60,
cVideoDiskUsage::FreeMinutes() % 60), ColorFg, ColorBg, font,
xa02 -
xa00, 0,
taBottom |
taRight |
taBorder);
1111 if (getloadavg(&SystemLoad, 1) > 0) {
1177 ClearColor =
Theme.
Color(clrMenuMainBracket);
1195 if (Total > 0 && Total > Shown) {
1197 int sh =
max(
int((tb - tt) *
double(Shown) / Total + 0.5), sw);
1198 int st =
min(
int(tt + (tb - tt) *
double(Offset) / Total + 0.5), tb - sh);
1199 int sb =
min(st + sh, tb);
1218 time_t Now = time(NULL);
1225 else if (strcmp(Day, Today) != 0)
1264 for (
int i = 0; i < SortedTimers.
Size(); i++) {
1267 if (
const cTimer *Timer = SortedTimers[i]) {
1268 if (Timer->IsPatternTimer())
1269 SortedTimers[i] = NULL;
1270 else if (Timer->Recording()) {
1271 if (Timer->Remote()) {
1272 if (!Device && Timer->HasFlags(
tfActive)) {
1274 FreeDeviceSlots.
Append(y);
1281 if (!Device || Device == RecordControl->Device()) {
1285 Device = RecordControl->Device();
1291 FreeDeviceSlots.
Append(y);
1297 SortedTimers[i] = NULL;
1299 else if (!Device && Timer->HasFlags(
tfActive)) {
1301 FreeDeviceSlots.
Append(y);
1303 SortedTimers[i] = NULL;
1314 if (Device->NumProvidedSystems()) {
1316 if (Slot < FreeDeviceSlots.
Size()) {
1317 y = FreeDeviceSlots[Slot];
1331 for (
const cTimer *Timer = Timers->First(); Timer; Timer = Timers->
Next(Timer)) {
1348 if (
DrawDeviceData(
osd, Device,
xs08, y,
xs11, y +
lineHeight,
xs,
tinyFont,
lastDeviceType[dn],
lastCamSlot[dn],
initial)) {
1364 if (Device->NumProvidedSystems())
1375 if (!Device->
Replaying() || Transferring)
1387 int b = w * w + h * h;
1392 double f = sqrt(
double(c) / (2 * b));
1407 time_t Now = time(NULL);
1411 if (Device->NumProvidedSystems()) {
1444 if (
const cSchedule *Schedule = Schedules->GetSchedule(Channel)) {
1445 const cEvent *Event = Schedule->GetPresentEvent();
1454 time_t t = time(NULL);
1567 const char *lutText[] = { Red, Green, Yellow, Blue };
1568 tColor lutFg[] = { clrButtonRedFg, clrButtonGreenFg, clrButtonYellowFg, clrButtonBlueFg };
1569 tColor lutBg[] = { clrButtonRedBg, clrButtonGreenBg, clrButtonYellowBg, clrButtonBlueBg };
1615 ColorFg =
Theme.
Color(Selectable ? clrMenuItemSelectable : clrMenuItemNonSelectable);
1621 for (
int i = 0; i <
MaxTabs; i++) {
1651 int w = font->
Width(buffer);
1653 int yb = y + font->
Height();
1661 int w = font->
Width(buffer);
1663 int yb = y + font->
Height();
1700 int w = font->
Width(buffer);
1704 if (Info->
Errors() > 0) {
1707 int w = font->
Width(buffer);
1713 int yb = y + font->
Height();
1718 const char *Title = Info->
Title();
1720 Title = Recording->
Name();
1782 int xp00,
xp01,
xp02,
xp03,
xp04,
xp05,
xp06,
xp07,
xp08,
xp09,
xp10,
xp11,
xp12,
xp13,
xp14,
xp15;
1797 virtual void SetTitle(
const char *Title);
1798 virtual void SetMode(
bool Play,
bool Forward,
int Speed);
1801 virtual void SetTotal(
const char *Total);
1802 virtual void SetJump(
const char *Jump);
1804 virtual void Flush(
void);
1910 { { pause_xpm, srew_xpm, srew1_xpm, srew2_xpm, srew3_xpm },
1911 { pause_xpm, sfwd_xpm, sfwd1_xpm, sfwd2_xpm, sfwd3_xpm }, },
1912 { { play_xpm, frew_xpm, frew1_xpm, frew2_xpm, frew3_xpm },
1913 { play_xpm, ffwd_xpm, ffwd1_xpm, ffwd2_xpm, ffwd3_xpm } }
1940 int w = font->
Width(Total);
1982 virtual void Flush(
void);
1988 int lineHeight = font->
Height();
1992 x1 = lineHeight / 2;
1996 x6 =
x7 - lineHeight / 2;
1997 x5 =
x6 - lineHeight / 2;
2027 cBitmap bm(Mute ? mute_xpm : volume_xpm);
2031 int w = (
y1 -
y0) / 3;
2033 int n = (xr - xl + d) / (w + d);
2034 int x = xr - n * (w + d);
2036 for (
int i = 0; i < n; i++) {
2055 int xt00,
xt01,
xt02,
xt03,
xt04,
xt05,
xt06,
xt07,
xt08,
xt09,
xt10,
xt11,
xt12;
2065 virtual void SetTrack(
int Index,
const char *
const *Tracks);
2067 virtual void Flush(
void);
2085 for (
int i = 0; i < NumTracks; i++)
2124 for (
int i = 0; i < NumTracks; i++)
2151 ColorFg =
Theme.
Color(clrTrackItemCurrentFg);
2152 ColorBg =
Theme.
Color(clrTrackItemCurrentBg);
2175 SetItem(Tracks[Index], Index,
true);
2181 switch (AudioChannel) {
2209 virtual void Flush(
void);
2215 int lineHeight = font->
Height();
2217 x1 = lineHeight / 2;
2221 x6 =
x7 - lineHeight / 2;
2222 x5 =
x6 - lineHeight / 2;
static int OsdWidth(void)
virtual void SetMessage(eMessageType Type, const char *Text)
< This class implements a simple message display.
static void DrawDevicePosition(cOsd *Osd, const cPositioner *Positioner, int x0, int y0, int x1, int y1, int &LastCurrent)
#define DISKUSAGEALERTLIMIT
virtual void SetProgress(int Current, int Total)
This function will be called whenever the position in or the total length of the recording has change...
bool Replaying(void) const
Returns true if we are currently replaying.
bool Transferring(void) const
Returns true if we are currently in Transfer Mode.
static cRecordControl * GetRecordControl(const char *FileName)
static cOsd * NewOsd(int Left, int Top, uint Level=OSD_LEVEL_DEFAULT)
Returns a pointer to a newly created cOsd object, which will be located at the given coordinates.
time_t StopTimeEvent(void) const
or by the user (for normal timers)
static cString sprintf(const char *fmt,...) __attribute__((format(printf
int ParentalRating(void) const
cString ChannelString(const cChannel *Channel, int Number)
cString & Truncate(int Index)
Truncate the string at the given Index (if Index is < 0 it is counted from the end of the string).
virtual void SetMode(bool Play, bool Forward, int Speed)
Sets the current replay mode, which can be used to display some indicator, showing the user whether w...
static cBitmap bmEncrypted
const cChannel * Channel(void) const
static cBitmap bmAudioRight
const char * Name(void) const
tColor Color(int Subject)
Returns the color for the given Subject.
virtual void SetChannel(const cChannel *Channel, int Number)
Sets the current channel to Channel.
#define LOCK_CHANNELS_READ
static const cFont * GetFont(eDvbFont Font)
Gets the given Font, which was previously set by a call to SetFont().
static cString ToString(int Code)
const char * Title(void) const
static int NormalizeAngle(int Angle)
Normalizes the given Angle into the range -1800...1800.
static const cTimers * GetTimersRead(cStateKey &StateKey, int TimeoutMs=0)
Gets the list of timers for read access.
The cOsd class is the interface to the "On Screen Display".
int TargetLongitude(void) const
Returns the longitude the dish is supposed to be moved to.
#define LOCK_SCHEDULES_READ
tColor RgbShade(tColor Color, double Factor)
Returns a brighter (Factor > 0) or darker (Factor < 0) version of the given Color.
virtual cString DeviceType(void) const
Returns a string identifying the type of this device (like "DVB-S").
virtual void SetMessage(eMessageType Type, const char *Text)
Sets a one line message Text, with the given Type.
eTrackType GetCurrentAudioTrack(void) const
virtual cSkinDisplayVolume * DisplayVolume(void)
Creates and returns a new object for displaying the current volume.
int HardLimitLongitude(ePositionerDirection Direction) const
Returns the longitude of the positioner's hard limit in the given Direction.
const char * Description(void) const
THEME_CLR(Theme, clrBackground, CLR_BACKGROUND)
virtual void SetRecording(const cRecording *Recording)
Sets the recording that is currently being played.
cBitmap * Scaled(double FactorX, double FactorY, bool AntiAlias=false) const
Creates a copy of this bitmap, scaled by the given factors.
virtual cSkinDisplayMenu * DisplayMenu(void)
Creates and returns a new object for displaying a menu.
cRecordingInfo * Info(void) const
static cBitmap bmRecording
void DrawSeen(int Current, int Total)
virtual const char * Description(void)
Returns a user visible, single line description of this skin, which may consist of arbitrary text and...
virtual int CurrentLongitude(void) const
Returns the longitude the dish currently points to.
const char * Title(void) const
static bool HasChanged(int &State)
Returns true if the usage of the video disk space has changed since the last call to this function wi...
virtual cSkinDisplayChannel * DisplayChannel(bool WithInfo)
Creates and returns a new object for displaying the current channel.
virtual void SaveRegion(int x1, int y1, int x2, int y2)
Saves the region defined by the given coordinates for later restoration through RestoreRegion().
virtual void SetVolume(int Current, int Total, bool Mute)
< This class implements the volume/mute display.
const char * ShortText(void) const
static cDevice * PrimaryDevice(void)
Returns the primary device.
bool GetIndex(int &Current, int &Total, bool SnapToIFrame=false) const
static cBitmap bmTeletext
static cDevice * GetDevice(int Index)
Gets the device with the given Index.
const char * Name(void) const
Returns the full name of the recording (without the video directory).
virtual void DrawEllipse(int x1, int y1, int x2, int y2, tColor Color, int Quadrants=0)
Draws a filled ellipse defined by the upper left (x1, y1) and lower right (x2, y2) corners with the g...
virtual cSkinDisplayTracks * DisplayTracks(const char *Title, int NumTracks, const char *const *Tracks)
Creates and returns a new object for displaying the available tracks.
static cOsd * CreateOsd(int Left, int Top, int x0, int y0, int x1, int y1)
static int OsdHeight(void)
virtual void RestoreRegion(void)
Restores the region previously saved by a call to SaveRegion().
virtual void SetTitle(const char *Title)
Sets the title of the recording.
virtual cSkinDisplayMessage * DisplayMessage(void)
Creates and returns a new object for displaying a message.
void SetEditableWidth(int Width)
If an item is set through a call to cSkinDisplayMenu::SetItem(), this function shall be called to set...
void Set(cOsd *Osd, int Left, int Top, int Width, int Height, const char *Text, const cFont *Font, tColor ColorFg, tColor ColorBg)
static cSkinDisplay * Current(void)
Returns the currently active cSkinDisplay.
virtual void SetEvents(const cEvent *Present, const cEvent *Following)
Sets the Present and Following EPG events.
virtual void SetPositioner(const cPositioner *Positioner)
Sets the Positioner used to move the satellite dish.
virtual int Height(void) const =0
Returns the height of this font in pixel (all characters have the same height).
virtual ~cSkinLCARSDisplayReplay()
int MasterSlotNumber(void)
Returns the number of this CAM's master slot within the whole system.
A steerable satellite dish generally points to the south on the northern hemisphere,...
virtual void Flush(void)
Actually draws the OSD display to the output device.
virtual void SetCurrent(const char *Current)
Sets the current position within the recording, as a user readable string if the form "h:mm:ss....
static int UsedPercent(void)
Returns the used space of the video disk in percent.
void Remove(bool IncState=true)
Removes this key from the lock it was previously used with.
bool Recording(void) const
const char * Remote(void) const
bool GroupSep(void) const
cCamSlot * CamSlot(void) const
Returns the CAM slot that is currently used with this device, or NULL if no CAM slot is in use.
virtual void SetMessage(eMessageType Type, const char *Text)
Sets a one line message Text, with the given Type.
time_t StartTime(void) const
const cEvent * Event(void) const
cString GetParentalRatingString(void) const
virtual const cRecording * GetRecording(void)
Returns the cRecording that is currently being replayed, or NULL if this player is not playing a cRec...
cSkinLCARSDisplayTracks(const char *Title, int NumTracks, const char *const *Tracks)
virtual void Flush(void)
Actually draws the OSD display to the output device.
void SetAntiAliasGranularity(uint FixedColors, uint BlendColors)
Allows the system to optimize utilization of the limited color palette entries when generating blende...
virtual void SetJump(const char *Jump)
Sets the prompt that allows the user to enter a jump point.
virtual void DrawRectangle(int x1, int y1, int x2, int y2, tColor Color)
Draws a filled rectangle defined by the upper left (x1, y1) and lower right (x2, y2) corners with the...
virtual void Flush(void)
Actually draws the OSD display to the output device.
#define CLR_EVENT_SHORTTEXT
cSkinLCARSDisplayMessage(void)
virtual ~cSkinLCARSDisplayVolume()
static cBitmap bmAudioStereo
const tTrackId * GetTrack(eTrackType Type)
Returns a pointer to the given track id, or NULL if Type is not less than ttMaxTrackTypes.
cSkinLCARSDisplayReplay(bool ModeOnly)
cString GetTimeString(void) const
virtual void SetAudioChannel(int AudioChannel)
Sets the audio channel indicator.
virtual eOsdError SetAreas(const tArea *Areas, int NumAreas)
Sets the sub-areas to the given areas.
virtual void SetTrack(int Index, const char *const *Tracks)
< This class implements the track display.
static void DrawDeviceSignal(cOsd *Osd, const cDevice *Device, int x0, int y0, int x1, int y1, int &LastSignalStrength, int &LastSignalQuality, bool Initial)
static int NumDevices(void)
Returns the total number of devices.
static bool DrawDeviceData(cOsd *Osd, const cDevice *Device, int x0, int y0, int x1, int y1, int &xs, const cFont *TinyFont, cString &LastDeviceType, cCamSlot *&LastCamSlot, bool Initial)
virtual void Flush(void)
Actually draws the OSD display to the output device.
virtual ~cSkinLCARSDisplayChannel()
const cMarks * marks
< This class implements the progress display used during replay of a recording.
cString GetVpsString(void) const
cListObject * Next(void) const
static cFont * CreateFont(const char *Name, int CharHeight, int CharWidth=0)
Creates a new font object with the given Name and makes its characters CharHeight pixels high.
const char * ChannelName(void) const
static cDevice * ActualDevice(void)
Returns the actual receiving device in case of Transfer Mode, or the primary device otherwise.
int Ca(int Index=0) const
#define CLR_CHANNEL_FRAME
#define SIGNALDISPLAYDELTA
time_t StartTimeEvent(void) const
the start/stop times as given by the event (for VPS timers), by event plus margins (for spawned non-V...
void Reset(void)
Resets the state of this key, so that the next call to a lock's Lock() function with this key will re...
const cEvent * GetEvent(void) const
virtual void Flush(void)
Actually draws the OSD display to the output device.
const char * Description(void) const
static int HorizonLongitude(ePositionerDirection Direction)
Returns the longitude of the satellite position that is just at the horizon when looking in the given...
virtual cSkinDisplayReplay * DisplayReplay(bool ModeOnly)
Creates and returns a new object for displaying replay progress.
static int FreeMinutes(void)
Returns the number of minutes that can still be recorded on the video disk.
virtual ~cSkinLCARSDisplayMessage()
virtual void DrawBitmap(int x, int y, const cBitmap &Bitmap, tColor ColorFg=0, tColor ColorBg=0, bool ReplacePalette=false, bool Overlay=false)
Sets the pixels in the OSD with the data from the given Bitmap, putting the upper left corner of the ...
cString GetDateString(void) const
int DeviceNumber(void) const
Returns the number of this device (0 ... numDevices - 1).
cSkinLCARSDisplayVolume(void)
virtual int SignalStrength(void) const
Returns the "strength" of the currently received signal.
cString GetEndTimeString(void) const
virtual eOsdError CanHandleAreas(const tArea *Areas, int NumAreas)
Checks whether the OSD can display the given set of sub-areas.
virtual int Width(void) const =0
Returns the original character width as requested when the font was created, or 0 if the default widt...
virtual void DrawText(int x, int y, const char *s, tColor ColorFg, tColor ColorBg, const cFont *Font, int Width=0, int Height=0, int Alignment=taDefault)
Draws the given string at coordinates (x, y) with the given foreground and background color and font.
virtual int SignalQuality(void) const
Returns the "quality" of the currently received signal.
static cBitmap bmAudioLeft
virtual void Append(T Data)
cSkinLCARSDisplayChannel(bool WithInfo)
virtual cString GetHeader(void)
This can be used by players that don't play a cRecording, but rather do something completely differen...
virtual void SetTotal(const char *Total)
Sets the total length of the recording, as a user readable string if the form "h:mm:ss".
virtual void Flush(void)
Actually commits all data to the OSD hardware.
char FontOsd[MAXFONTNAME]
void SetItem(const char *Text, int Index, bool Current)
static const cCursesFont Font
static cControl * Control(bool Hidden=false)
Old version of this function, for backwards compatibility with plugins.
virtual ~cSkinLCARSDisplayTracks()
const char * ShortText(void) const
static const char *const * ReplaySymbols[2][2][5]
static cFont * CreateTinyFont(int LineHeight)
static cBitmap bmDolbyDigital