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 QString GetSetClause(MSqlBindings &bindings) const override; // SimpleDBStorage
71 QString GetWhereClause(MSqlBindings &bindings) const override; // SimpleDBStorage
72
74};
75
77{
78 public:
79 IPTVChannelDBStorage(StorageUser *_user, const ChannelID &_id, const QString& _name) :
80 SimpleDBStorage(_user, "iptv_channel", _name), m_id(_id) { }
81
82 QString GetSetClause(MSqlBindings &bindings) const override; // SimpleDBStorage
83 QString GetWhereClause(MSqlBindings &bindings) const override; // SimpleDBStorage
84
86};
87
88class OnAirGuide;
89class XmltvID;
90class Freqid;
91class TransportID_CO;
92class Frequency_CO;
93
95{
96 Q_OBJECT
97
98 public:
100 uint default_sourceid, bool add_freqid);
101
102 public slots:
103 static void onAirGuideChanged(bool fValue);
104 void sourceChanged(const QString &sourceid);
105
106 protected:
107 OnAirGuide *m_onAirGuide {nullptr};
108 XmltvID *m_xmltvID {nullptr};
109 Freqid *m_freqId {nullptr};
110 TransportID_CO *m_transportId {nullptr};
111 Frequency_CO *m_frequency {nullptr};
112};
113
115{
116 public:
117 explicit ChannelOptionsFilters(const ChannelID& id);
118};
119
121{
122 public:
123 explicit ChannelOptionsIPTV(const ChannelID& id);
124};
125
127{
128 public:
129 explicit ChannelOptionsV4L(const ChannelID& id);
130};
131
133{
134 public:
135 explicit ChannelOptionsRawTS(const ChannelID &id);
136
137 void Load(void) override; // StandardSetting
138 void Save(void) override; // StandardSetting
139 virtual void Save(const QString& /*destination*/) { Save(); }
140
141 private:
143
144 std::vector<TransTextEditSetting*> m_pids;
145 std::vector<TransMythUIComboBoxSetting*> m_sids;
146 std::vector<TransMythUICheckBoxSetting*> m_pcrs;
147
148 static const uint kMaxPIDs = 10;
149};
150
153{
154 public:
155 explicit ChannelTVFormat(const ChannelID &id);
156 ~ChannelTVFormat() override;
157
158 static QStringList GetFormats(void);
159};
160
161#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:837
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:618
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
Definition: mythdbcon.cpp:812
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Definition: mythdbcon.cpp:550
static void DBError(const QString &where, const MSqlQuery &query)
Definition: mythdb.cpp:226
virtual void Save(void)
virtual void Load(void)
void setVisible(bool visible)
unsigned int uint
Definition: freesurround.h:24
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:15
STL namespace.