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", "10714000", "h", "22000000", "QPSK", "DVB-S", "5/6" };
240 
241  for (auto &td: m_tdm)
242  {
243  addSelection(td.fullname, td.name);
244  }
245  }
246 
247  private:
248  struct tuningdata {
249  QString name;
250  QString fullname;
251  QString frequency;
252  QString polarity;
253  QString symbolrate;
254  QString modulation;
255  QString modSys;
256  QString fec;
257  };
258  QMap<QString, struct tuningdata> m_tdm;
259 
260  public:
261  QString getFrequency (const QString &satname) {return m_tdm[satname].frequency; }
262  QString getPolarity (const QString &satname) {return m_tdm[satname].polarity; }
263  QString getSymbolrate(const QString &satname) {return m_tdm[satname].symbolrate;}
264  QString getModulation(const QString &satname) {return m_tdm[satname].modulation;}
265  QString getModSys (const QString &satname) {return m_tdm[satname].modSys; }
266  QString getFec (const QString &satname) {return m_tdm[satname].fec; }
267 };
268 
270 {
271  public:
273  {
274  setLabel(QObject::tr("Frequency"));
275  setHelpText(QObject::tr("Frequency (Option has no default)\n"
276  "The frequency for this transport (multiplex) in kHz."));
277  };
278 };
279 
281 {
282  public:
284  {
285  setLabel(QObject::tr("Frequency"));
286  setHelpText(QObject::tr("Frequency (Option has no default)\n"
287  "The frequency for this transport (multiplex) in Hz."));
288  };
289 };
290 
292 {
293  public:
295  {
296  setLabel(QObject::tr("Symbol Rate"));
297  setHelpText(
298  QObject::tr(
299  "Symbol Rate (symbols/second).\n"
300  "Most DVB-S transponders transmit at 27500000 "
301  "symbols per second."));
302  addSelection("3333000");
303  addSelection("22000000");
304  addSelection("22500000");
305  addSelection("23000000");
306  addSelection("27500000", "27500000", true);
307  addSelection("28000000");
308  addSelection("28500000");
309  addSelection("29500000");
310  addSelection("29700000");
311  addSelection("29900000");
312  }
313 };
314 
316 {
317  public:
319  {
320  setLabel(QObject::tr("Symbol Rate"));
321  setHelpText(
322  QObject::tr(
323  "Symbol Rate (symbols/second).\n"
324  "Most DVB-C transports transmit at 6900000 or 6875000 "
325  "symbols per second."));
326  addSelection("3450000");
327  addSelection("5000000");
328  addSelection("5900000");
329  addSelection("6875000");
330  addSelection("6900000", "6900000", true);
331  addSelection("6950000");
332  }
333 };
334 
336 {
337  public:
339  {
340  setLabel(QObject::tr("Polarity"));
341  setHelpText(QObject::tr("Polarity (Option has no default)"));
342  addSelection(QObject::tr("Horizontal"), "h",true);
343  addSelection(QObject::tr("Vertical"), "v");
344  addSelection(QObject::tr("Right Circular"), "r");
345  addSelection(QObject::tr("Left Circular"), "l");
346  };
347 };
348 
350 {
351  public:
353  {
354  setLabel(QObject::tr("Inversion"));
355  setHelpText(QObject::tr(
356  "Inversion (Default: Auto):\n"
357  "Most cards can autodetect this now, so "
358  "leave it at Auto unless it won't work."));
359  addSelection(QObject::tr("Auto"), "a",true);
360  addSelection(QObject::tr("On"), "1");
361  addSelection(QObject::tr("Off"), "0");
362  };
363 };
364 
366 {
367  public:
369  {
370  setLabel(QObject::tr("Bandwidth"));
371  setHelpText(QObject::tr("Bandwidth (Default: Auto)\n"));
372  addSelection(QObject::tr("Auto"),"a",true);
373  addSelection(QObject::tr("6 MHz"),"6");
374  addSelection(QObject::tr("7 MHz"),"7");
375  addSelection(QObject::tr("8 MHz"),"8");
376  };
377 };
378 
380 {
381  public:
383  {
384  addSelection(QObject::tr("Auto"),"auto",true);
385  addSelection(QObject::tr("None"),"none");
386  addSelection("1/2");
387  addSelection("2/3");
388  addSelection("3/4");
389  addSelection("4/5");
390  addSelection("5/6");
391  addSelection("6/7");
392  addSelection("7/8");
393  addSelection("8/9");
394  addSelection("3/5");
395  addSelection("9/10");
396  }
397 };
398 
399 class ScanFec: public ScanFecSetting
400 {
401  public:
403  {
404  setLabel(QObject::tr("FEC"));
405  setHelpText(QObject::tr(
406  "Forward Error Correction (Default: Auto)"));
407  }
408 };
409 
411 {
412  public:
414  {
415  setLabel(QObject::tr("LP Coderate"));
416  setHelpText(QObject::tr("Low Priority Code Rate (Default: Auto)"));
417  }
418 };
419 
421 {
422  public:
424  {
425  setLabel(QObject::tr("HP Coderate"));
426  setHelpText(QObject::tr("High Priority Code Rate (Default: Auto)"));
427  };
428 };
429 
431 {
432  public:
434  {
435  setLabel(QObject::tr("Guard Interval"));
436  setHelpText(QObject::tr("Guard Interval (Default: Auto)"));
437  addSelection(QObject::tr("Auto"),"auto");
438  addSelection("1/4");
439  addSelection("1/8");
440  addSelection("1/16");
441  addSelection("1/32");
442  };
443 };
444 
446 {
447  public:
449  {
450  setLabel(QObject::tr("Trans. Mode"));
451  setHelpText(QObject::tr("Transmission Mode (Default: Auto)"));
452  addSelection(QObject::tr("Auto"),"a");
453  addSelection("2K","2");
454  addSelection("8K","8");
455  };
456 };
457 
459 {
460  public:
462  {
463  setLabel(QObject::tr("Hierarchy"));
464  setHelpText(QObject::tr("Hierarchy (Default: Auto)"));
465  addSelection(QObject::tr("Auto"),"a");
466  addSelection(QObject::tr("None"), "n");
467  addSelection("1");
468  addSelection("2");
469  addSelection("4");
470  };
471 };
472 
474 {
475  public:
477  {
478  setLabel(QObject::tr("Modulation System"));
479  setHelpText(QObject::tr("Modulation system (Default: DVB-S2)"));
480  addSelection("DVB-S", "DVB-S");
481  addSelection("DVB-S2", "DVB-S2", true);
482  };
483 };
484 
486 {
487  public:
489  {
490  setLabel(QObject::tr("Modulation System"));
491  setHelpText(QObject::tr("Modulation system (Default: DVB-T2)"));
492  addSelection("DVB-T", "DVB-T");
493  addSelection("DVB-T2", "DVB-T2", true);
494  };
495 };
496 
498 {
499  public:
501  {
502  setLabel(QObject::tr("Modulation System"));
503  setHelpText(QObject::tr("Modulation System (Default: DVB-C/A)"));
504  addSelection("DVB-C/A", "DVB-C/A", true);
505  addSelection("DVB-C/B", "DVB-C/B");
506  addSelection("DVB-C/C", "DVB-C/C");
507  }
508 };
509 
511 {
512  public:
514  {
515  setLabel(QObject::tr("Roll-off"));
516  setHelpText(QObject::tr("Roll-off factor (Default: 0.35)"));
517  addSelection("0.35");
518  addSelection("0.20");
519  addSelection("0.25");
520  addSelection(QObject::tr("Auto"),"auto");
521  };
522 };
523 
524 class PaneError : public GroupSetting
525 {
526  public:
527  explicit PaneError(const QString &error)
528  {
529  auto* label = new TransTextEditSetting();
530  label->setValue(error);
531  addChild(label);
532  }
533 };
534 
535 #endif // CHANNEL_SCAN_MISC_SETTINGS_H
ScanRollOff
Definition: channelscanmiscsettings.h:510
RemoveDuplicates
Definition: channelscanmiscsettings.h:174
ChannelNumbersOnly::ChannelNumbersOnly
ChannelNumbersOnly()
Definition: channelscanmiscsettings.h:126
TransMythUICheckBoxSetting
Definition: standardsettings.h:411
ScanDVBCModSys
Definition: channelscanmiscsettings.h:497
ScanGuardInterval::ScanGuardInterval
ScanGuardInterval()
Definition: channelscanmiscsettings.h:433
ScanTransponder::tuningdata::modulation
QString modulation
Definition: channelscanmiscsettings.h:254
error
static void error(const char *str,...)
Definition: vbi.cpp:36
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:423
TransTextEditSetting
Definition: standardsettings.h:161
ScanTransponder::tuningdata::frequency
QString frequency
Definition: channelscanmiscsettings.h:251
CompleteChannelsOnly::CompleteChannelsOnly
CompleteChannelsOnly()
Definition: channelscanmiscsettings.h:142
ScanTransponder::tuningdata::fec
QString fec
Definition: channelscanmiscsettings.h:256
PaneError
Definition: channelscanmiscsettings.h:524
PaneDVBT
Definition: panedvbt.h:36
ScanHierarchy
Definition: channelscanmiscsettings.h:458
ScanTransmissionMode
Definition: channelscanmiscsettings.h:445
ScanPolarity::ScanPolarity
ScanPolarity()
Definition: channelscanmiscsettings.h:338
ScanDVBCModSys::ScanDVBCModSys
ScanDVBCModSys()
Definition: channelscanmiscsettings.h:500
ScanFec
Definition: channelscanmiscsettings.h:399
FreeToAirOnly::FreeToAirOnly
FreeToAirOnly()
Definition: channelscanmiscsettings.h:112
ScanDVBCSymbolRate
Definition: channelscanmiscsettings.h:315
ScanTransponder
Definition: channelscanmiscsettings.h:221
ScanWizard
Definition: scanwizard.h:44
ScanTransponder::getModulation
QString getModulation(const QString &satname)
Definition: channelscanmiscsettings.h:264
true
VERBOSE_PREAMBLE Most true
Definition: verbosedefs.h:95
kRequireAudio
@ kRequireAudio
Definition: channelscantypes.h:8
IgnoreSignalTimeout
Definition: channelscanmiscsettings.h:52
PaneATSC
Definition: paneatsc.h:16
StandardSetting::addChild
virtual void addChild(StandardSetting *child)
Definition: standardsettings.cpp:71
ScanPolarity
Definition: channelscanmiscsettings.h:335
DesiredServices::DesiredServices
DesiredServices()
Definition: channelscanmiscsettings.h:82
channelscantypes.h
PaneDVBS
Definition: panedvbs.h:36
ScanCodeRateLP
Definition: channelscanmiscsettings.h:410
ScanTransponder::getFrequency
QString getFrequency(const QString &satname)
Definition: channelscanmiscsettings.h:261
ScanTransponder::getFec
QString getFec(const QString &satname)
Definition: channelscanmiscsettings.h:266
PaneDVBS2
Definition: panedvbs2.h:12
ScanBandwidth
Definition: channelscanmiscsettings.h:365
PaneError::PaneError
PaneError(const QString &error)
Definition: channelscanmiscsettings.h:527
StandardSetting::setHelpText
virtual void setHelpText(const QString &str)
Definition: standardsettings.h:37
ScanTransponder::m_tdm
QMap< QString, struct tuningdata > m_tdm
Definition: channelscanmiscsettings.h:258
ScanFrequency
Definition: channelscanmiscsettings.h:280
ScanFecSetting::ScanFecSetting
ScanFecSetting()
Definition: channelscanmiscsettings.h:382
DesiredServices::GetServiceRequirements
ServiceRequirements GetServiceRequirements(void) const
Definition: channelscanmiscsettings.h:95
ScanDVBTModSys::ScanDVBTModSys
ScanDVBTModSys()
Definition: channelscanmiscsettings.h:488
ScanDVBTModSys
Definition: channelscanmiscsettings.h:485
ScanInversion
Definition: channelscanmiscsettings.h:349
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:255
FullChannelSearch
Definition: channelscanmiscsettings.h:157
ScanInversion::ScanInversion
ScanInversion()
Definition: channelscanmiscsettings.h:352
ScanDVBSSymbolRate
Definition: channelscanmiscsettings.h:291
ScanTransponder::tuningdata
Definition: channelscanmiscsettings.h:248
ScanDVBSModSys
Definition: channelscanmiscsettings.h:473
ScanTransponder::ScanTransponder
ScanTransponder()
Definition: channelscanmiscsettings.h:224
ScanCodeRateHP
Definition: channelscanmiscsettings.h:420
StandardSetting::setLabel
virtual void setLabel(QString str)
Definition: standardsettings.h:34
FollowNITSetting
Definition: channelscanmiscsettings.h:65
standardsettings.h
ScanTransponder::getModSys
QString getModSys(const QString &satname)
Definition: channelscanmiscsettings.h:265
ScanGuardInterval
Definition: channelscanmiscsettings.h:430
ScanTransponder::tuningdata::polarity
QString polarity
Definition: channelscanmiscsettings.h:252
TrustEncSISetting::TrustEncSISetting
TrustEncSISetting()
Definition: channelscanmiscsettings.h:207
MythUIComboBoxSetting::addSelection
void addSelection(const QString &label, QString value=QString(), bool select=false)
Definition: standardsettings.cpp:499
ScanTransponder::getSymbolrate
QString getSymbolrate(const QString &satname)
Definition: channelscanmiscsettings.h:263
ChannelNumbersOnly
Definition: channelscanmiscsettings.h:123
ScanFec::ScanFec
ScanFec()
Definition: channelscanmiscsettings.h:402
DesiredServices
Definition: channelscanmiscsettings.h:79
ScanFecSetting
Definition: channelscanmiscsettings.h:379
ScanTransponder::tuningdata::symbolrate
QString symbolrate
Definition: channelscanmiscsettings.h:253
ScanHierarchy::ScanHierarchy
ScanHierarchy()
Definition: channelscanmiscsettings.h:461
ScanTransponder::getPolarity
QString getPolarity(const QString &satname)
Definition: channelscanmiscsettings.h:262
ScanDVBCSymbolRate::ScanDVBCSymbolRate
ScanDVBCSymbolRate()
Definition: channelscanmiscsettings.h:318
ScanFrequencykHz::ScanFrequencykHz
ScanFrequencykHz()
Definition: channelscanmiscsettings.h:272
ScanFrequencykHz
Definition: channelscanmiscsettings.h:269
ScanDVBSModSys::ScanDVBSModSys
ScanDVBSModSys()
Definition: channelscanmiscsettings.h:476
RemoveDuplicates::RemoveDuplicates
RemoveDuplicates()
Definition: channelscanmiscsettings.h:177
FreeToAirOnly
Definition: channelscanmiscsettings.h:109
ScanDVBSSymbolRate::ScanDVBSSymbolRate
ScanDVBSSymbolRate()
Definition: channelscanmiscsettings.h:294
ScanFrequency::ScanFrequency
ScanFrequency()
Definition: channelscanmiscsettings.h:283
ServiceRequirements
ServiceRequirements
Definition: channelscantypes.h:4
ScanTransmissionMode::ScanTransmissionMode
ScanTransmissionMode()
Definition: channelscanmiscsettings.h:448
ScanTransponder::tuningdata::name
QString name
Definition: channelscanmiscsettings.h:249
AddFullTS::AddFullTS
AddFullTS()
Definition: channelscanmiscsettings.h:193
ScanBandwidth::ScanBandwidth
ScanBandwidth()
Definition: channelscanmiscsettings.h:368
FullChannelSearch::FullChannelSearch
FullChannelSearch()
Definition: channelscanmiscsettings.h:160
MythUICheckBoxSetting::setValue
void setValue(const QString &newValue) override
Definition: standardsettings.cpp:721
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:250
ScanRollOff::ScanRollOff
ScanRollOff()
Definition: channelscanmiscsettings.h:513
ScanCodeRateLP::ScanCodeRateLP
ScanCodeRateLP()
Definition: channelscanmiscsettings.h:413
AddFullTS
Definition: channelscanmiscsettings.h:190