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
36class TransLabelSetting;
37class ScanWizard;
38class OptionalTypeSetting;
39class PaneDVBT;
40class PaneDVBS;
41class PaneDVBS2;
42class PaneATSC;
43class PaneDVBC;
44class PaneAnalog;
45class STPane;
46class 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"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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"));
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
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
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
ServiceRequirements
@ kRequireAudio
@ kRequireVideo
ServiceRequirements GetServiceRequirements(void) const
void setValue(const QString &newValue) override
void addSelection(const QString &label, QString value=QString(), bool select=false)
PaneError(const QString &error)
QString getFec(const QString &satname)
QMap< QString, struct tuningdata > m_tdm
QString getPolarity(const QString &satname)
QString getModSys(const QString &satname)
QString getFrequency(const QString &satname)
QString getSymbolrate(const QString &satname)
QString getModulation(const QString &satname)
virtual void addChild(StandardSetting *child)
virtual void setHelpText(const QString &str)
virtual QString getValue(void) const
virtual void setLabel(QString str)
def error(message)
Definition: smolt.py:409
VERBOSE_PREAMBLE Most true
Definition: verbosedefs.h:95
VERBOSE_PREAMBLE false
Definition: verbosedefs.h:89