MythTV master
channelsettings.h
Go to the documentation of this file.
1#ifndef CHANNELSETTINGS_H
2#define CHANNELSETTINGS_H
3
4// C++
5#include <cstdlib>
6#include <utility>
7#include <vector>
8
9// Qt
10#include <QString>
11
12// MythTV
14#include "libmythbase/mythdb.h"
15#include "mythtvexp.h"
16
17class QWidget;
18
20{
21 public:
22 explicit ChannelID(QString field = "chanid",
23 QString table = "channel") :
24 m_field(std::move(field)), m_table(std::move(table))
25 {
26 setVisible(false);
27 }
28
29 void Save() override; // StandardSetting
30
31 int findHighest(int floor = 1000)
32 {
33 int tmpfloor = floor;
35
36 QString querystr = QString("SELECT %1 FROM %2")
37 .arg(m_field, m_table);
38 query.prepare(querystr);
39
40 if (!query.exec() || !query.isActive())
41 {
42 MythDB::DBError("finding highest id", query);
43 return floor;
44 }
45
46 if (query.size() > 0)
47 {
48 while (query.next())
49 if (tmpfloor <= query.value(0).toInt())
50 tmpfloor = query.value(0).toInt() + 1;
51 }
52 return floor<tmpfloor?tmpfloor:floor;
53 };
54
55 const QString& getField(void) const {
56 return m_field;
57 };
58
59protected:
60 QString m_field;
61 QString m_table;
62};
63
65{
66 public:
67 ChannelDBStorage(StorageUser *_user, const ChannelID &_id, const QString& _name) :
68 SimpleDBStorage(_user, "channel", _name), m_id(_id) { }
69
70 protected:
71 QString GetSetClause(MSqlBindings &bindings) const override; // SimpleDBStorage
72 QString GetWhereClause(MSqlBindings &bindings) const override; // SimpleDBStorage
73
74 private:
76};
77
79{
80 public:
81 IPTVChannelDBStorage(StorageUser *_user, const ChannelID &_id, const QString& _name) :
82 SimpleDBStorage(_user, "iptv_channel", _name), m_id(_id) { }
83
84 protected:
85 QString GetSetClause(MSqlBindings &bindings) const override; // SimpleDBStorage
86 QString GetWhereClause(MSqlBindings &bindings) const override; // SimpleDBStorage
87
88 public:
90};
91
92class OnAirGuide;
93class XmltvID;
94class Freqid;
95class TransportID_CO;
96class Frequency_CO;
97
99{
100 Q_OBJECT
101
102 public:
104 uint default_sourceid, bool add_freqid);
105
106 public slots:
107 static void onAirGuideChanged(bool fValue);
108 void sourceChanged(const QString &sourceid);
109
110 protected:
111 OnAirGuide *m_onAirGuide {nullptr};
112 XmltvID *m_xmltvID {nullptr};
113 Freqid *m_freqId {nullptr};
114 TransportID_CO *m_transportId {nullptr};
115 Frequency_CO *m_frequency {nullptr};
116};
117
119{
120 public:
121 explicit ChannelOptionsFilters(const ChannelID& id);
122};
123
125{
126 public:
127 explicit ChannelOptionsIPTV(const ChannelID& id);
128};
129
131{
132 public:
133 explicit ChannelOptionsV4L(const ChannelID& id);
134};
135
137{
138 public:
139 explicit ChannelOptionsRawTS(const ChannelID &id);
140
141 void Load(void) override; // StandardSetting
142 void Save(void) override; // StandardSetting
143 virtual void Save(const QString& /*destination*/) { Save(); }
144
145 private:
147
148 std::vector<TransTextEditSetting*> m_pids;
149 std::vector<TransMythUIComboBoxSetting*> m_sids;
150 std::vector<TransMythUICheckBoxSetting*> m_pcrs;
151
152 static const uint kMaxPIDs = 10;
153};
154
157{
158 public:
159 explicit ChannelTVFormat(const ChannelID &id);
160 ~ChannelTVFormat() override;
161
162 static QStringList GetFormats(void);
163};
164
165#endif //CHANNELEDITOR_H
ChannelDBStorage(StorageUser *_user, const ChannelID &_id, const QString &_name)
const ChannelID & m_id
QString GetWhereClause(MSqlBindings &bindings) const override
QString GetSetClause(MSqlBindings &bindings) const override
ChannelID(QString field="chanid", QString table="channel")
const QString & getField(void) const
QString m_field
int findHighest(int floor=1000)
QString m_table
std::vector< TransMythUICheckBoxSetting * > m_pcrs
const ChannelID & m_cid
std::vector< TransTextEditSetting * > m_pids
std::vector< TransMythUIComboBoxSetting * > m_sids
virtual void Save(const QString &)
const ChannelID & m_id
IPTVChannelDBStorage(StorageUser *_user, const ChannelID &_id, const QString &_name)
QString GetSetClause(MSqlBindings &bindings) const override
QString GetWhereClause(MSqlBindings &bindings) const override
QSqlQuery wrapper that fetches a DB connection from the connection pool.
Definition: mythdbcon.h:128
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
Definition: mythdbcon.cpp:838
QVariant value(int i) const
Definition: mythdbcon.h:204
int size(void) const
Definition: mythdbcon.h:214
bool isActive(void) const
Definition: mythdbcon.h:215
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
Definition: mythdbcon.cpp:619
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
Definition: mythdbcon.cpp:813
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Definition: mythdbcon.cpp:551
static void DBError(const QString &where, const MSqlQuery &query)
Definition: mythdb.cpp:225
virtual void Save(void)
virtual void Load(void)
void setVisible(bool visible)
unsigned int uint
Definition: compat.h:60
QMap< QString, QVariant > MSqlBindings
typedef for a map of string -> string bindings for generic queries.
Definition: mythdbcon.h:100
#define MTV_PUBLIC
Definition: mythtvexp.h:8