vdr  2.4.1
channels.h
Go to the documentation of this file.
1 /*
2  * channels.h: Channel handling
3  *
4  * See the main source file 'vdr.c' for copyright information and
5  * how to reach the author.
6  *
7  * $Id: channels.h 4.3 2017/06/10 15:06:40 kls Exp $
8  */
9 
10 #ifndef __CHANNELS_H
11 #define __CHANNELS_H
12 
13 #include "config.h"
14 #include "sources.h"
15 #include "thread.h"
16 #include "tools.h"
17 
18 #define ISTRANSPONDER(f1, f2) (abs((f1) - (f2)) < 4) //XXX
19 
20 #define CHANNELMOD_NONE 0x00
21 #define CHANNELMOD_ALL 0xFF
22 #define CHANNELMOD_NAME 0x01
23 #define CHANNELMOD_PIDS 0x02
24 #define CHANNELMOD_ID 0x04
25 #define CHANNELMOD_AUX 0x08
26 #define CHANNELMOD_CA 0x10
27 #define CHANNELMOD_TRANSP 0x20
28 #define CHANNELMOD_LANGS 0x40
29 #define CHANNELMOD_RETUNE (CHANNELMOD_PIDS | CHANNELMOD_CA | CHANNELMOD_TRANSP)
30 
31 #define MAXAPIDS 32 // audio
32 #define MAXDPIDS 16 // dolby (AC3 + DTS)
33 #define MAXSPIDS 32 // subtitles
34 #define MAXCAIDS 12 // conditional access
35 
36 #define MAXLANGCODE1 4 // a 3 letter language code, zero terminated
37 #define MAXLANGCODE2 8 // up to two 3 letter language codes, separated by '+' and zero terminated
38 
39 #define CA_FTA 0x0000
40 #define CA_DVB_MIN 0x0001
41 #define CA_DVB_MAX 0x000F
42 #define CA_USER_MIN 0x0010
43 #define CA_USER_MAX 0x00FF
44 #define CA_ENCRYPTED_MIN 0x0100
45 #define CA_ENCRYPTED_MAX 0xFFFF
46 
47 #define LCN_OVERFLOW_OFFSET 1024
48 
49 struct tChannelID {
50 private:
51  int source;
52  int nid;
53  int tid;
54  int sid;
55  int rid;
56 public:
57  tChannelID(void) { source = nid = tid = sid = rid = 0; }
58  tChannelID(int Source, int Nid, int Tid, int Sid, int Rid = 0) { source = Source; nid = Nid; tid = Tid; sid = Sid; rid = Rid; }
59  bool operator== (const tChannelID &arg) const { return source == arg.source && nid == arg.nid && tid == arg.tid && sid == arg.sid && rid == arg.rid; }
60  bool Valid(void) const { return (nid || tid) && sid; } // rid is optional and source may be 0//XXX source may not be 0???
61  tChannelID &ClrRid(void) { rid = 0; return *this; }
63  int Source(void) const { return source; }
64  int Nid(void) const { return nid; }
65  int Tid(void) const { return tid; }
66  int Sid(void) const { return sid; }
67  int Rid(void) const { return rid; }
68  static tChannelID FromString(const char *s);
69  cString ToString(void) const;
70  static const tChannelID InvalidID;
71  };
72 
73 class cChannel;
74 
75 class cLinkChannel : public cListObject {
76 private:
78 public:
80  cChannel *Channel(void) { return channel; }
81  };
82 
83 class cLinkChannels : public cList<cLinkChannel> {
84  };
85 
86 class cSchedule;
87 class cChannels;
88 
89 class cChannel : public cListObject {
90  friend class cSchedules;
91  friend class cMenuEditChannel;
92  friend class cDvbSourceParam;
93 private:
94  static cString ToText(const cChannel *Channel);
95  char *name;
96  char *shortName;
97  char *provider;
98  char *portalName;
100  int frequency; // MHz
101  int source;
102  int srate;
103  int vpid;
104  int ppid;
105  int vtype;
106  int apids[MAXAPIDS + 1]; // list is zero-terminated
107  int atypes[MAXAPIDS + 1]; // list is zero-terminated
109  int dpids[MAXDPIDS + 1]; // list is zero-terminated
110  int dtypes[MAXAPIDS + 1]; // list is zero-terminated
112  int spids[MAXSPIDS + 1]; // list is zero-terminated
117  int tpid;
118  int caids[MAXCAIDS + 1]; // list is zero-terminated
119  int nid;
120  int tid;
121  int sid;
122  int rid;
123  int lcn; // Logical channel number assigned by data stream (or -1 if not available)
124  int number; // Sequence number assigned on load
125  bool groupSep;
128  mutable int nameSourceMode;
131  mutable int modification;
132  time_t seen; // When this channel was last seen in the SDT of its transponder
133  mutable const cSchedule *schedule;
136  cString TransponderDataToString(void) const;
137 public:
138  cChannel(void);
139  cChannel(const cChannel &Channel);
140  ~cChannel();
141  cChannel& operator= (const cChannel &Channel);
142  cString ToText(void) const;
143  bool Parse(const char *s);
144  bool Save(FILE *f);
145  const char *Name(void) const;
146  const char *ShortName(bool OrName = false) const;
147  const char *Provider(void) const { return provider; }
148  const char *PortalName(void) const { return portalName; }
149  int Frequency(void) const { return frequency; }
150  int Transponder(void) const;
151  static int Transponder(int Frequency, char Polarization);
152  int Source(void) const { return source; }
153  int Srate(void) const { return srate; }
154  int Vpid(void) const { return vpid; }
155  int Ppid(void) const { return ppid; }
156  int Vtype(void) const { return vtype; }
157  const int *Apids(void) const { return apids; }
158  const int *Dpids(void) const { return dpids; }
159  const int *Spids(void) const { return spids; }
160  int Apid(int i) const { return (0 <= i && i < MAXAPIDS) ? apids[i] : 0; }
161  int Dpid(int i) const { return (0 <= i && i < MAXDPIDS) ? dpids[i] : 0; }
162  int Spid(int i) const { return (0 <= i && i < MAXSPIDS) ? spids[i] : 0; }
163  const char *Alang(int i) const { return (0 <= i && i < MAXAPIDS) ? alangs[i] : ""; }
164  const char *Dlang(int i) const { return (0 <= i && i < MAXDPIDS) ? dlangs[i] : ""; }
165  const char *Slang(int i) const { return (0 <= i && i < MAXSPIDS) ? slangs[i] : ""; }
166  int Atype(int i) const { return (0 <= i && i < MAXAPIDS) ? atypes[i] : 0; }
167  int Dtype(int i) const { return (0 <= i && i < MAXDPIDS) ? dtypes[i] : 0; }
168  uchar SubtitlingType(int i) const { return (0 <= i && i < MAXSPIDS) ? subtitlingTypes[i] : uchar(0); }
169  uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : uint16_t(0); }
170  uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : uint16_t(0); }
171  int Tpid(void) const { return tpid; }
172  const int *Caids(void) const { return caids; }
173  int Ca(int Index = 0) const { return Index < MAXCAIDS ? caids[Index] : 0; }
174  int Nid(void) const { return nid; }
175  int Tid(void) const { return tid; }
176  int Sid(void) const { return sid; }
177  int Rid(void) const { return rid; }
178  int Lcn(void) const { return lcn; }
179  int Number(void) const { return number; }
180  void SetNumber(int Number) { number = Number; }
181  bool GroupSep(void) const { return groupSep; }
182  const char *Parameters(void) const { return parameters; }
183  const cLinkChannels* LinkChannels(void) const { return linkChannels; }
184  const cChannel *RefChannel(void) const { return refChannel; }
185  bool IsAtsc(void) const { return cSource::IsAtsc(source); }
186  bool IsCable(void) const { return cSource::IsCable(source); }
187  bool IsSat(void) const { return cSource::IsSat(source); }
188  bool IsTerr(void) const { return cSource::IsTerr(source); }
189  bool IsSourceType(char Source) const { return cSource::IsType(source, Source); }
190  tChannelID GetChannelID(void) const { return tChannelID(source, nid, (nid || tid) ? tid : Transponder(), sid, rid); }
191  int Modification(int Mask = CHANNELMOD_ALL) const;
192  time_t Seen(void) const { return seen; }
193  void CopyTransponderData(const cChannel *Channel);
194  bool SetTransponderData(int Source, int Frequency, int Srate, const char *Parameters, bool Quiet = false);
195  bool SetSource(int Source);
196  bool SetId(cChannels *Channels, int Nid, int Tid, int Sid, int Rid = 0);
197  bool SetLcn(int Lcn);
198  bool SetName(const char *Name, const char *ShortName, const char *Provider);
199  bool SetPortalName(const char *PortalName);
200  bool SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid);
201  bool SetCaIds(const int *CaIds); // list must be zero-terminated
202  bool SetCaDescriptors(int Level);
205  bool SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *CompositionPageIds, uint16_t *AncillaryPageIds);
206  void SetSeen(void);
207  void DelLinkChannel(cChannel *LinkChannel);
208  };
209 
210 class cChannels : public cConfig<cChannel> {
211 private:
213  static int maxNumber;
218  void DeleteDuplicateChannels(void);
219 public:
220  cChannels(void);
221  static const cChannels *GetChannelsRead(cStateKey &StateKey, int TimeoutMs = 0);
224  static cChannels *GetChannelsWrite(cStateKey &StateKey, int TimeoutMs = 0);
227  static bool Load(const char *FileName, bool AllowComments = false, bool MustExist = false);
228  void HashChannel(cChannel *Channel);
229  void UnhashChannel(cChannel *Channel);
230  int GetNextGroup(int Idx) const;
231  int GetPrevGroup(int Idx) const;
232  int GetNextNormal(int Idx) const;
233  int GetPrevNormal(int Idx) const;
234  void ReNumber(void);
235  void Del(cChannel *Channel);
236  const cChannel *GetByNumber(int Number, int SkipGap = 0) const;
237  cChannel *GetByNumber(int Number, int SkipGap = 0) { return const_cast<cChannel *>(static_cast<const cChannels *>(this)->GetByNumber(Number, SkipGap)); }
238  const cChannel *GetByServiceID(int Source, int Transponder, unsigned short ServiceID) const;
239  cChannel *GetByServiceID(int Source, int Transponder, unsigned short ServiceID) { return const_cast<cChannel *>(static_cast<const cChannels *>(this)->GetByServiceID(Source, Transponder, ServiceID)); }
240  const cChannel *GetByChannelID(tChannelID ChannelID, bool TryWithoutRid = false, bool TryWithoutPolarization = false) const;
241  cChannel *GetByChannelID(tChannelID ChannelID, bool TryWithoutRid = false, bool TryWithoutPolarization = false) { return const_cast<cChannel *>(static_cast<const cChannels *>(this)->GetByChannelID(ChannelID, TryWithoutRid, TryWithoutPolarization)); }
242  const cChannel *GetByTransponderID(tChannelID ChannelID) const;
243  cChannel *GetByTransponderID(tChannelID ChannelID) { return const_cast<cChannel *>(static_cast<const cChannels *>(this)->GetByTransponderID(ChannelID)); }
244  bool HasUniqueChannelID(const cChannel *NewChannel, const cChannel *OldChannel = NULL) const;
245  bool SwitchTo(int Number) const;
246  static int MaxNumber(void) { return maxNumber; }
247  static int MaxChannelNameLength(void);
248  static int MaxShortChannelNameLength(void);
249  void SetModifiedByUser(void);
250  bool ModifiedByUser(int &State) const;
255  cChannel *NewChannel(const cChannel *Transponder, const char *Name, const char *ShortName, const char *Provider, int Nid, int Tid, int Sid, int Rid = 0);
256  bool MarkObsoleteChannels(int Source, int Nid, int Tid);
257  };
258 
259 // Provide lock controlled access to the list:
260 
261 DEF_LIST_LOCK(Channels);
262 
263 // These macros provide a convenient way of locking the global channels list
264 // and making sure the lock is released as soon as the current scope is left
265 // (note that these macros wait forever to obtain the lock!):
266 
267 #define LOCK_CHANNELS_READ USE_LIST_LOCK_READ(Channels)
268 #define LOCK_CHANNELS_WRITE USE_LIST_LOCK_WRITE(Channels)
269 
270 cString ChannelString(const cChannel *Channel, int Number);
271 
272 #endif //__CHANNELS_H
cChannel::rid
int rid
Definition: channels.h:122
cChannels::SwitchTo
bool SwitchTo(int Number) const
Definition: channels.c:1070
cChannel::Caids
const int * Caids(void) const
Definition: channels.h:172
tChannelID::tid
int tid
Definition: channels.h:53
cChannel::ppid
int ppid
Definition: channels.h:104
tChannelID::tChannelID
tChannelID(void)
Definition: channels.h:57
cChannel::PortalName
const char * PortalName(void) const
Definition: channels.h:148
cChannels::ModifiedByUser
bool ModifiedByUser(int &State) const
Returns true if the channels have been modified by the user since the last call to this function with...
Definition: channels.c:1106
cChannel::dpids
int dpids[MAXDPIDS+1]
Definition: channels.h:109
cChannel::operator=
cChannel & operator=(const cChannel &Channel)
Definition: channels.c:94
tChannelID::Sid
int Sid(void) const
Definition: channels.h:66
cChannel::caids
int caids[MAXCAIDS+1]
Definition: channels.h:118
cChannel::Ppid
int Ppid(void) const
Definition: channels.h:155
cChannel::DelLinkChannel
void DelLinkChannel(cChannel *LinkChannel)
Definition: channels.c:438
cChannel::Provider
const char * Provider(void) const
Definition: channels.h:147
cChannels::ReNumber
void ReNumber(void)
Recalculate 'number' based on channel type.
Definition: channels.c:932
CHANNELMOD_ALL
#define CHANNELMOD_ALL
Definition: channels.h:21
cChannel::SetName
bool SetName(const char *Name, const char *ShortName, const char *Provider)
Definition: channels.c:258
sources.h
cChannel::SetCaIds
bool SetCaIds(const int *CaIds)
Definition: channels.c:454
cChannel::shortName
char * shortName
Definition: channels.h:96
cChannel::dtypes
int dtypes[MAXAPIDS+1]
Definition: channels.h:110
cListObject::Index
int Index(void) const
Definition: tools.c:2072
tChannelID::ClrPolarization
tChannelID & ClrPolarization(void)
Definition: channels.c:48
cChannel::Name
const char * Name(void) const
Definition: channels.c:108
cChannel::atypes
int atypes[MAXAPIDS+1]
Definition: channels.h:107
cChannel::nameSource
cString nameSource
Definition: channels.h:127
cChannel::SubtitlingType
uchar SubtitlingType(int i) const
Definition: channels.h:168
cChannel::Parameters
const char * Parameters(void) const
Definition: channels.h:182
cChannel::SetPids
bool SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid)
Definition: channels.c:341
cChannel::modification
int modification
Definition: channels.h:131
MAXDPIDS
#define MAXDPIDS
Definition: channels.h:32
cChannel::SetNumber
void SetNumber(int Number)
Definition: channels.h:180
cChannel::Source
int Source(void) const
Definition: channels.h:152
cChannel::TransponderDataToString
cString TransponderDataToString(void) const
Definition: channels.c:540
cChannel::Number
int Number(void) const
Definition: channels.h:179
cChannel::Dpid
int Dpid(int i) const
Definition: channels.h:161
cChannel::Spid
int Spid(int i) const
Definition: channels.h:162
cChannel::Alang
const char * Alang(int i) const
Definition: channels.h:163
cChannels::GetByNumber
cChannel * GetByNumber(int Number, int SkipGap=0)
Definition: channels.h:237
cChannels::channelsHashSid
cHash< cChannel > channelsHashSid
Definition: channels.h:217
cChannel::LinkChannels
const cLinkChannels * LinkChannels(void) const
Definition: channels.h:183
cChannel::RefChannel
const cChannel * RefChannel(void) const
Definition: channels.h:184
cChannel::Sid
int Sid(void) const
Definition: channels.h:176
cChannel::SetLcn
bool SetLcn(int Lcn)
Definition: channels.c:247
cChannels::GetNextNormal
int GetNextNormal(int Idx) const
Get next normal channel (not group)
Definition: channels.c:916
cChannels::HashChannel
void HashChannel(cChannel *Channel)
Definition: channels.c:890
MAXSPIDS
#define MAXSPIDS
Definition: channels.h:33
cChannel::CopyTransponderData
void CopyTransponderData(const cChannel *Channel)
Definition: channels.c:167
tChannelID::operator==
bool operator==(const tChannelID &arg) const
Definition: channels.h:59
cChannels::SetModifiedByUser
void SetModifiedByUser(void)
Definition: channels.c:1100
cChannels::GetByNumber
const cChannel * GetByNumber(int Number, int SkipGap=0) const
Definition: channels.c:990
cMenuEditChannel
Definition: menu.c:162
cChannels::cChannels
cChannels(void)
Definition: channels.c:844
cConfig< cChannel >::FileName
const char * FileName(void)
Definition: config.h:119
cChannel::Lcn
int Lcn(void) const
Definition: channels.h:178
cChannels::MaxShortChannelNameLength
static int MaxShortChannelNameLength(void)
Definition: channels.c:1088
cChannel::name
char * name
Definition: channels.h:95
cChannels::maxShortChannelNameLength
static int maxShortChannelNameLength
Definition: channels.h:215
cChannel::schedule
const cSchedule * schedule
Definition: channels.h:133
cChannel::number
int number
Definition: channels.h:124
cChannel::vtype
int vtype
Definition: channels.h:105
tChannelID::nid
int nid
actually the "original" network id
Definition: channels.h:52
cChannel::frequency
int frequency
Definition: channels.h:100
cChannels::GetChannelsWrite
static cChannels * GetChannelsWrite(cStateKey &StateKey, int TimeoutMs=0)
Gets the list of channels for write access.
Definition: channels.c:855
cChannel::AncillaryPageId
uint16_t AncillaryPageId(int i) const
Definition: channels.h:170
cChannel::Dtype
int Dtype(int i) const
Definition: channels.h:167
tChannelID
Definition: channels.h:49
tChannelID::Nid
int Nid(void) const
Definition: channels.h:64
cChannel::SetId
bool SetId(cChannels *Channels, int Nid, int Tid, int Sid, int Rid=0)
Definition: channels.c:227
cChannel::Save
bool Save(FILE *f)
Definition: channels.c:816
cChannels::GetPrevGroup
int GetPrevGroup(int Idx) const
Get previous channel group.
Definition: channels.c:908
cChannel::Rid
int Rid(void) const
Definition: channels.h:177
cStateKey
Definition: thread.h:233
cChannel::SetLinkChannels
bool SetLinkChannels(cLinkChannels *LinkChannels)
Definition: channels.c:487
cChannel::Nid
int Nid(void) const
Definition: channels.h:174
cChannel::Transponder
int Transponder(void) const
Returns the transponder frequency in MHz, plus the polarization in case of sat.
Definition: channels.c:147
cChannel::Modification
int Modification(int Mask=CHANNELMOD_ALL) const
Definition: channels.c:160
cChannels::GetPrevNormal
int GetPrevNormal(int Idx) const
Get previous normal channel (not group)
Definition: channels.c:924
cChannel::nameSourceMode
int nameSourceMode
Definition: channels.h:128
ChannelString
cString ChannelString(const cChannel *Channel, int Number)
Definition: channels.c:1147
cChannels::MaxChannelNameLength
static int MaxChannelNameLength(void)
Definition: channels.c:1076
cChannel::IsAtsc
bool IsAtsc(void) const
Definition: channels.h:185
cChannel::Dpids
const int * Dpids(void) const
Definition: channels.h:158
cChannel::SetTransponderData
bool SetTransponderData(int Source, int Frequency, int Srate, const char *Parameters, bool Quiet=false)
Definition: channels.c:177
cChannel::refChannel
cChannel * refChannel
Definition: channels.h:135
cChannels::MaxNumber
static int MaxNumber(void)
Definition: channels.h:246
cChannel::lcn
int lcn
Definition: channels.h:123
cChannel::tpid
int tpid
Definition: channels.h:117
cListObject
Definition: tools.h:493
MAXLANGCODE2
#define MAXLANGCODE2
Definition: channels.h:37
cChannel::Tid
int Tid(void) const
Definition: channels.h:175
cChannels::MarkObsoleteChannels
bool MarkObsoleteChannels(int Source, int Nid, int Tid)
Definition: channels.c:1132
tChannelID::tChannelID
tChannelID(int Source, int Nid, int Tid, int Sid, int Rid=0)
Definition: channels.h:58
cChannel::__EndData__
int __EndData__
Definition: channels.h:126
cChannel::SetSeen
void SetSeen(void)
Definition: channels.c:433
cChannel::Dlang
const char * Dlang(int i) const
Definition: channels.h:164
uchar
unsigned char uchar
Definition: tools.h:31
cSource::IsCable
static bool IsCable(int Code)
Definition: sources.h:56
cChannels::GetByTransponderID
const cChannel * GetByTransponderID(tChannelID ChannelID) const
Definition: channels.c:1048
cChannel::IsSourceType
bool IsSourceType(char Source) const
Definition: channels.h:189
cChannel::Tpid
int Tpid(void) const
Definition: channels.h:171
tChannelID::Rid
int Rid(void) const
Definition: channels.h:67
tChannelID::ToString
cString ToString(void) const
Definition: channels.c:41
cChannel::Seen
time_t Seen(void) const
Definition: channels.h:192
cChannel::IsSat
bool IsSat(void) const
Definition: channels.h:187
cChannels::GetByChannelID
const cChannel * GetByChannelID(tChannelID ChannelID, bool TryWithoutRid=false, bool TryWithoutPolarization=false) const
Definition: channels.c:1018
cChannel::nid
int nid
Definition: channels.h:119
cChannels
Definition: channels.h:210
cChannel::SetPortalName
bool SetPortalName(const char *PortalName)
Definition: channels.c:286
cChannel::Parse
bool Parse(const char *s)
Definition: channels.c:609
cChannels::Del
void Del(cChannel *Channel)
Delete the given Channel from the list.
Definition: channels.c:982
cChannel::IsCable
bool IsCable(void) const
Definition: channels.h:186
cChannel::ToText
cString ToText(void) const
Definition: channels.c:604
cChannel::GroupSep
bool GroupSep(void) const
Definition: channels.h:181
cChannel::CompositionPageId
uint16_t CompositionPageId(int i) const
Definition: channels.h:169
cList
Definition: tools.h:594
tChannelID::source
int source
Definition: channels.h:51
cChannel::parameters
cString parameters
Definition: channels.h:130
cDvbSourceParam
Definition: dvbdevice.c:1760
tChannelID::Valid
bool Valid(void) const
Definition: channels.h:60
tChannelID::Source
int Source(void) const
Definition: channels.h:63
cChannel::Vpid
int Vpid(void) const
Definition: channels.h:154
cChannel::seen
time_t seen
Definition: channels.h:132
cChannels::NewChannel
cChannel * NewChannel(const cChannel *Transponder, const char *Name, const char *ShortName, const char *Provider, int Nid, int Tid, int Sid, int Rid=0)
Definition: channels.c:1113
cChannel::Vtype
int Vtype(void) const
Definition: channels.h:156
cChannels::channels
static cChannels channels
Definition: channels.h:212
cChannel
Definition: channels.h:89
cChannel::Apid
int Apid(int i) const
Definition: channels.h:160
cChannels::GetByChannelID
cChannel * GetByChannelID(tChannelID ChannelID, bool TryWithoutRid=false, bool TryWithoutPolarization=false)
Definition: channels.h:241
cChannels::HasUniqueChannelID
bool HasUniqueChannelID(const cChannel *NewChannel, const cChannel *OldChannel=NULL) const
Definition: channels.c:1060
cChannel::Srate
int Srate(void) const
Definition: channels.h:153
tChannelID::InvalidID
static const tChannelID InvalidID
Definition: channels.h:70
cString
Definition: tools.h:176
cChannel::compositionPageIds
uint16_t compositionPageIds[MAXSPIDS]
Definition: channels.h:115
cLinkChannel
Definition: channels.h:75
cChannel::Atype
int Atype(int i) const
Definition: channels.h:166
cSource::IsTerr
static bool IsTerr(int Code)
Definition: sources.h:58
cChannel::cChannel
cChannel(void)
Definition: channels.c:57
cChannels::DeleteDuplicateChannels
void DeleteDuplicateChannels(void)
Definition: channels.c:860
cChannel::portalName
char * portalName
Definition: channels.h:98
cChannels::Load
static bool Load(const char *FileName, bool AllowComments=false, bool MustExist=false)
Definition: channels.c:879
cChannel::sid
int sid
Definition: channels.h:121
cChannel::Slang
const char * Slang(int i) const
Definition: channels.h:165
cChannel::dlangs
char dlangs[MAXDPIDS][MAXLANGCODE2]
Definition: channels.h:111
cSchedules
Definition: epg.h:192
cChannel::slangs
char slangs[MAXSPIDS][MAXLANGCODE2]
Definition: channels.h:113
cLinkChannels
Definition: channels.h:83
cChannel::linkChannels
cLinkChannels * linkChannels
Definition: channels.h:134
cChannels::maxNumber
static int maxNumber
Definition: channels.h:213
cChannels::GetNextGroup
int GetNextGroup(int Idx) const
Get next channel group.
Definition: channels.c:900
cLinkChannel::Channel
cChannel * Channel(void)
Definition: channels.h:80
cChannel::srate
int srate
Definition: channels.h:102
cLinkChannel::cLinkChannel
cLinkChannel(cChannel *Channel)
Definition: channels.h:79
cSource::IsType
static bool IsType(int Code, char Source)
Definition: sources.h:59
cChannel::Ca
int Ca(int Index=0) const
Definition: channels.h:173
cChannels::modifiedByUser
int modifiedByUser
Definition: channels.h:216
cSource::IsAtsc
static bool IsAtsc(int Code)
Definition: sources.h:55
cChannel::alangs
char alangs[MAXAPIDS][MAXLANGCODE2]
Definition: channels.h:108
cChannel::provider
char * provider
Definition: channels.h:97
MAXCAIDS
#define MAXCAIDS
Definition: channels.h:34
cChannel::SetRefChannel
void SetRefChannel(cChannel *RefChannel)
Definition: channels.c:535
cChannel::GetChannelID
tChannelID GetChannelID(void) const
Definition: channels.h:190
cConfig
Definition: config.h:106
cChannel::SetSubtitlingDescriptors
bool SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *CompositionPageIds, uint16_t *AncillaryPageIds)
Definition: channels.c:409
cChannel::vpid
int vpid
Definition: channels.h:103
cChannels::GetChannelsRead
static const cChannels * GetChannelsRead(cStateKey &StateKey, int TimeoutMs=0)
Gets the list of channels for read access.
Definition: channels.c:850
cChannel::__BeginData__
int __BeginData__
Definition: channels.h:99
tChannelID::Tid
int Tid(void) const
Definition: channels.h:65
cChannel::SetCaDescriptors
bool SetCaDescriptors(int Level)
Definition: channels.c:476
cChannel::ShortName
const char * ShortName(bool OrName=false) const
Definition: channels.c:122
cChannel::Frequency
int Frequency(void) const
Returns the actual frequency, as given in 'channels.conf'.
Definition: channels.h:149
MAXAPIDS
#define MAXAPIDS
Definition: channels.h:31
cChannel::spids
int spids[MAXSPIDS+1]
Definition: channels.h:112
config.h
cChannel::Spids
const int * Spids(void) const
Definition: channels.h:159
cChannel::source
int source
Definition: channels.h:101
cChannel::SetSource
bool SetSource(int Source)
Definition: channels.c:214
cSource::IsSat
static bool IsSat(int Code)
Definition: sources.h:57
cHash< cChannel >
DEF_LIST_LOCK
DEF_LIST_LOCK(Channels)
cChannel::subtitlingTypes
uchar subtitlingTypes[MAXSPIDS]
Definition: channels.h:114
cChannel::tid
int tid
Definition: channels.h:120
tools.h
cChannels::UnhashChannel
void UnhashChannel(cChannel *Channel)
Definition: channels.c:895
cChannel::shortNameSource
cString shortNameSource
Definition: channels.h:129
cSchedule
Definition: epg.h:150
cChannel::apids
int apids[MAXAPIDS+1]
Definition: channels.h:106
tChannelID::FromString
static tChannelID FromString(const char *s)
Definition: channels.c:24
thread.h
cChannels::GetByTransponderID
cChannel * GetByTransponderID(tChannelID ChannelID)
Definition: channels.h:243
tChannelID::rid
int rid
Definition: channels.h:55
tChannelID::ClrRid
tChannelID & ClrRid(void)
Definition: channels.h:61
cChannel::IsTerr
bool IsTerr(void) const
Definition: channels.h:188
cChannel::groupSep
bool groupSep
Definition: channels.h:125
cChannels::GetByServiceID
cChannel * GetByServiceID(int Source, int Transponder, unsigned short ServiceID)
Definition: channels.h:239
cChannel::ancillaryPageIds
uint16_t ancillaryPageIds[MAXSPIDS]
Definition: channels.h:116
cLinkChannel::channel
cChannel * channel
Definition: channels.h:77
cChannels::GetByServiceID
const cChannel * GetByServiceID(int Source, int Transponder, unsigned short ServiceID) const
Definition: channels.c:1005
cChannel::~cChannel
~cChannel()
Definition: channels.c:85
tChannelID::sid
int sid
Definition: channels.h:54
cChannel::Apids
const int * Apids(void) const
Definition: channels.h:157
cChannels::maxChannelNameLength
static int maxChannelNameLength
Definition: channels.h:214