/* * status.c: Status monitoring * * See the main source file 'vdr.c' for copyright information and * how to reach the author. * * $Id: status.c 4.1 2018/01/29 13:36:53 kls Exp $ */ #include "status.h" // --- cStatus --------------------------------------------------------------- cList cStatus::statusMonitors; cStatus::cStatus(void) { statusMonitors.Add(this); } cStatus::~cStatus() { statusMonitors.Del(this, false); } void cStatus::MsgChannelChange(const cChannel *Channel) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->ChannelChange(Channel); } void cStatus::MsgTimerChange(const cTimer *Timer, eTimerChange Change) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->TimerChange(Timer, Change); } void cStatus::MsgChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->ChannelSwitch(Device, ChannelNumber, LiveView); } void cStatus::MsgRecording(const cDevice *Device, const char *Name, const char *FileName, bool On) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->Recording(Device, Name, FileName, On); } void cStatus::MsgReplaying(const cControl *Control, const char *Name, const char *FileName, bool On) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->Replaying(Control, Name, FileName, On); } void cStatus::MsgMarksModified(const cMarks* Marks) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->MarksModified(Marks); } void cStatus::MsgSetVolume(int Volume, bool Absolute) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->SetVolume(Volume, Absolute); } void cStatus::MsgSetAudioTrack(int Index, const char * const *Tracks) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->SetAudioTrack(Index, Tracks); } void cStatus::MsgSetAudioChannel(int AudioChannel) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->SetAudioChannel(AudioChannel); } void cStatus::MsgSetSubtitleTrack(int Index, const char * const *Tracks) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->SetSubtitleTrack(Index, Tracks); } void cStatus::MsgOsdClear(void) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdClear(); } void cStatus::MsgOsdTitle(const char *Title) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdTitle(Title); } void cStatus::MsgOsdStatusMessage(const char *Message) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdStatusMessage(Message); } void cStatus::MsgOsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdHelpKeys(Red, Green, Yellow, Blue); } void cStatus::MsgOsdItem(const char *Text, int Index) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdItem(Text, Index); } void cStatus::MsgOsdCurrentItem(const char *Text) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdCurrentItem(Text); } void cStatus::MsgOsdTextItem(const char *Text, bool Scroll) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdTextItem(Text, Scroll); } void cStatus::MsgOsdChannel(const char *Text) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdChannel(Text); } void cStatus::MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) { for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle); }