MythTV  master
dtvconfparser.h
Go to the documentation of this file.
1 /* -*- Mode: c++ -*-
2  * vim: set expandtab tabstop=4 shiftwidth=4:
3  *
4  * Original Project
5  * MythTV http://www.mythtv.org
6  *
7  * Author(s):
8  * John Pullan (john@pullan.org)
9  *
10  * Description:
11  * Collection of classes to provide dvb channel scanning
12  * functionallity
13  *
14  *
15  * This program is free software; you can redistribute it and/or
16  * modify it under the terms of the GNU General Public License
17  * as published by the Free Software Foundation; either version 2
18  * of the License, or (at your option) any later version.
19  *
20  * This program is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23  * GNU General Public License for more details.
24  *
25  * You should have received a copy of the GNU General Public License
26  * along with this program; if not, write to the Free Software
27  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
28  * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
29  *
30  */
31 
32 #ifndef DTVCONFPARSER_H
33 #define DTVCONFPARSER_H
34 
35 // C++ headers
36 #include <cstdint>
37 #include <unistd.h>
38 #include <utility>
39 #include <vector>
40 
41 // Qt headers
42 #include <QString>
43 
44 // MythTV headers
45 #include "dtvmultiplex.h"
46 
47 class QStringList;
48 
50 {
51  public:
52  DTVChannelInfo() = default;
53  QString toString() const;
54 
55  public:
56  QString m_name;
58  int m_lcn {-1};
59 };
60 using DTVChannelInfoList = std::vector<DTVChannelInfo>;
61 
62 class DTVTransport : public DTVMultiplex
63 {
64  public:
65  explicit DTVTransport(const DTVMultiplex &other) : DTVMultiplex(other) { }
66 
67  public:
69 };
70 using DTVChannelList = std::vector<DTVTransport>;
71 
76 {
77  public:
80 
81  DTVConfParser(enum cardtype_t type, uint sourceid, QString file)
82  : m_type(type), m_sourceid(sourceid), m_filename(std::move(file)) {}
83  virtual ~DTVConfParser() = default;
84 
85  return_t Parse(void);
86 
87  DTVChannelList GetChannels(void) const { return m_channels; }
88 
89  private:
90  bool ParseVDR( const QStringList &tokens, int channelNo = -1);
91  bool ParseConf( const QStringList &tokens);
92  bool ParseConfOFDM(const QStringList &tokens);
93  bool ParseConfQPSK(const QStringList &tokens);
94  bool ParseConfQAM( const QStringList &tokens);
95  bool ParseConfATSC(const QStringList &tokens);
96 
97  private:
100  QString m_filename;
101 
102  void AddChannel(const DTVMultiplex &mux, DTVChannelInfo &chan);
103 
105 };
106 
107 #endif // DTVCONFPARSER_H
DTVConfParser::ERROR_CARDTYPE
@ ERROR_CARDTYPE
Definition: dtvconfparser.h:78
DTVMultiplex
Definition: dtvmultiplex.h:25
DTVConfParser::cardtype_t
cardtype_t
Definition: dtvconfparser.h:79
DTVConfParser::GetChannels
DTVChannelList GetChannels(void) const
Definition: dtvconfparser.h:87
DTVConfParser::ParseConfATSC
bool ParseConfATSC(const QStringList &tokens)
Definition: dtvconfparser.cpp:160
DTVConfParser::ERROR_OPEN
@ ERROR_OPEN
Definition: dtvconfparser.h:78
DTVChannelInfo::toString
QString toString() const
Definition: dtvconfparser.cpp:62
DTVConfParser::ATSC
@ ATSC
Definition: dtvconfparser.h:79
DTVConfParser::ParseConf
bool ParseConf(const QStringList &tokens)
build_compdb.file
file
Definition: build_compdb.py:55
DTVConfParser::QAM
@ QAM
Definition: dtvconfparser.h:79
dtvmultiplex.h
DTVConfParser::~DTVConfParser
virtual ~DTVConfParser()=default
DTVConfParser::DVBS2
@ DVBS2
Definition: dtvconfparser.h:79
DTVConfParser::ParseConfQPSK
bool ParseConfQPSK(const QStringList &tokens)
Definition: dtvconfparser.cpp:201
DTVChannelList
std::vector< DTVTransport > DTVChannelList
Definition: dtvconfparser.h:70
DTVConfParser::DTVConfParser
DTVConfParser(enum cardtype_t type, uint sourceid, QString file)
Definition: dtvconfparser.h:81
DTVChannelInfo::m_name
QString m_name
Definition: dtvconfparser.h:56
DTVChannelInfoList
std::vector< DTVChannelInfo > DTVChannelInfoList
Definition: dtvconfparser.h:60
DTVConfParser
Parses dvb-utils channel scanner output files.
Definition: dtvconfparser.h:76
DTVChannelInfo::m_serviceid
uint m_serviceid
Definition: dtvconfparser.h:57
DTVConfParser::OK
@ OK
Definition: dtvconfparser.h:78
DTVConfParser::m_filename
QString m_filename
Definition: dtvconfparser.h:100
DTVConfParser::UNKNOWN
@ UNKNOWN
Definition: dtvconfparser.h:79
DTVConfParser::ERROR_PARSE
@ ERROR_PARSE
Definition: dtvconfparser.h:78
DTVConfParser::m_type
cardtype_t m_type
Definition: dtvconfparser.h:98
uint
unsigned int uint
Definition: compat.h:141
DTVConfParser::OFDM
@ OFDM
Definition: dtvconfparser.h:79
DTVTransport::channels
DTVChannelInfoList channels
Definition: dtvconfparser.h:68
DTVConfParser::QPSK
@ QPSK
Definition: dtvconfparser.h:79
DTVConfParser::AddChannel
void AddChannel(const DTVMultiplex &mux, DTVChannelInfo &chan)
Definition: dtvconfparser.cpp:299
DTVConfParser::Parse
return_t Parse(void)
Definition: dtvconfparser.cpp:67
DTVConfParser::m_sourceid
uint m_sourceid
Definition: dtvconfparser.h:99
DTVConfParser::m_channels
DTVChannelList m_channels
Definition: dtvconfparser.h:104
DTVChannelInfo::DTVChannelInfo
DTVChannelInfo()=default
DTVTransport::DTVTransport
DTVTransport(const DTVMultiplex &other)
Definition: dtvconfparser.h:65
DTVTransport
Definition: dtvconfparser.h:63
DTVConfParser::return_t
return_t
Definition: dtvconfparser.h:78
DTVChannelInfo::m_lcn
int m_lcn
Definition: dtvconfparser.h:58
DTVConfParser::ParseConfQAM
bool ParseConfQAM(const QStringList &tokens)
Definition: dtvconfparser.cpp:179
DTVChannelInfo
Definition: dtvconfparser.h:50
DTVConfParser::ParseVDR
bool ParseVDR(const QStringList &tokens, int channelNo=-1)
Definition: dtvconfparser.cpp:222
DTVConfParser::ParseConfOFDM
bool ParseConfOFDM(const QStringList &tokens)
Definition: dtvconfparser.cpp:134