12 #include <QCoreApplication>
50 friend class TestEITFixups;
57 static uint CreateMultiplex(
58 int sourceid,
const QString& sistandard,
59 uint64_t frequency,
const QString& modulation,
60 int transport_id = -1,
int network_id = -1);
62 static uint CreateMultiplex(
63 int sourceid,
const QString& sistandard,
64 uint64_t frequency,
const QString& modulation,
66 int transport_id,
int network_id,
67 int symbol_rate,
signed char bandwidth,
68 signed char polarity,
signed char inversion,
69 signed char trans_mode,
70 const QString& inner_FEC,
const QString& constellation,
71 signed char hierarchy,
const QString& hp_code_rate,
72 const QString& lp_code_rate,
const QString& guard_interval,
73 const QString& mod_sys,
const QString& rolloff);
76 int transport_id,
int network_id);
78 static std::vector<uint> CreateMultiplexes(
81 static uint GetMplexID(
uint sourceid,
const QString &channum);
82 static int GetMplexID(
uint sourceid, uint64_t frequency);
83 static int GetMplexID(
uint sourceid, uint64_t frequency,
85 static int GetMplexID(
uint sourceid,
88 static int GetBetterMplexID(
int current_mplexid,
89 int transport_id,
int network_id);
91 static bool GetTuningParams(
uint mplexid,
94 uint &dvb_transportid,
98 static bool GetATSCChannel(
uint sourceid,
const QString &channum,
104 GetATSCChannel(sourceid, channum, m1,m2);
109 static int CreateChanID(
uint sourceid,
const QString &chan_num);
111 static bool CreateChannel(
uint db_mplexid,
114 const QString &callsign,
115 const QString &service_name,
116 const QString &chan_num,
118 uint atsc_major_channel,
119 uint atsc_minor_channel,
120 bool use_on_air_guide,
122 const QString &freqid,
123 const QString& icon = QString(),
124 QString format =
"Default",
125 const QString& xmltvid = QString(),
126 const QString& default_authority = QString(),
127 uint service_type = 0);
129 static bool UpdateChannel(
uint db_mplexid,
132 const QString &callsign,
133 const QString &service_name,
134 const QString &chan_num,
136 uint atsc_major_channel,
137 uint atsc_minor_channel,
138 bool use_on_air_guide,
140 const QString& freqid = QString(),
141 const QString& icon = QString(),
142 QString format = QString(),
143 const QString& xmltvid = QString(),
144 const QString& default_authority = QString(),
145 uint service_type = 0);
150 return UpdateIPTVTuningData(channel_id, tuning);
153 static bool UpdateIPTVTuningData(
159 static bool DeleteChannel(
uint channel_id);
163 static bool SetServiceVersion(
int mplexid,
int version);
165 static int GetChanID(
int db_mplexid,
int service_transport_id,
166 int major_channel,
int minor_channel,
169 static int GetServiceVersion(
int mplexid);
172 static QString GetDefaultAuthority(
uint chanid);
173 static QString GetIcon(
uint chanid);
174 static std::vector<uint> GetInputIDs(
uint chanid);
175 static QString GetUnknownCallsign(
void);
176 static uint FindChannel(
uint sourceid,
const QString &freqid);
178 {
return GetChannelValueInt(
"chanid", sourceid, channum); }
179 static bool GetChannelData(
181 uint &chanid,
const QString &channum,
182 QString &tvformat, QString &modulation,
183 QString &freqtable, QString &freqid,
184 int &finetune, uint64_t &frequency,
185 QString &dtv_si_std,
int &mpeg_prog_num,
187 uint &dvb_transportid,
uint &dvb_networkid,
188 uint &mplexid,
bool &commfree);
190 {
return GetChannelValueInt(
"serviceid", sourceid, channum); }
192 {
return GetChannelValueStr(
"videofilters", sourceid, channum); }
229 uint &totalAvailable,
230 bool ignoreHidden =
true,
231 OrderBy orderBy = kChanOrderByChanNum,
232 GroupBy groupBy = kChanGroupByChanid,
234 uint channelGroupID = 0,
235 bool liveTVOnly =
false,
236 const QString& callsign =
"",
237 const QString& channum =
"",
238 bool ignoreUntunable =
true);
244 uint sourceid,
bool visible_only,
245 const QString &group_by = QString(),
uint channel_groupid = 0)
247 return GetChannelsInternal(sourceid, visible_only,
false,
248 group_by, channel_groupid);
258 return GetChannelsInternal(sourceid,
false,
true, QString(), 0);
260 static std::vector<uint> GetChanIDs(
int sourceid = -1,
bool onlyVisible =
false);
261 static uint GetChannelCount(
int sourceid = -1);
263 bool eliminate_duplicates =
false);
265 const QString &channum);
269 uint mplexid_restriction,
270 uint chanid_restriction,
272 bool skip_non_visible =
true,
273 bool skip_same_channum_and_callsign =
false,
274 bool skip_other_sources =
false);
276 static QString GetChannelValueStr(
const QString &channel_field,
278 const QString &channum);
280 static int GetChannelValueInt(
const QString &channel_field,
282 const QString &channum);
284 static bool IsOnSameMultiplex(
uint srcid,
285 const QString &new_channum,
286 const QString &old_channum);
288 static QStringList GetValidRecorderList(
uint chanid,
289 const QString &channum);
292 uint sourceid = 0,
uint excluded_chanid = 0)
294 std::vector<uint> chanids = GetConflicting(channum, sourceid);
295 return (chanids.size() > 1) ||
296 ((1 == chanids.size()) && (chanids[0] != excluded_chanid));
299 static std::vector<uint> GetConflicting(
const QString &channum,
306 static QString GetChanNum(
int chan_id);
312 static std::chrono::minutes GetTimeOffset(
int chan_id);
313 static int GetSourceID(
int mplexid);
314 static uint GetSourceIDForChannel(
uint chanid);
316 static QStringList GetInputTypes(
uint chanid);
321 static bool SetChannelValue(
const QString &field_name,
322 const QString& value,
324 const QString &channum);
326 static bool SetChannelValue(
const QString &field_name,
327 const QString& value,
330 static bool SaveCachedPids(
uint chanid,
332 bool delete_all =
false);
341 uint sourceid,
bool visible_only,
bool include_disconnected,
342 const QString &group_by,
uint channel_groupid);
343 static QString GetChannelStringField(
int chan_id,
const QString &field);