vdr  2.4.1
sources.h
Go to the documentation of this file.
1 /*
2  * sources.h: Source handling
3  *
4  * See the main source file 'vdr.c' for copyright information and
5  * how to reach the author.
6  *
7  * $Id: sources.h 4.0 2014/03/09 11:59:49 kls Exp $
8  */
9 
10 #ifndef __SOURCES_H
11 #define __SOURCES_H
12 
13 #include "config.h"
14 
15 class cSource : public cListObject {
16 public:
17  enum eSourceType {
18  stNone = 0x00000000,
19  stAtsc = ('A' << 24),
20  stCable = ('C' << 24),
21  stSat = ('S' << 24),
22  stTerr = ('T' << 24),
23  st_Mask = 0xFF000000,
24  st_Pos = 0x0000FFFF,
25  st_Any = 0x00000E10, // 3600 - special value indicating "any position"
26  };
27 private:
28  int code;
29  char *description;
30 public:
31  cSource(void);
32  cSource(char Source, const char *Description);
33  ~cSource();
34  int Code(void) const { return code; }
35  int Position(void) { return Position(code); }
44  const char *Description(void) const { return description; }
45  bool Parse(const char *s);
46  static bool Matches(int Code1, int Code2);
50  static int Position(int Code);
51  static char ToChar(int Code) { return (Code & st_Mask) >> 24; }
52  static cString ToString(int Code);
53  static int FromString(const char *s);
54  static int FromData(eSourceType SourceType, int Position = 0, bool East = false);
55  static bool IsAtsc(int Code) { return (Code & st_Mask) == stAtsc; }
56  static bool IsCable(int Code) { return (Code & st_Mask) == stCable; }
57  static bool IsSat(int Code) { return (Code & st_Mask) == stSat; }
58  static bool IsTerr(int Code) { return (Code & st_Mask) == stTerr; }
59  static bool IsType(int Code, char Source) { return int(Code & st_Mask) == (int(Source) << 24); }
60  };
61 
62 class cSources : public cConfig<cSource> {
63 public:
64  cSource *Get(int Code);
65  bool ContainsSourceType(char SourceType);
66  };
67 
68 extern cSources Sources;
69 
70 #endif //__SOURCES_H
cSource::stAtsc
@ stAtsc
Definition: sources.h:19
cSource::Matches
static bool Matches(int Code1, int Code2)
Returns true if Code2 matches Code1.
Definition: sources.c:40
cSource::ToString
static cString ToString(int Code)
Definition: sources.c:55
cSources
Definition: sources.h:62
cSource::FromData
static int FromData(eSourceType SourceType, int Position=0, bool East=false)
Definition: sources.c:104
cSource::st_Pos
@ st_Pos
Definition: sources.h:24
cSource::Position
int Position(void)
Returns the orbital position of the satellite in case this is a DVB-S source (zero otherwise).
Definition: sources.h:35
cListObject
Definition: tools.h:493
cSource
Definition: sources.h:15
cSource::FromString
static int FromString(const char *s)
Definition: sources.c:68
cSource::stCable
@ stCable
Definition: sources.h:20
cSource::Parse
bool Parse(const char *s)
Definition: sources.c:31
cSource::IsCable
static bool IsCable(int Code)
Definition: sources.h:56
cSource::code
int code
Definition: sources.h:28
cSource::ToChar
static char ToChar(int Code)
Definition: sources.h:51
cSource::st_Any
@ st_Any
Definition: sources.h:25
cSource::Description
const char * Description(void) const
Definition: sources.h:44
cString
Definition: tools.h:176
cSource::IsTerr
static bool IsTerr(int Code)
Definition: sources.h:58
cSource::stNone
@ stNone
Definition: sources.h:18
cSource::stSat
@ stSat
Definition: sources.h:21
cSource::Code
int Code(void) const
Definition: sources.h:34
cSource::~cSource
~cSource()
Definition: sources.c:26
cSource::IsType
static bool IsType(int Code, char Source)
Definition: sources.h:59
cSource::eSourceType
eSourceType
Definition: sources.h:17
cSource::IsAtsc
static bool IsAtsc(int Code)
Definition: sources.h:55
cConfig
Definition: config.h:106
config.h
cSource::IsSat
static bool IsSat(int Code)
Definition: sources.h:57
cSources::Get
cSource * Get(int Code)
Definition: sources.c:119
cSource::description
char * description
Definition: sources.h:29
cSource::st_Mask
@ st_Mask
Definition: sources.h:23
Sources
cSources Sources
Definition: sources.c:117
cSource::stTerr
@ stTerr
Definition: sources.h:22
cSources::ContainsSourceType
bool ContainsSourceType(char SourceType)
Definition: sources.c:128
cSource::cSource
cSource(void)
Definition: sources.c:14