MythTV  master
channelscanmiscsettings.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  * Copyright (c) 2004, 2005 John Pullan <john@pullan.org>
8  * Copyright (c) 2005 - 2007 Daniel Kristjansson
9  *
10  * Description:
11  * Collection of classes to provide channel scanning functionallity
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
26  * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
27  *
28  */
29 
30 #ifndef CHANNEL_SCAN_MISC_SETTINGS_H
31 #define CHANNEL_SCAN_MISC_SETTINGS_H
32 
34 #include "channelscantypes.h"
35 
36 class TransLabelSetting;
37 class ScanWizard;
38 class OptionalTypeSetting;
39 class PaneDVBT;
40 class PaneDVBS;
41 class PaneDVBS2;
42 class PaneATSC;
43 class PaneDVBC;
44 class PaneAnalog;
45 class STPane;
46 class DVBUtilsImportPane;
47 
48 // ///////////////////////////////
49 // Settings Below Here
50 // ///////////////////////////////
51 
53 {
54  public:
56  {
57  setLabel(QObject::tr("Ignore Signal Timeout"));
59  QObject::tr("This option allows you to slow down the scan for "
60  "broken drivers, such as the DVB drivers for the "
61  "Leadtek LR6650 DVB card."));
62  }
63 };
64 
66 {
67  public:
69  {
70  setLabel(QObject::tr("Search new Transports"));
72  QObject::tr("Digital transmissions may signal other available "
73  "Transports. If this option is enabled the scanner "
74  "scans all signaled transports for new/updated "
75  "channels."));
76  }
77 };
78 
80 {
81  public:
83  {
84  setLabel(QObject::tr("Desired Services"));
85  setHelpText(QObject::tr(
86  "TV - Adds A/V services only, "
87  "TV+Radio - Adds all services with audio, "
88  "All - Adds all services "
89  "(including data only services)."));
90  addSelection(QObject::tr("TV"), "tv", true);
91  addSelection(QObject::tr("TV+Radio"), "audio");
92  addSelection(QObject::tr("All"), "all");
93  };
94 
96  {
97  QString val = getValue();
98  int ret = kRequireVideo | kRequireAudio;
99  if (val == "tv")
101  else if (val == "audio")
102  ret = kRequireAudio;
103  else if (val == "all")
104  ret = 0;
105  return (ServiceRequirements) ret;
106  }
107 };
108 
110 {
111  public:
113  {
114  setLabel(QObject::tr("Unencrypted Only"));
115  setHelpText(
116  QObject::tr(
117  "If set, only non-encrypted channels will be "
118  "added during the scan."));
119  setValue(true);
120  };
121 };
122 
124 {
125  public:
127  {
128  setLabel(QObject::tr("Logical Channel Numbers required"));
129  setHelpText(
130  QObject::tr(
131  "If set, only services with a Logical Channel Number will "
132  "be added during the scan. This will filter out services "
133  "for set-top-box firmware download and video-on-demand "
134  "that can be present on DVB-C networks."));
135  setValue(false);
136  };
137 };
138 
140 {
141  public:
143  {
144  setLabel(QObject::tr("Complete scan data required"));
145  setHelpText(
146  QObject::tr(
147  "If set, only services that are present in the PAT, the PMT "
148  "and the SDT and that have a name will be added during the scan. "
149  "On satellites there are many incomplete channels, "
150  "such as feeds and offline channels, "
151  "that are not useful in a MythTV system. "
152  "These are filtered out by this option."));
153  setValue(true);
154  };
155 };
156 
158 {
159  public:
161  {
162  setLabel(QObject::tr("Full search for old channels"));
163  setHelpText(
164  QObject::tr(
165  "If set, compare all channels in the database with the channels found in "
166  "the scan; otherwise only the channels in the same transport are compared. "
167  "This option is useful when you want to keep channel data such as "
168  "the xmltvid and the icon path when doing a rescan "
169  "after channels have been rearranged across transports."));
170  setValue(true);
171  };
172 };
173 
175 {
176  public:
178  {
179  setLabel(QObject::tr("Remove duplicates"));
180  setHelpText(
181  QObject::tr(
182  "If set, select the transport stream multiplex with the best signal "
183  "when identical transports are received on different frequencies. "
184  "This option is useful for DVB-T2 and ATSC/OTA when a transport "
185  "can sometimes be received from different transmitters."));
186  setValue(true);
187  };
188 };
189 
191 {
192  public:
194  {
195  setLabel(QObject::tr("Add full Transport Stream channels"));
196  setHelpText(
197  QObject::tr(
198  "If set, create MPTS channels, which allow "
199  "recording of the full, unaltered, transport stream."));
200  setValue(false);
201  };
202 };
203 
205 {
206  public:
208  {
209  setLabel(QObject::tr("Test Decryptability"));
210  setHelpText(
211  QObject::tr("Test all channels to see if they can be decrypted "
212  "with installed CAM/smartcard. Sometimes the encrypted "
213  "flag is set spuriously. Attention: Enabling this "
214  "option increases the scan time for each encrypted "
215  "channel by a couple of seconds."));
216  setValue(false);
217  }
218 };
219 
220 // Scan data reference transponder
222 {
223  public:
225  {
226  setLabel(QObject::tr("Satellite tuning data"));
227  setHelpText(
228  QObject::tr(
229  "Select a satellite from this list for the "
230  "tuning data of the reference transponder."));
231  addSelection("(Select Satellite)", "Select", true);
232 
233  // Satellite tuning data
234  m_tdm["1 TH"] = { "1 TH", "Thor 5/6/7 0.8W", "10872000", "h", "25000000", "8PSK", "DVB-S2", "3/4" };
235  m_tdm["2 E7"] = { "2 E7", "Eutelsat 7.0E", "10721000", "h", "22000000", "QPSK", "DVB-S", "3/4" };
236  m_tdm["3 HB"] = { "3 HB", "Hotbird 13.0E", "12015000", "h", "27500000", "8PSK", "DVB-S2", "3/4" };
237  m_tdm["4 A1"] = { "4 A1", "Astra-1 19.2E", "11229000", "v", "22000000", "8PSK", "DVB-S2", "2/3" };
238  m_tdm["5 A3"] = { "5 A3", "Astra-3 23.5E", "12031500", "h", "27500000", "QPSK", "DVB-S2", "auto"};
239  m_tdm["6 A2"] = { "6 A2", "Astra-2 28.2E", "10773000", "h", "23000000", "8PSK", "DVB-S2", "3/4" };
240  m_tdm["7 T3"] = { "7 T3", "Turksat-3A 42.0E", "12610000", "h", "20830000", "QPSK", "DVB-S", "3/4" };
241  m_tdm["8 T4"] = { "8 T4", "Turksat-4A 42.0E", "11916000", "v", "30000000", "QPSK", "DVB-S", "3/4" };
242  m_tdm["9 T8"] = { "9 T8", "Turksat-8K 42.0E", "12605000", "v", "34285000","16APSK","DVB-S2", "2/3" };
243 
244  for (auto &td: m_tdm)
245  {
246  addSelection(td.fullname, td.name);
247  }
248  }
249 
250  private:
251  struct tuningdata {
252  QString name;
253  QString fullname;
254  QString frequency;
255  QString polarity;
256  QString symbolrate;
257  QString modulation;
258  QString modSys;
259  QString fec;
260  };
261  QMap<QString, struct tuningdata> m_tdm;
262 
263  public:
264  QString getFrequency (const QString &satname) {return m_tdm[satname].frequency; }
265  QString getPolarity (const QString &satname) {return m_tdm[satname].polarity; }
266  QString getSymbolrate(const QString &satname) {return m_tdm[satname].symbolrate;}
267  QString getModulation(const QString &satname) {return m_tdm[satname].modulation;}
268  QString getModSys (const QString &satname) {return m_tdm[satname].modSys; }
269  QString getFec (const QString &satname) {return m_tdm[satname].fec; }
270 };
271 
273 {
274  public:
276  {
277  setLabel(QObject::tr("Frequency"));
278  setHelpText(QObject::tr("Frequency (Option has no default)\n"
279  "The frequency for this transport (multiplex) in kHz."));
280  };
281 };
282 
284 {
285  public:
287  {
288  setLabel(QObject::tr("Frequency"));
289  setHelpText(QObject::tr("Frequency (Option has no default)\n"
290  "The frequency for this transport (multiplex) in Hz."));
291  };
292 };
293 
295 {
296  public:
298  {
299  setLabel(QObject::tr("Symbol Rate"));
300  setHelpText(
301  QObject::tr(
302  "Symbol Rate (symbols/second).\n"
303  "Most DVB-S transponders transmit at 27500000 "
304  "symbols per second."));
305  addSelection("3333000");
306  addSelection("22000000");
307  addSelection("22500000");
308  addSelection("23000000");
309  addSelection("27500000", "27500000", true);
310  addSelection("28000000");
311  addSelection("28500000");
312  addSelection("29500000");
313  addSelection("29700000");
314  addSelection("29900000");
315  }
316 };
317 
319 {
320  public:
322  {
323  setLabel(QObject::tr("Symbol Rate"));
324  setHelpText(
325  QObject::tr(
326  "Symbol Rate (symbols/second).\n"
327  "Most DVB-C transports transmit at 6900000 or 6875000 "
328  "symbols per second."));
329  addSelection("3450000");
330  addSelection("5000000");
331  addSelection("5900000");
332  addSelection("6875000");
333  addSelection("6900000", "6900000", true);
334  addSelection("6950000");
335  }
336 };
337 
339 {
340  public:
342  {
343  setLabel(QObject::tr("Polarity"));
344  setHelpText(QObject::tr("Polarity (Option has no default)"));
345  addSelection(QObject::tr("Horizontal"), "h",true);
346  addSelection(QObject::tr("Vertical"), "v");
347  addSelection(QObject::tr("Right Circular"), "r");
348  addSelection(QObject::tr("Left Circular"), "l");
349  };
350 };
351 
353 {
354  public:
356  {
357  setLabel(QObject::tr("Inversion"));
358  setHelpText(QObject::tr(
359  "Inversion (Default: Auto):\n"
360  "Most cards can autodetect this now, so "
361  "leave it at Auto unless it won't work."));
362  addSelection(QObject::tr("Auto"), "a",true);
363  addSelection(QObject::tr("On"), "1");
364  addSelection(QObject::tr("Off"), "0");
365  };
366 };
367 
369 {
370  public:
372  {
373  setLabel(QObject::tr("Bandwidth"));
374  setHelpText(QObject::tr("Bandwidth (Default: Auto)\n"));
375  addSelection(QObject::tr("Auto"),"a",true);
376  addSelection(QObject::tr("6 MHz"),"6");
377  addSelection(QObject::tr("7 MHz"),"7");
378  addSelection(QObject::tr("8 MHz"),"8");
379  };
380 };
381 
383 {
384  public:
386  {
387  addSelection(QObject::tr("Auto"),"auto",true);
388  addSelection(QObject::tr("None"),"none");
389  addSelection("1/2");
390  addSelection("2/3");
391  addSelection("3/4");
392  addSelection("4/5");
393  addSelection("5/6");
394  addSelection("6/7");
395  addSelection("7/8");
396  addSelection("8/9");
397  addSelection("3/5");
398  addSelection("9/10");
399  }
400 };
401 
402 class ScanFec: public ScanFecSetting
403 {
404  public:
406  {
407  setLabel(QObject::tr("FEC"));
408  setHelpText(QObject::tr(
409  "Forward Error Correction (Default: Auto)"));
410  }
411 };
412 
414 {
415  public:
417  {
418  setLabel(QObject::tr("LP Coderate"));
419  setHelpText(QObject::tr("Low Priority Code Rate (Default: Auto)"));
420  }
421 };
422 
424 {
425  public:
427  {
428  setLabel(QObject::tr("HP Coderate"));
429  setHelpText(QObject::tr("High Priority Code Rate (Default: Auto)"));
430  };
431 };
432 
434 {
435  public:
437  {
438  setLabel(QObject::tr("Guard Interval"));
439  setHelpText(QObject::tr("Guard Interval (Default: Auto)"));
440  addSelection(QObject::tr("Auto"),"auto");
441  addSelection("1/4");
442  addSelection("1/8");
443  addSelection("1/16");
444  addSelection("1/32");
445  };
446 };
447 
449 {
450  public:
452  {
453  setLabel(QObject::tr("Trans. Mode"));
454  setHelpText(QObject::tr("Transmission Mode (Default: Auto)"));
455  addSelection(QObject::tr("Auto"),"a");
456  addSelection("2K","2");
457  addSelection("8K","8");
458  };
459 };
460 
462 {
463  public:
465  {
466  setLabel(QObject::tr("Hierarchy"));
467  setHelpText(QObject::tr("Hierarchy (Default: Auto)"));
468  addSelection(QObject::tr("Auto"),"a");
469  addSelection(QObject::tr("None"), "n");
470  addSelection("1");
471  addSelection("2");
472  addSelection("4");
473  };
474 };
475 
477 {
478  public:
480  {
481  setLabel(QObject::tr("Modulation System"));
482  setHelpText(QObject::tr("Modulation system (Default: DVB-S2)"));
483  addSelection("DVB-S", "DVB-S");
484  addSelection("DVB-S2", "DVB-S2", true);
485  };
486 };
487 
489 {
490  public:
492  {
493  setLabel(QObject::tr("Modulation System"));
494  setHelpText(QObject::tr("Modulation system (Default: DVB-T2)"));
495  addSelection("DVB-T", "DVB-T");
496  addSelection("DVB-T2", "DVB-T2", true);
497  };
498 };
499 
501 {
502  public:
504  {
505  setLabel(QObject::tr("Modulation System"));
506  setHelpText(QObject::tr("Modulation System (Default: DVB-C/A)"));
507  addSelection("DVB-C/A", "DVB-C/A", true);
508  addSelection("DVB-C/B", "DVB-C/B");
509  addSelection("DVB-C/C", "DVB-C/C");
510  }
511 };
512 
514 {
515  public:
517  {
518  setLabel(QObject::tr("Roll-off"));
519  setHelpText(QObject::tr("Roll-off factor (Default: 0.35)"));
520  addSelection("0.35");
521  addSelection("0.20");
522  addSelection("0.25");
523  addSelection(QObject::tr("Auto"),"auto");
524  };
525 };
526 
527 class PaneError : public GroupSetting
528 {
529  public:
530  explicit PaneError(const QString &error)
531  {
532  auto* label = new TransTextEditSetting();
533  label->setValue(error);
534  addChild(label);
535  }
536 };
537 
538 #endif // CHANNEL_SCAN_MISC_SETTINGS_H
ScanRollOff
Definition: channelscanmiscsettings.h:513
RemoveDuplicates
Definition: channelscanmiscsettings.h:174
ChannelNumbersOnly::ChannelNumbersOnly
ChannelNumbersOnly()
Definition: channelscanmiscsettings.h:126
TransMythUICheckBoxSetting
Definition: standardsettings.h:411
ScanDVBCModSys
Definition: channelscanmiscsettings.h:500
ScanGuardInterval::ScanGuardInterval
ScanGuardInterval()
Definition: channelscanmiscsettings.h:436
ScanTransponder::tuningdata::modulation
QString modulation
Definition: channelscanmiscsettings.h:257
PaneAnalog
Definition: paneanalog.h:12
CompleteChannelsOnly
Definition: channelscanmiscsettings.h:139
false
VERBOSE_PREAMBLE false
Definition: verbosedefs.h:89
TransMythUIComboBoxSetting
Definition: standardsettings.h:272
TrustEncSISetting
Definition: channelscanmiscsettings.h:204
ScanCodeRateHP::ScanCodeRateHP
ScanCodeRateHP()
Definition: channelscanmiscsettings.h:426
TransTextEditSetting
Definition: standardsettings.h:161
ScanTransponder::tuningdata::frequency
QString frequency
Definition: channelscanmiscsettings.h:254
CompleteChannelsOnly::CompleteChannelsOnly
CompleteChannelsOnly()
Definition: channelscanmiscsettings.h:142
kRequireAudio
@ kRequireAudio
Definition: channelscantypes.h:8
ScanTransponder::tuningdata::fec
QString fec
Definition: channelscanmiscsettings.h:259
PaneError
Definition: channelscanmiscsettings.h:527
PaneDVBT
Definition: panedvbt.h:36
ScanHierarchy
Definition: channelscanmiscsettings.h:461
ScanTransmissionMode
Definition: channelscanmiscsettings.h:448
ScanPolarity::ScanPolarity
ScanPolarity()
Definition: channelscanmiscsettings.h:341
ScanDVBCModSys::ScanDVBCModSys
ScanDVBCModSys()
Definition: channelscanmiscsettings.h:503
ScanFec
Definition: channelscanmiscsettings.h:402
FreeToAirOnly::FreeToAirOnly
FreeToAirOnly()
Definition: channelscanmiscsettings.h:112
ScanDVBCSymbolRate
Definition: channelscanmiscsettings.h:318
ScanTransponder
Definition: channelscanmiscsettings.h:221
ScanWizard
Definition: scanwizard.h:44
ScanTransponder::getModulation
QString getModulation(const QString &satname)
Definition: channelscanmiscsettings.h:267
true
VERBOSE_PREAMBLE Most true
Definition: verbosedefs.h:95
IgnoreSignalTimeout
Definition: channelscanmiscsettings.h:52
PaneATSC
Definition: paneatsc.h:16
StandardSetting::addChild
virtual void addChild(StandardSetting *child)
Definition: standardsettings.cpp:70
ScanPolarity
Definition: channelscanmiscsettings.h:338
DesiredServices::DesiredServices
DesiredServices()
Definition: channelscanmiscsettings.h:82
channelscantypes.h
PaneDVBS
Definition: panedvbs.h:36
ScanCodeRateLP
Definition: channelscanmiscsettings.h:413
ScanTransponder::getFrequency
QString getFrequency(const QString &satname)
Definition: channelscanmiscsettings.h:264
ScanTransponder::getFec
QString getFec(const QString &satname)
Definition: channelscanmiscsettings.h:269
PaneDVBS2
Definition: panedvbs2.h:12
ScanBandwidth
Definition: channelscanmiscsettings.h:368
PaneError::PaneError
PaneError(const QString &error)
Definition: channelscanmiscsettings.h:530
StandardSetting::setHelpText
virtual void setHelpText(const QString &str)
Definition: standardsettings.h:37
ServiceRequirements
ServiceRequirements
Definition: channelscantypes.h:4
ScanTransponder::m_tdm
QMap< QString, struct tuningdata > m_tdm
Definition: channelscanmiscsettings.h:261
ScanFrequency
Definition: channelscanmiscsettings.h:283
ScanFecSetting::ScanFecSetting
ScanFecSetting()
Definition: channelscanmiscsettings.h:385
DesiredServices::GetServiceRequirements
ServiceRequirements GetServiceRequirements(void) const
Definition: channelscanmiscsettings.h:95
ScanDVBTModSys::ScanDVBTModSys
ScanDVBTModSys()
Definition: channelscanmiscsettings.h:491
ScanDVBTModSys
Definition: channelscanmiscsettings.h:488
ScanInversion
Definition: channelscanmiscsettings.h:352
StandardSetting::getValue
virtual QString getValue(void) const
Definition: standardsettings.h:52
kRequireVideo
@ kRequireVideo
Definition: channelscantypes.h:7
ScanTransponder::tuningdata::modSys
QString modSys
Definition: channelscanmiscsettings.h:258
FullChannelSearch
Definition: channelscanmiscsettings.h:157
ScanInversion::ScanInversion
ScanInversion()
Definition: channelscanmiscsettings.h:355
ScanDVBSSymbolRate
Definition: channelscanmiscsettings.h:294
ScanTransponder::tuningdata
Definition: channelscanmiscsettings.h:251
ScanDVBSModSys
Definition: channelscanmiscsettings.h:476
ScanTransponder::ScanTransponder
ScanTransponder()
Definition: channelscanmiscsettings.h:224
ScanCodeRateHP
Definition: channelscanmiscsettings.h:423
StandardSetting::setLabel
virtual void setLabel(QString str)
Definition: standardsettings.h:34
hardwareprofile.smolt.error
def error(message)
Definition: smolt.py:409
FollowNITSetting
Definition: channelscanmiscsettings.h:65
standardsettings.h
ScanTransponder::getModSys
QString getModSys(const QString &satname)
Definition: channelscanmiscsettings.h:268
ScanGuardInterval
Definition: channelscanmiscsettings.h:433
ScanTransponder::tuningdata::polarity
QString polarity
Definition: channelscanmiscsettings.h:255
TrustEncSISetting::TrustEncSISetting
TrustEncSISetting()
Definition: channelscanmiscsettings.h:207
MythUIComboBoxSetting::addSelection
void addSelection(const QString &label, QString value=QString(), bool select=false)
Definition: standardsettings.cpp:502
ScanTransponder::getSymbolrate
QString getSymbolrate(const QString &satname)
Definition: channelscanmiscsettings.h:266
ChannelNumbersOnly
Definition: channelscanmiscsettings.h:123
ScanFec::ScanFec
ScanFec()
Definition: channelscanmiscsettings.h:405
DesiredServices
Definition: channelscanmiscsettings.h:79
ScanFecSetting
Definition: channelscanmiscsettings.h:382
ScanTransponder::tuningdata::symbolrate
QString symbolrate
Definition: channelscanmiscsettings.h:256
ScanHierarchy::ScanHierarchy
ScanHierarchy()
Definition: channelscanmiscsettings.h:464
ScanTransponder::getPolarity
QString getPolarity(const QString &satname)
Definition: channelscanmiscsettings.h:265
ScanDVBCSymbolRate::ScanDVBCSymbolRate
ScanDVBCSymbolRate()
Definition: channelscanmiscsettings.h:321
ScanFrequencykHz::ScanFrequencykHz
ScanFrequencykHz()
Definition: channelscanmiscsettings.h:275
ScanFrequencykHz
Definition: channelscanmiscsettings.h:272
ScanDVBSModSys::ScanDVBSModSys
ScanDVBSModSys()
Definition: channelscanmiscsettings.h:479
RemoveDuplicates::RemoveDuplicates
RemoveDuplicates()
Definition: channelscanmiscsettings.h:177
FreeToAirOnly
Definition: channelscanmiscsettings.h:109
ScanDVBSSymbolRate::ScanDVBSSymbolRate
ScanDVBSSymbolRate()
Definition: channelscanmiscsettings.h:297
ScanFrequency::ScanFrequency
ScanFrequency()
Definition: channelscanmiscsettings.h:286
ScanTransmissionMode::ScanTransmissionMode
ScanTransmissionMode()
Definition: channelscanmiscsettings.h:451
ScanTransponder::tuningdata::name
QString name
Definition: channelscanmiscsettings.h:252
AddFullTS::AddFullTS
AddFullTS()
Definition: channelscanmiscsettings.h:193
ScanBandwidth::ScanBandwidth
ScanBandwidth()
Definition: channelscanmiscsettings.h:371
FullChannelSearch::FullChannelSearch
FullChannelSearch()
Definition: channelscanmiscsettings.h:160
MythUICheckBoxSetting::setValue
void setValue(const QString &newValue) override
Definition: standardsettings.cpp:732
FollowNITSetting::FollowNITSetting
FollowNITSetting()
Definition: channelscanmiscsettings.h:68
IgnoreSignalTimeout::IgnoreSignalTimeout
IgnoreSignalTimeout()
Definition: channelscanmiscsettings.h:55
GroupSetting
Definition: standardsettings.h:435
PaneDVBC
Definition: panedvbc.h:36
ScanTransponder::tuningdata::fullname
QString fullname
Definition: channelscanmiscsettings.h:253
ScanRollOff::ScanRollOff
ScanRollOff()
Definition: channelscanmiscsettings.h:516
ScanCodeRateLP::ScanCodeRateLP
ScanCodeRateLP()
Definition: channelscanmiscsettings.h:416
AddFullTS
Definition: channelscanmiscsettings.h:190