100 tabs[3] = Tab3 ?
tabs[2] + Tab3 : 0;
101 tabs[4] = Tab4 ?
tabs[3] + Tab4 : 0;
102 tabs[5] = Tab5 ?
tabs[4] + Tab5 : 0;
103 for (
int i = 1; i <
MaxTabs; i++)
116 static char buffer[1000];
118 const char *b = strchrnul(a,
'\t');
119 while (*b &&
Tab-- > 0) {
121 b = strchrnul(a,
'\t');
124 return (
Tab <= 0) ? a : NULL;
125 unsigned int n = b - a;
126 if (n >=
sizeof(buffer))
127 n =
sizeof(buffer) - 1;
128 strncpy(buffer, a, n);
160 int p1 =
Pos(m->Position());
167 Mark(p1, Start, m->Position() ==
Current, ColorMark, ColorCurrent);
176 DrawRectangle(x, 0, x, Height() - 1, ColorMark);
177 const int d = Height() / (
Current ? 3 : 9);
178 for (
int i = 0; i < d; i++) {
179 int h = Start ? i : Height() - 1 - i;
180 DrawRectangle(x - d + i, h, x + d - i, h,
Current ? ColorCurrent : ColorMark);
235 if (strcmp(Skin->Name(), Name) == 0) {
236 isyslog(
"setting current skin to \"%s\"", Name);
244 isyslog(
"skin \"%s\" not available - using \"%s\" instead", Name,
current->Name());
246 esyslog(
"ERROR: no skin available");
256 dsyslog(
"cSkins::Message(%d, \"%s\", %d) called from background thread - ignored! (Use cSkins::QueueMessage() instead)", Type, s, Seconds);
299 dsyslog(
"cSkins::QueueMessage() called with mtStatus - ignored!");
312 dsyslog(
"cSkins::QueueMessage() called with empty message from main thread - ignored!");
318 dsyslog(
"cSkins::QueueMessage() called from main thread with Timeout = %d - ignored!", Timeout);
339 if (m->state == 0 && m->timeout == -1)
355 dsyslog(
"cSkins::ProcessQueuedMessages() called from background thread - ignored!");
380 if (msg->
state == 1) {
393 if (m && m->
state == 2) {
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...
bool TimedWait(cMutex &Mutex, int TimeoutMs)
eKeys Wait(int Seconds=0, bool KeepChar=false)
void Add(cListObject *Object, cListObject *After=NULL)
const T * Next(const T *Object) const
< Returns the element immediately before Object in this list, or NULL if Object is the first element ...
const T * First(void) const
Returns the first element in this list, or NULL if the list is empty.
A steerable satellite dish generally points to the south on the northern hemisphere,...
int TargetLongitude(void) const
Returns the longitude the dish is supposed to be moved to.
const char * Title(char Delimiter=' ', bool NewIndicator=false, int Level=-1) const
virtual void SetPositioner(const cPositioner *Positioner)
Sets the Positioner used to move the satellite dish.
cSkinDisplayChannel(void)
const cPositioner * positioner
< This class is used to display the current channel, together with the present and following EPG even...
virtual void SetMessage(eMessageType Type, const char *Text)=0
Sets a one line message Text, with the given Type.
void Mark(int x, bool Start, bool Current, tColor ColorMark, tColor ColorCurrent)
cProgressBar(int Width, int Height, int Current, int Total, const cMarks *Marks, tColor ColorSeen, tColor ColorRest, tColor ColorSelected, tColor ColorMark, tColor ColorCurrent)
virtual void SetMarks(const cMarks *Marks)
Sets the editing marks to Marks, which shall be used to display the progress bar through a cProgressB...
virtual void SetTitle(const char *Title)=0
Sets the title of the recording.
virtual void SetRecording(const cRecording *Recording)
Sets the recording that is currently being played.
const cMarks * marks
< This class implements the progress display used during replay of a recording.
static cSkinDisplay * current
virtual void Flush(void)
Actually draws the OSD display to the output device.
static cSkinDisplay * Current(void)
Returns the currently active cSkinDisplay.
virtual void SetMessage(eMessageType Type, const char *Text)
Sets a one line message Text, with the given Type.
static int AvgCharWidth(void)
Returns the average width of a character in pixel (just a raw estimate).
virtual ~cSkinQueuedMessage()
cSkinQueuedMessage(eMessageType Type, const char *s, int Seconds, int Timeout)
cSkin(const char *Name, cTheme *Theme=NULL)
Creates a new skin class, with the given Name and Theme.
bool SetCurrent(const char *Name=NULL)
Sets the current skin to the one indicated by name.
eKeys Message(eMessageType Type, const char *s, int Seconds=0)
Displays the given message, either through a currently visible display object that is capable of doin...
void Flush(void)
Flushes the currently active cSkinDisplay, if any.
cSkin * Current(void)
Returns a pointer to the current skin.
virtual void Clear(void)
Free up all registered skins.
cSkinDisplayMessage * displayMessage
void ProcessQueuedMessages(void)
Processes the first queued message, if any.
int QueueMessage(eMessageType Type, const char *s, int Seconds=0, int Timeout=0)
Like Message(), but this function may be called from a background thread.
static void MsgOsdStatusMessage(const char *Message)
static void MsgOsdClear(void)
static cString sprintf(const char *fmt,...) __attribute__((format(printf
void Scroll(bool Up, bool Page)
static void Save(const char *SkinName, cTheme *Theme)
static tThreadId IsMainThread(void)
static tThreadId ThreadId(void)
cList< cSkinQueuedMessage > SkinQueuedMessages