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