MythTV  master
channelinfo.cpp
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 
3 // C++ headers
4 #include <utility>
5 
6 // Qt headers
7 #include <QDir>
8 #include <QFile>
9 #include <QFileInfo>
10 #include <QImage>
11 #include <QUrl>
12 
13 // MythTV headers
14 #include "channelinfo.h"
15 #include "mythcorecontext.h"
16 #include "mythdb.h"
17 #include "mythdirs.h"
18 #include "mpegstreamdata.h" // for CryptStatus
19 #include "remotefile.h"
20 #include "channelgroup.h"
21 #include "sourceutil.h"
22 
25 
27  // Channel table
28  m_chanId (other.m_chanId),
29  m_chanNum (other.m_chanNum),
30  m_freqId (other.m_freqId),
31  m_sourceId (other.m_sourceId),
32  m_callSign (other.m_callSign),
33  m_name (other.m_name),
34  m_icon (other.m_icon),
35  m_fineTune (other.m_fineTune),
36  m_videoFilters (other.m_videoFilters),
37  m_xmltvId (other.m_xmltvId),
38  m_recPriority (other.m_recPriority),
39  m_contrast (other.m_contrast),
40  m_brightness (other.m_brightness),
41  m_colour (other.m_colour),
42  m_hue (other.m_hue),
43  m_tvFormat (other.m_tvFormat),
44  m_visible (other.m_visible),
45  m_outputFilters (other.m_outputFilters),
46  m_useOnAirGuide (other.m_useOnAirGuide),
47  m_mplexId ((other.m_mplexId == 32767) ? 0 : other.m_mplexId),
48  m_serviceId (other.m_serviceId),
49  m_serviceType (other.m_serviceType),
50  m_atscMajorChan (other.m_atscMajorChan),
51  m_atscMinorChan (other.m_atscMinorChan),
52  m_lastRecord (other.m_lastRecord),
53  m_defaultAuthority (other.m_defaultAuthority),
54  m_commMethod (other.m_commMethod),
55  m_tmOffset (other.m_tmOffset),
56  m_iptvId (other.m_iptvId),
57 
58  // Not in channel table
59  m_oldXmltvId (other.m_oldXmltvId),
60  m_sourceName (other.m_sourceName),
61  m_groupIdList (other.m_groupIdList),
62  m_inputIdList (other.m_inputIdList)
63 {
64 }
65 
67  QString _channum, QString _callsign,
68  uint _chanid, uint _major_chan, uint _minor_chan,
69  uint _mplexid, ChannelVisibleType _visible,
70  QString _name, QString _icon,
71  uint _sourceid) :
72  m_chanId(_chanid),
73  m_chanNum(std::move(_channum)),
74  m_sourceId(_sourceid),
75  m_callSign(std::move(_callsign)),
76  m_name(std::move(_name)),
77  m_icon(std::move(_icon)),
78  m_visible(_visible),
79  m_mplexId((_mplexid == 32767) ? 0 : _mplexid),
80  m_atscMajorChan(_major_chan),
81  m_atscMinorChan(_minor_chan)
82 {
83 }
84 
86 {
87  if (this == &other)
88  return *this;
89 
90  // Channel table
91  m_chanId = other.m_chanId;
92  m_chanNum = other.m_chanNum;
93  m_freqId = other.m_freqId;
94  m_sourceId = other.m_sourceId;
95  m_callSign = other.m_callSign;
96  m_name = other.m_name;
97  m_icon = other.m_icon;
98  m_fineTune = other.m_fineTune;
100  m_xmltvId = other.m_xmltvId;
102  m_contrast = other.m_contrast;
103  m_brightness = other.m_brightness;
104  m_colour = other.m_colour;
105  m_hue = other.m_hue;
106  m_tvFormat = other.m_tvFormat;
107  m_visible = other.m_visible;
110  m_mplexId = (other.m_mplexId == 32767) ? 0 : other.m_mplexId;
111  m_serviceId = other.m_serviceId;
114  m_lastRecord = other.m_lastRecord;
116  m_commMethod = other.m_commMethod;
117  m_tmOffset = other.m_tmOffset;
118  m_iptvId = other.m_iptvId;
119 
120  // Not in channel table
123  m_oldXmltvId = other.m_oldXmltvId;
124  m_sourceName = other.m_sourceName;
125 
126  return *this;
127 }
128 
129 bool ChannelInfo::Load(uint lchanid)
130 {
131  if (lchanid == 0 && m_chanId == 0)
132  return false;
133 
134  if (lchanid == 0)
135  lchanid = m_chanId;
136 
138  query.prepare("SELECT channum, freqid, sourceid, "
139  "callsign, name, icon, finetune, videofilters, xmltvid, "
140  "recpriority, contrast, brightness, colour, hue, tvformat, "
141  "visible, outputfilters, useonairguide, mplexid, "
142  "serviceid, atsc_major_chan, atsc_minor_chan, last_record, "
143  "default_authority, commmethod, tmoffset, iptvid "
144  "FROM channel WHERE chanid = :CHANID ;");
145 
146  query.bindValue(":CHANID", lchanid);
147 
148  if (!query.exec())
149  {
150  MythDB::DBError("ChannelInfo::Load()", query);
151  return false;
152  }
153 
154  if (!query.next())
155  return false;
156 
157  m_chanId = lchanid;
158  m_chanNum = query.value(0).toString();
159  m_freqId = query.value(1).toString();
160  m_sourceId = query.value(2).toUInt();
161  m_callSign = query.value(3).toString();
162  m_name = query.value(4).toString();
163  m_icon = query.value(5).toString();
164  m_fineTune = query.value(6).toInt();
165  m_videoFilters = query.value(7).toString();
166  m_xmltvId = query.value(8).toString();
167  m_recPriority = query.value(9).toInt();
168  m_contrast = query.value(10).toUInt();
169  m_brightness = query.value(11).toUInt();
170  m_colour = query.value(12).toUInt();
171  m_hue = query.value(13).toUInt();
172  m_tvFormat = query.value(14).toString();
173  m_visible =
174  static_cast<ChannelVisibleType>(query.value(15).toInt());
175  m_outputFilters = query.value(16).toString();
176  m_useOnAirGuide = query.value(17).toBool();
177  m_mplexId = query.value(18).toUInt();
178  m_serviceId = query.value(19).toUInt();
179  m_atscMajorChan = query.value(20).toUInt();
180  m_atscMinorChan = query.value(21).toUInt();
181  m_lastRecord = query.value(22).toDateTime();
182  m_defaultAuthority = query.value(23).toString();
183  m_commMethod = query.value(24).toUInt();
184  m_tmOffset = query.value(25).toUInt();
185  m_iptvId = query.value(26).toUInt();
186 
187  return true;
188 }
189 
191 {
192  QString tmp;
193 
194  if (format & kChannelLong)
195  tmp = gCoreContext->GetSetting("LongChannelFormat", "<num> <name>");
196  else // kChannelShort
197  tmp = gCoreContext->GetSetting("ChannelFormat", "<num> <sign>");
198 
199 
200  if (tmp.isEmpty())
201  return QString();
202 
203  tmp.replace("<num>", m_chanNum);
204  tmp.replace("<sign>", m_callSign);
205  tmp.replace("<name>", m_name);
206 
207  return tmp;
208 }
209 
211 {
212  if (m_sourceId > 0 && m_sourceName.isNull())
214 
215  return m_sourceName;
216 }
217 
219 {
220  infoMap["callsign"] = m_callSign;
221  infoMap["channeliconpath"] = m_icon;
222  //infoMap["chanstr"] = chanstr;
223  infoMap["channelname"] = m_name;
224  infoMap["channelid"] = QString().setNum(m_chanId);
225  infoMap["channelsourcename"] = GetSourceName();
226  infoMap["channelrecpriority"] = QString().setNum(m_recPriority);
227 
228  infoMap["channelnumber"] = m_chanNum;
229 
230  infoMap["majorchan"] = QString().setNum(m_atscMajorChan);
231  infoMap["minorchan"] = QString().setNum(m_atscMinorChan);
232  infoMap["mplexid"] = QString().setNum(m_mplexId);
233  infoMap["channelvisible"] = m_visible ? QObject::tr("Yes") : QObject::tr("No");
234 
235  if (!GetGroupIds().isEmpty())
236  infoMap["channelgroupname"] = ChannelGroup::GetChannelGroupName(GetGroupIds().constFirst());
237 }
238 
240 {
241  if (m_chanId && m_inputIdList.isEmpty())
242  {
244  query.prepare("SELECT capturecard.cardid FROM channel "
245  "JOIN capturecard ON capturecard.sourceid = channel.sourceid "
246  "WHERE chanid = :CHANID");
247  query.bindValue(":CHANID", m_chanId);
248 
249  if (!query.exec())
250  MythDB::DBError("ChannelInfo::LoadInputIds()", query);
251  else
252  {
253  while(query.next())
254  {
255  AddInputId(query.value(0).toUInt());
256  }
257  }
258  }
259 }
260 
262 {
263  if (m_chanId && m_groupIdList.isEmpty())
264  {
266  query.prepare("SELECT grpid FROM channelgroup "
267  "WHERE chanid = :CHANID");
268  query.bindValue(":CHANID", m_chanId);
269 
270  if (!query.exec())
271  MythDB::DBError("ChannelInfo::LoadGroupIds()", query);
272  else if (query.size() == 0)
273  {
274  // HACK Avoid re-running this query each time for channels
275  // which don't belong to any group
276  AddGroupId(0);
277  }
278  else
279  {
280  while(query.next())
281  {
282  AddGroupId(query.value(0).toUInt());
283  }
284  }
285  }
286 }
287 
290 
291 bool ChannelInsertInfo::SaveScan(uint scanid, uint transportid) const
292 {
294  query.prepare(
295  "INSERT INTO channelscan_channel "
296  " ( scanid, transportid, "
297  " mplex_id, source_id, channel_id, "
298  " callsign, service_name, chan_num, "
299  " service_id, atsc_major_channel, atsc_minor_channel, "
300  " use_on_air_guide, hidden, hidden_in_guide, "
301  " freqid, icon, tvformat, "
302  " xmltvid, pat_tsid, vct_tsid, "
303  " vct_chan_tsid, sdt_tsid, orig_netid, "
304  " netid, si_standard, in_channels_conf, "
305  " in_pat, in_pmt, in_vct, "
306  " in_nit, in_sdt, is_encrypted, "
307  " is_data_service, is_audio_service, is_opencable, "
308  " could_be_opencable, decryption_status, default_authority, "
309  " service_type "
310  " ) "
311  "VALUES "
312  " ( :SCANID, :TRANSPORTID, "
313  " :MPLEX_ID, :SOURCE_ID, :CHANNEL_ID, "
314  " :CALLSIGN, :SERVICE_NAME, :CHAN_NUM, "
315  " :SERVICE_ID, :ATSC_MAJOR_CHANNEL,:ATSC_MINOR_CHANNEL, "
316  " :USE_ON_AIR_GUIDE, :HIDDEN, :HIDDEN_IN_GUIDE, "
317  " :FREQID, :ICON, :TVFORMAT, "
318  " :XMLTVID, :PAT_TSID, :VCT_TSID, "
319  " :VCT_CHAN_TSID, :SDT_TSID, :ORIG_NETID, "
320  " :NETID, :SI_STANDARD, :IN_CHANNELS_CONF, "
321  " :IN_PAT, :IN_PMT, :IN_VCT, "
322  " :IN_NIT, :IN_SDT, :IS_ENCRYPTED, "
323  " :IS_DATA_SERVICE, :IS_AUDIO_SERVICE, :IS_OPENCABLE, "
324  " :COULD_BE_OPENCABLE,:DECRYPTION_STATUS, :DEFAULT_AUTHORITY, "
325  " :SERVICE_TYPE "
326  " );");
327 
328  query.bindValue(":SCANID", scanid);
329  query.bindValue(":TRANSPORTID", transportid);
330  query.bindValue(":MPLEX_ID", m_dbMplexId);
331  query.bindValue(":SOURCE_ID", m_sourceId);
332  query.bindValue(":CHANNEL_ID", m_channelId);
333  query.bindValueNoNull(":CALLSIGN", m_callSign);
334  query.bindValueNoNull(":SERVICE_NAME", m_serviceName);
335  query.bindValueNoNull(":CHAN_NUM", m_chanNum);
336  query.bindValue(":SERVICE_ID", m_serviceId);
337  query.bindValue(":ATSC_MAJOR_CHANNEL", m_atscMajorChannel);
338  query.bindValue(":ATSC_MINOR_CHANNEL", m_atscMinorChannel);
339  query.bindValue(":USE_ON_AIR_GUIDE", m_useOnAirGuide);
340  query.bindValue(":HIDDEN", m_hidden);
341  query.bindValue(":HIDDEN_IN_GUIDE", m_hiddenInGuide);
342  query.bindValueNoNull(":FREQID", m_freqId);
343  query.bindValueNoNull(":ICON", m_icon);
344  query.bindValueNoNull(":TVFORMAT", m_format);
345  query.bindValueNoNull(":XMLTVID", m_xmltvId);
346  query.bindValue(":PAT_TSID", m_patTsId);
347  query.bindValue(":VCT_TSID", m_vctTsId);
348  query.bindValue(":VCT_CHAN_TSID", m_vctChanTsId);
349  query.bindValue(":SDT_TSID", m_sdtTsId);
350  query.bindValue(":ORIG_NETID", m_origNetId);
351  query.bindValue(":NETID", m_netId);
352  query.bindValueNoNull(":SI_STANDARD", m_siStandard);
353  query.bindValue(":IN_CHANNELS_CONF", m_inChannelsConf);
354  query.bindValue(":IN_PAT", m_inPat);
355  query.bindValue(":IN_PMT", m_inPmt);
356  query.bindValue(":IN_VCT", m_inVct);
357  query.bindValue(":IN_NIT", m_inNit);
358  query.bindValue(":IN_SDT", m_inSdt);
359  query.bindValue(":IS_ENCRYPTED", m_isEncrypted);
360  query.bindValue(":IS_DATA_SERVICE", m_isDataService);
361  query.bindValue(":IS_AUDIO_SERVICE", m_isAudioService);
362  query.bindValue(":IS_OPENCABLE", m_isOpencable);
363  query.bindValue(":COULD_BE_OPENCABLE", m_couldBeOpencable);
364  query.bindValue(":DECRYPTION_STATUS", m_decryptionStatus);
365  query.bindValueNoNull(":DEFAULT_AUTHORITY", m_defaultAuthority);
366  query.bindValue(":SERVICE_TYPE", m_serviceType);
367 
368  if (!query.exec())
369  {
370  MythDB::DBError("ChannelInsertInfo::SaveScan()", query);
371  return false;
372  }
373 
374  return true;
375 }
376 
378 {
379  if (other.m_dbMplexId && !m_dbMplexId)
380  m_dbMplexId = other.m_dbMplexId;
381  if (other.m_sourceId && !m_sourceId)
382  m_sourceId = other.m_sourceId;
383  if (other.m_channelId && !m_channelId)
384  m_channelId = other.m_channelId;
385  if (!other.m_callSign.isEmpty() && m_callSign.isEmpty())
386  m_callSign = other.m_callSign;
387  if (!other.m_serviceName.isEmpty() && m_serviceName.isEmpty())
389  if (!other.m_chanNum.isEmpty() &&
390  ((m_chanNum.isEmpty() || m_chanNum == "0")))
391  m_chanNum = other.m_chanNum;
392  if (other.m_serviceId && !m_serviceId)
393  m_serviceId = other.m_serviceId;
398  //m_useOnAirGuide = other.m_useOnAirGuide;
399  //m_hidden = other.m_hidden;
400  //m_hiddenInGuide = other.m_hiddenInGuide;
401  if (!other.m_freqId.isEmpty() && m_freqId.isEmpty())
402  m_freqId = other.m_freqId;
403  if (!other.m_icon.isEmpty() && m_icon.isEmpty())
404  m_icon = other.m_icon;
405  if (!other.m_format.isEmpty() && m_format.isEmpty())
406  m_format = other.m_format;
407  if (!other.m_xmltvId.isEmpty() && m_xmltvId.isEmpty())
408  m_xmltvId = other.m_xmltvId;
409  if (!other.m_defaultAuthority.isEmpty() && m_defaultAuthority.isEmpty())
411  // non-DB info
412  if (other.m_patTsId && !m_patTsId)
413  m_patTsId = other.m_patTsId;
414  if (other.m_vctTsId && !m_vctTsId)
415  m_vctTsId = other.m_vctTsId;
416  if (other.m_vctChanTsId && !m_vctChanTsId)
418  if (other.m_sdtTsId && !m_sdtTsId)
419  m_sdtTsId = other.m_sdtTsId;
420  if (other.m_origNetId && !m_origNetId)
421  m_origNetId = other.m_origNetId;
422  if (other.m_netId && !m_netId)
423  m_netId = other.m_netId;
424  if (!other.m_siStandard.isEmpty() &&
425  (m_siStandard.isEmpty() || ("mpeg" == m_siStandard)))
426  m_siStandard = other.m_siStandard;
427  if (other.m_inChannelsConf && !m_inChannelsConf)
429  if (other.m_inPat && !m_inPat)
430  m_inPat = other.m_inPat;
431  if (other.m_inPmt && !m_inPmt)
432  m_inPmt = other.m_inPmt;
433  if (other.m_inVct && !m_inVct)
434  m_inVct = other.m_inVct;
435  if (other.m_inNit && !m_inNit)
436  m_inNit = other.m_inNit;
437  if (other.m_inSdt && !m_inSdt)
438  m_inSdt = other.m_inSdt;
439  if (other.m_inPat && !m_inPat)
441  if (other.m_isDataService && !m_isDataService)
443  if (other.m_isAudioService && !m_isAudioService)
445  if (other.m_isOpencable && !m_isOpencable)
451 }
452 
453 // relaxed 0 compare channels to check for duplicates
454 // 1 compare channels across transports after rescan
455 // 2 compare channels in same transport
456 //
458  const ChannelInsertInfo &other, int relaxed) const
459 {
460  if (m_atscMajorChannel)
461  {
462  return ((m_atscMajorChannel == other.m_atscMajorChannel) &&
464  }
465 
466  if ((m_origNetId == other.m_origNetId) &&
467  (m_sdtTsId == other.m_sdtTsId) &&
468  (m_serviceId == other.m_serviceId))
469  {
470  return true;
471  }
472 
473  if (!m_origNetId && !other.m_origNetId &&
474  (m_patTsId == other.m_patTsId) &&
475  (m_serviceId == other.m_serviceId))
476  {
477  return true;
478  }
479 
480  if (relaxed > 0)
481  {
482  if ((m_origNetId == other.m_origNetId) &&
483  (m_serviceId == other.m_serviceId))
484  {
485  return true;
486  }
487  }
488 
489  if (relaxed > 1)
490  {
491  if (("mpeg" == m_siStandard || "mpeg" == other.m_siStandard ||
492  "dvb" == m_siStandard || "dvb" == other.m_siStandard ||
493  m_siStandard.isEmpty() || other.m_siStandard.isEmpty()) &&
494  (m_serviceId == other.m_serviceId))
495  {
496  return true;
497  }
498  }
499 
500  return false;
501 }
502 
504 {
505  switch (type)
506  {
508  return QObject::tr("Always Visible");
509  case kChannelVisible:
510  return QObject::tr("Visible");
511  case kChannelNotVisible:
512  return QObject::tr("Not Visible");
514  return QObject::tr("Never Visible");
515  default:
516  return QObject::tr("Unknown");
517  }
518 }
519 
521 {
522  switch (type)
523  {
525  return QString("Always Visible");
526  case kChannelVisible:
527  return QString("Visible");
528  case kChannelNotVisible:
529  return QString("Not Visible");
531  return QString("Never Visible");
532  default:
533  return QString("Unknown");
534  }
535 }
536 
538 {
539  if (type.toLower() == "always visible" ||
540  type.toLower() == "always")
541  return kChannelAlwaysVisible;
542  if (type.toLower() == "visible" ||
543  type.toLower() == "yes")
544  return kChannelVisible;
545  if (type.toLower() == "not visible" ||
546  type.toLower() == "not" ||
547  type.toLower() == "no")
548  return kChannelNotVisible;
549  if (type.toLower() == "never visible" ||
550  type.toLower() == "never")
551  return kChannelNeverVisible;
552  return kChannelVisible;
553 }
554 
555 /* vim: set expandtab tabstop=4 shiftwidth=4: */
ChannelInfo
Definition: channelinfo.h:32
ChannelInfo::m_groupIdList
QList< uint > m_groupIdList
Definition: channelinfo.h:128
ChannelInsertInfo::m_isEncrypted
bool m_isEncrypted
Definition: channelinfo.h:247
MSqlQuery::next
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
Definition: mythdbcon.cpp:783
MSqlQuery
QSqlQuery wrapper that fetches a DB connection from the connection pool.
Definition: mythdbcon.h:126
kEncUnknown
@ kEncUnknown
Definition: mpegstreamdata.h:56
ChannelInsertInfo::m_inPat
bool m_inPat
Definition: channelinfo.h:242
MSqlQuery::bindValueNoNull
void bindValueNoNull(const QString &placeholder, const QVariant &val)
Add a single binding, taking care not to set a NULL value.
Definition: mythdbcon.cpp:869
MSqlQuery::size
int size(void) const
Definition: mythdbcon.h:203
ChannelInsertInfo::m_useOnAirGuide
bool m_useOnAirGuide
Definition: channelinfo.h:223
ChannelInsertInfo::m_hiddenInGuide
bool m_hiddenInGuide
Definition: channelinfo.h:225
ChannelInfo::m_outputFilters
QString m_outputFilters
Definition: channelinfo.h:107
ChannelGroup::GetChannelGroupName
static QString GetChannelGroupName(int grpid)
Definition: channelgroup.cpp:231
ChannelInsertInfo::m_chanNum
QString m_chanNum
Definition: channelinfo.h:218
ChannelInsertInfo::m_atscMajorChannel
uint m_atscMajorChannel
Definition: channelinfo.h:221
mythdb.h
ChannelInsertInfo::m_inNit
bool m_inNit
Definition: channelinfo.h:245
SourceUtil::GetSourceName
static QString GetSourceName(uint sourceid)
Definition: sourceutil.cpp:46
ChannelInfo::m_chanId
uint m_chanId
Definition: channelinfo.h:85
ChannelInfo::ToMap
void ToMap(InfoMap &infoMap)
Definition: channelinfo.cpp:218
ChannelInsertInfo::m_freqId
QString m_freqId
Definition: channelinfo.h:227
kChannelNeverVisible
@ kChannelNeverVisible
Definition: channelinfo.h:25
ChannelInfo::LoadInputIds
void LoadInputIds()
Definition: channelinfo.cpp:239
ChannelInsertInfo::m_isDataService
bool m_isDataService
Definition: channelinfo.h:248
ChannelInfo::m_freqId
QString m_freqId
Definition: channelinfo.h:87
ChannelInsertInfo::m_origNetId
uint m_origNetId
Definition: channelinfo.h:238
ChannelInfo::GetSourceName
QString GetSourceName()
Definition: channelinfo.cpp:210
ChannelInsertInfo::m_inPmt
bool m_inPmt
Definition: channelinfo.h:243
ChannelInfo::m_fineTune
int m_fineTune
Definition: channelinfo.h:95
ChannelInfo::m_iptvId
uint m_iptvId
Definition: channelinfo.h:121
ChannelInfo::operator=
ChannelInfo & operator=(const ChannelInfo &other)
Definition: channelinfo.cpp:85
ChannelInfo::AddInputId
void AddInputId(uint linputid)
Definition: channelinfo.h:71
MSqlQuery::value
QVariant value(int i) const
Definition: mythdbcon.h:198
ChannelInsertInfo::m_defaultAuthority
QString m_defaultAuthority
Definition: channelinfo.h:231
ChannelInfo::m_atscMajorChan
uint m_atscMajorChan
Definition: channelinfo.h:113
MSqlQuery::exec
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
Definition: mythdbcon.cpp:603
ChannelInfo::m_name
QString m_name
Definition: channelinfo.h:92
ChannelInsertInfo::m_hidden
bool m_hidden
Definition: channelinfo.h:224
ChannelInsertInfo::ImportExtraInfo
void ImportExtraInfo(const ChannelInsertInfo &other)
Definition: channelinfo.cpp:377
ChannelInsertInfo::m_dbMplexId
uint m_dbMplexId
Definition: channelinfo.h:213
ChannelInfo::ChannelInfo
ChannelInfo()=default
ChannelInsertInfo::m_isAudioService
bool m_isAudioService
Definition: channelinfo.h:249
mythdirs.h
kChannelAlwaysVisible
@ kChannelAlwaysVisible
Definition: channelinfo.h:22
ChannelInfo::m_icon
QString m_icon
Definition: channelinfo.h:93
ChannelInsertInfo::SaveScan
bool SaveScan(uint scanid, uint transportid) const
Definition: channelinfo.cpp:291
tmp
static guint32 * tmp
Definition: goom_core.cpp:31
ChannelInsertInfo::m_atscMinorChannel
uint m_atscMinorChannel
Definition: channelinfo.h:222
ChannelInsertInfo
Definition: channelinfo.h:134
ChannelInsertInfo::m_isOpencable
bool m_isOpencable
Definition: channelinfo.h:250
InfoMap
QHash< QString, QString > InfoMap
Definition: mythtypes.h:15
ChannelInfo::GetFormatted
QString GetFormatted(ChannelFormat format) const
Definition: channelinfo.cpp:190
ChannelInfo::m_commMethod
int m_commMethod
Definition: channelinfo.h:119
ChannelInfo::m_useOnAirGuide
bool m_useOnAirGuide
Definition: channelinfo.h:108
sourceutil.h
ChannelInfo::kChannelLong
@ kChannelLong
Definition: channelinfo.h:49
channelVisibleTypeFromString
ChannelVisibleType channelVisibleTypeFromString(const QString &type)
Definition: channelinfo.cpp:537
remotefile.h
ChannelInfo::GetGroupIds
QList< uint > GetGroupIds() const
Definition: channelinfo.h:57
ChannelInfo::m_atscMinorChan
uint m_atscMinorChan
Definition: channelinfo.h:114
MSqlQuery::InitCon
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Definition: mythdbcon.cpp:535
MythDB::DBError
static void DBError(const QString &where, const MSqlQuery &query)
Definition: mythdb.cpp:178
ChannelInfo::m_oldXmltvId
QString m_oldXmltvId
Definition: channelinfo.h:123
ChannelInfo::ChannelFormat
ChannelFormat
Definition: channelinfo.h:49
ChannelInfo::m_chanNum
QString m_chanNum
Definition: channelinfo.h:86
ChannelInfo::m_inputIdList
QList< uint > m_inputIdList
Definition: channelinfo.h:129
ChannelInsertInfo::m_channelId
uint m_channelId
Definition: channelinfo.h:215
ChannelInfo::LoadGroupIds
void LoadGroupIds()
Definition: channelinfo.cpp:261
ChannelInfo::m_tmOffset
int m_tmOffset
Definition: channelinfo.h:120
ChannelInfo::m_hue
uint m_hue
Definition: channelinfo.h:103
ChannelVisibleType
ChannelVisibleType
Definition: channelinfo.h:21
ChannelInsertInfo::IsSameChannel
bool IsSameChannel(const ChannelInsertInfo &other, int relaxed=0) const
Definition: channelinfo.cpp:457
ChannelInsertInfo::m_vctTsId
uint m_vctTsId
Definition: channelinfo.h:235
ChannelInfo::m_contrast
uint m_contrast
Definition: channelinfo.h:100
uint
unsigned int uint
Definition: compat.h:141
gCoreContext
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
Definition: mythcorecontext.cpp:60
ChannelInfo::AddGroupId
void AddGroupId(uint lgroupid)
Definition: channelinfo.h:59
ChannelInsertInfo::m_callSign
QString m_callSign
Definition: channelinfo.h:216
ChannelInsertInfo::m_format
QString m_format
Definition: channelinfo.h:229
mpegstreamdata.h
ChannelInsertInfo::m_decryptionStatus
int m_decryptionStatus
Definition: channelinfo.h:252
channelinfo.h
ChannelInsertInfo::m_serviceName
QString m_serviceName
Definition: channelinfo.h:217
ChannelInfo::m_serviceId
uint m_serviceId
Definition: channelinfo.h:111
channelgroup.h
toRawString
QString toRawString(ChannelVisibleType type)
Definition: channelinfo.cpp:520
kChannelVisible
@ kChannelVisible
Definition: channelinfo.h:23
ChannelInsertInfo::m_sdtTsId
uint m_sdtTsId
Definition: channelinfo.h:237
ChannelInsertInfo::m_netId
uint m_netId
Definition: channelinfo.h:239
mythcorecontext.h
ChannelInfo::Load
bool Load(uint lchanid=-1)
Definition: channelinfo.cpp:129
MSqlQuery::bindValue
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
Definition: mythdbcon.cpp:864
ChannelInsertInfo::m_inChannelsConf
bool m_inChannelsConf
Definition: channelinfo.h:241
ChannelInsertInfo::m_serviceId
uint m_serviceId
Definition: channelinfo.h:219
ChannelInfo::m_sourceId
uint m_sourceId
Definition: channelinfo.h:89
ChannelInsertInfo::m_inSdt
bool m_inSdt
Definition: channelinfo.h:246
ChannelInfo::m_tvFormat
QString m_tvFormat
Definition: channelinfo.h:105
ChannelInsertInfo::m_sourceId
uint m_sourceId
Definition: channelinfo.h:214
ChannelInfo::m_recPriority
int m_recPriority
Definition: channelinfo.h:98
ChannelInfo::m_xmltvId
QString m_xmltvId
Definition: channelinfo.h:97
ChannelInfo::m_videoFilters
QString m_videoFilters
Definition: channelinfo.h:96
ChannelInsertInfo::m_serviceType
uint m_serviceType
Definition: channelinfo.h:220
ChannelInsertInfo::m_xmltvId
QString m_xmltvId
Definition: channelinfo.h:230
ChannelInfo::m_lastRecord
QDateTime m_lastRecord
Definition: channelinfo.h:116
ChannelInsertInfo::m_icon
QString m_icon
Definition: channelinfo.h:228
ChannelInsertInfo::m_vctChanTsId
uint m_vctChanTsId
Definition: channelinfo.h:236
ChannelInfo::m_mplexId
uint m_mplexId
Definition: channelinfo.h:110
ChannelInfo::m_brightness
uint m_brightness
Definition: channelinfo.h:101
ChannelInfo::m_colour
uint m_colour
Definition: channelinfo.h:102
ChannelInsertInfo::m_patTsId
uint m_patTsId
Definition: channelinfo.h:234
ChannelInfo::m_visible
ChannelVisibleType m_visible
Definition: channelinfo.h:106
query
MSqlQuery query(MSqlQuery::InitCon())
ChannelInsertInfo::m_inVct
bool m_inVct
Definition: channelinfo.h:244
ChannelInsertInfo::m_couldBeOpencable
bool m_couldBeOpencable
Definition: channelinfo.h:251
ChannelInfo::m_sourceName
QString m_sourceName
Definition: channelinfo.h:126
ChannelInsertInfo::m_siStandard
QString m_siStandard
Definition: channelinfo.h:240
ChannelInfo::m_defaultAuthority
QString m_defaultAuthority
Definition: channelinfo.h:118
ChannelInfo::m_callSign
QString m_callSign
Definition: channelinfo.h:91
kChannelNotVisible
@ kChannelNotVisible
Definition: channelinfo.h:24
toString
QString toString(ChannelVisibleType type)
Definition: channelinfo.cpp:503
MythCoreContext::GetSetting
QString GetSetting(const QString &key, const QString &defaultval="")
Definition: mythcorecontext.cpp:919
MSqlQuery::prepare
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
Definition: mythdbcon.cpp:808