vdr 2.7.6
status.c
Go to the documentation of this file.
1/*
2 * status.c: Status monitoring
3 *
4 * See the main source file 'vdr.c' for copyright information and
5 * how to reach the author.
6 *
7 * $Id: status.c 5.5 2025/03/03 13:31:10 kls Exp $
8 */
9
10#include "status.h"
11#include "thread.h"
12
13// --- cStatus ---------------------------------------------------------------
14
16
18
20{
21 Mutex.Lock();
22 statusMonitors.Add(this);
23 Mutex.Unlock();
24}
25
27{
28 Mutex.Lock();
29 statusMonitors.Del(this, false);
30 Mutex.Unlock();
31}
32
34{
35 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
36 sm->ChannelChange(Channel);
37}
38
40{
41 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
42 sm->TimerChange(Timer, Change);
43}
44
45void cStatus::MsgChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView)
46{
47 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
48 sm->ChannelSwitch(Device, ChannelNumber, LiveView);
49}
50
51void cStatus::MsgRecording(const cDevice *Device, const char *Name, const char *FileName, bool On)
52{
53 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
54 sm->Recording(Device, Name, FileName, On);
55}
56
57void cStatus::MsgReplaying(const cControl *Control, const char *Name, const char *FileName, bool On)
58{
59 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
60 sm->Replaying(Control, Name, FileName, On);
61}
62
64{
65 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
66 sm->MarksModified(Marks);
67}
68
69void cStatus::MsgSetVolume(int Volume, bool Absolute)
70{
71 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
72 sm->SetVolume(Volume, Absolute);
73}
74
75void cStatus::MsgSetAudioTrack(int Index, const char * const *Tracks)
76{
77 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
78 sm->SetAudioTrack(Index, Tracks);
79}
80
81void cStatus::MsgSetAudioChannel(int AudioChannel)
82{
83 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
84 sm->SetAudioChannel(AudioChannel);
85}
86
87void cStatus::MsgSetSubtitleTrack(int Index, const char * const *Tracks)
88{
89 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
90 sm->SetSubtitleTrack(Index, Tracks);
91}
92
94{
95 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
96 sm->OsdClear();
97}
98
99void cStatus::MsgOsdTitle(const char *Title)
100{
101 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
102 sm->OsdTitle(Title);
103}
104
105void cStatus::MsgOsdStatusMessage(eMessageType Type, const char *Message)
106{
107 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
108 sm->OsdStatusMessage(Type, Message);
109}
110
111void cStatus::MsgOsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
112{
113 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
114 sm->OsdHelpKeys(Red, Green, Yellow, Blue);
115}
116
117void cStatus::MsgOsdItem(const char *Text, int Index, bool Selectable)
118{
119 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
120 sm->OsdItem(Text, Index, Selectable);
121}
122
123void cStatus::MsgOsdCurrentItem(const char *Text, int Index)
124{
125 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
126 sm->OsdCurrentItem(Text, Index);
127}
128
129void cStatus::MsgOsdTextItem(const char *Text, bool Scroll)
130{
131 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
132 sm->OsdTextItem(Text, Scroll);
133}
134
135void cStatus::MsgOsdChannel(const char *Text)
136{
137 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
138 sm->OsdChannel(Text);
139}
140
141void cStatus::MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle)
142{
143 for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
144 sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle);
145}
int Index(void) const
Definition tools.c:2095
Definition tools.h:631
static void MsgMarksModified(const cMarks *Marks)
Definition status.c:63
static void MsgOsdTitle(const char *Title)
Definition status.c:99
static void MsgOsdChannel(const char *Text)
Definition status.c:135
cStatus(void)
Definition status.c:19
static void MsgOsdItem(const char *Text, int Index, bool Selectable=true)
Definition status.c:117
static void MsgOsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
Definition status.c:111
static void MsgOsdStatusMessage(const char *Message)
Definition status.h:125
static void MsgSetAudioChannel(int AudioChannel)
Definition status.c:81
static void MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle)
Definition status.c:141
static void MsgReplaying(const cControl *Control, const char *Name, const char *FileName, bool On)
Definition status.c:57
static void MsgSetVolume(int Volume, bool Absolute)
Definition status.c:69
static void MsgRecording(const cDevice *Device, const char *Name, const char *FileName, bool On)
Definition status.c:51
static cList< cStatus > statusMonitors
Definition status.h:38
static void MsgOsdClear(void)
Definition status.c:93
static void MsgChannelChange(const cChannel *Channel)
Definition status.c:33
static void MsgSetAudioTrack(int Index, const char *const *Tracks)
Definition status.c:75
static void MsgOsdCurrentItem(const char *Text, int Index=-1)
Definition status.c:123
static void MsgTimerChange(const cTimer *Timer, eTimerChange Change)
Definition status.c:39
static void MsgOsdTextItem(const char *Text, bool Scroll=false)
Definition status.c:129
static void MsgSetSubtitleTrack(int Index, const char *const *Tracks)
Definition status.c:87
static void MsgChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView)
Definition status.c:45
virtual ~cStatus() override
Definition status.c:26
static cMutex Mutex
Definition epg.c:1424
eMessageType
Definition skins.h:37
eTimerChange
Definition status.h:32