summaryrefslogtreecommitdiff
path: root/vdrtva.h
blob: 46543f8acab3ca5fcf2bdf25bad5c02f055a8d37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#include <vdr/filter.h>
#include <vdr/device.h>
#include <vdr/status.h>

class cTvaFilter : public cFilter {
private:
  cSectionSyncer sectionSyncer;
  cPatFilter *patFilter;
protected:
  virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length);
public:
  cTvaFilter(void);
}; 

class cTvaStatusMonitor : public cStatus {
  private:
    time_t timeradded;
    const cTimer *lasttimer;
  protected:
    virtual void TimerChange(const cTimer *Timer, eTimerChange Change);
               // Indicates a change in the timer settings.
               // If Change is tcAdd or tcDel, Timer points to the timer that has
               // been added or will be deleted, respectively. In case of tcMod,
               // Timer is NULL; this indicates that some timer has been changed.
               // Note that tcAdd and tcDel are always also followed by a tcMod.
  public:
    cTvaStatusMonitor(void);
    int GetTimerAddedDelta(void);
    void ClearTimerAdded(void);
    const cTimer *GetLastTimer() { return lasttimer; }
};


class cTvaMenuSetup : public cMenuSetupPage {
private:
  int newcollectionperiod;
  int newlifetime;
  int newpriority;
  int newseriesLifetime;
  int newupdatetime;
protected:
  virtual void Store(void);
public:
  cTvaMenuSetup(void);
};


class cTvaLog {
  private:
    char *buffer, *mailfrom, *mailto;
    int length;
    int size;
  public:
    cTvaLog(void);
    ~cTvaLog(void);
    void Append(const char *Fmt, ...);
    const char* Buffer() { return buffer; }
    int Length(void);
    void Clear() { length = 0; }
    void MailLog(void);
    void setmailTo(char *opt);
    const char * mailTo() { return mailto; }
    void setmailFrom(char *opt);
    const char * mailFrom() { return mailfrom; }
};


class cTvaTimerItem : public cListObject {
private:
  cTimer *timer;
public:
  cTvaTimerItem(cTimer *Timer);
  virtual int Compare(const cListObject &ListObject) const;
  cTimer *Timer(void) { return timer; }
};


class cTvaTimers : public cConfig<cTvaTimerItem> {
public:
  cTvaTimers(void);
};


class cChanDA : public cListObject {
  private:
    int cid;
    char *defaultAuthority;
  public:
    cChanDA(void);
    ~cChanDA(void);
    int Cid(void) { return cid; }
    void Set(int Cid);
    char * DA(void) { return defaultAuthority; }
    void SetDA(char *DA);
};

class cChanDAs : public cRwLock, public cConfig<cChanDA> {
  private:
    int maxNumber;
    cHash<cChanDA> chanDAHash;
  public:
    cChanDAs(void);
    ~cChanDAs(void);
    int MaxNumber(void) { return maxNumber; }
    void SetMaxNumber(int number) { maxNumber = number; }
    cChanDA *GetByChannelID(int cid);
    cChanDA *NewChanDA(int Cid);
};


class cEventCRID : public cListObject {
  private:
    tEventID eid;
    int cid;
    char *iCrid;
    char *sCrid;
  public:
    cEventCRID(void);
    ~cEventCRID(void);
    tEventID Eid(void) { return eid; }
    void Set(int Cid, tEventID Eid);
    char * iCRID(void) { return iCrid; }
    char * sCRID(void) { return sCrid; }
    void SetCRIDs(char *iCRID, char *sCRID);
    int Cid(void) { return cid; }
};

class cEventCRIDs : public cRwLock, public cConfig<cEventCRID> {
  private:
    int maxNumber;
    cHash<cEventCRID> EventCRIDHash;
  public:
    cEventCRIDs(void);
    ~cEventCRIDs(void);
    int MaxNumber(void) { return maxNumber; }
    void SetMaxNumber(int number) { maxNumber = number; }
    cEventCRID *GetByID(int Cid, tEventID Eid);
    cEventCRID *NewEventCRID(int Cid, tEventID Eid);
};


class cSuggestCRID : public cListObject {
  private:
    char *iCrid;
    char *gCrid;
    int cid;
  public:
    cSuggestCRID(void);
    ~cSuggestCRID(void);
    char * iCRID(void) { return iCrid; }
    char * gCRID(void) { return gCrid; }
    int Cid(void) { return cid; }
    void Set(int Cid, char *iCRID, char *gCRID);
    virtual int Compare(const cListObject &ListObject) const;
};


class cSuggestCRIDs : public cRwLock, public cConfig<cSuggestCRID> {
  private:
    int maxNumber;
  public:
    cSuggestCRIDs(void);
    ~cSuggestCRIDs(void);
    int MaxNumber(void) { return maxNumber; }
    void SetMaxNumber(int number) { maxNumber = number; }
    cSuggestCRID *NewSuggestCRID(int Cid, char *icrid, char *gcrid);
};


class cLinkItem : public cListObject {
  private:
    char *sCrid;
    int modtime;
    char *iCrids;
  public:
    cLinkItem(void);
    ~cLinkItem(void);
    void Set(const char *sCRID, int ModTime, const char *iCRIDs);
    char * iCRIDs(void) { return iCrids; }
    char * sCRID(void) { return sCrid; }
    int ModTime(void) { return modtime; }
};

class cLinks : public cRwLock, public cConfig<cLinkItem> {
  private:
    int maxNumber;
  public:
    cLinks(void);
//    ~cLinks(void);
    int MaxNumber(void) { return maxNumber; }
    void SetMaxNumber(int number) { maxNumber = number; }
    cLinkItem *NewLinkItem(const char *sCRID, int ModTime, const char *iCRIDs);
};