00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef _MISC_SETTINGS_H_
00031 #define _MISC_SETTINGS_H_
00032
00033 #include "settings.h"
00034 #include "channelscantypes.h"
00035
00036 class TransLabelSetting;
00037 class ScanWizard;
00038 class OptionalTypeSetting;
00039 class PaneDVBT;
00040 class PaneDVBS;
00041 class PaneDVBS2;
00042 class PaneATSC;
00043 class PaneDVBC;
00044 class PaneAnalog;
00045 class STPane;
00046 class DVBUtilsImportPane;
00047
00048
00049
00050
00051
00052 class IgnoreSignalTimeout : public CheckBoxSetting, public TransientStorage
00053 {
00054 public:
00055 IgnoreSignalTimeout() : CheckBoxSetting(this)
00056 {
00057 setLabel(QObject::tr("Ignore Signal Timeout"));
00058 setHelpText(
00059 QObject::tr("This option allows you to slow down the scan for "
00060 "broken drivers, such as the DVB drivers for the "
00061 "Leadtek LR6650 DVB card."));
00062 }
00063 };
00064
00065 class FollowNITSetting : public CheckBoxSetting, public TransientStorage
00066 {
00067 public:
00068 FollowNITSetting() : CheckBoxSetting(this)
00069 {
00070 setLabel(QObject::tr("Search new Transports"));
00071 setHelpText(
00072 QObject::tr("Digital transmissions may signal other available "
00073 "Transports. If this option is enabled the scanner "
00074 "scans all signaled transports for new/updated "
00075 "channels."));
00076 }
00077 };
00078
00079 class DesiredServices : public ComboBoxSetting, public TransientStorage
00080 {
00081 public:
00082 DesiredServices() : ComboBoxSetting(this)
00083 {
00084 setLabel(QObject::tr("Desired Services"));
00085 setHelpText(QObject::tr(
00086 "TV - Adds A/V services only, "
00087 "TV+Radio - Adds all services with audio, "
00088 "All - Adds all services "
00089 "(including data only services)."));
00090 addSelection(QObject::tr("TV"), "tv", true);
00091 addSelection(QObject::tr("TV+Radio"), "audio");
00092 addSelection(QObject::tr("All"), "all");
00093 };
00094
00095 ServiceRequirements GetServiceRequirements(void) const
00096 {
00097 QString val = getValue();
00098 int ret = kRequireVideo | kRequireAudio;
00099 if (val == "tv")
00100 ret = kRequireVideo | kRequireAudio;
00101 else if (val == "audio")
00102 ret = kRequireAudio;
00103 else if (val == "all")
00104 ret = 0;
00105 return (ServiceRequirements) ret;
00106 }
00107 };
00108
00109 class FreeToAirOnly : public CheckBoxSetting, public TransientStorage
00110 {
00111 public:
00112 FreeToAirOnly() : CheckBoxSetting(this)
00113 {
00114 setValue(true);
00115 setLabel(QObject::tr("Unencrypted Only"));
00116 setHelpText(
00117 QObject::tr(
00118 "If set, only non-encrypted channels will be "
00119 "added during the scan."));
00120 };
00121 };
00122
00123 class TrustEncSISetting : public CheckBoxSetting, public TransientStorage
00124 {
00125 public:
00126 TrustEncSISetting() : CheckBoxSetting(this)
00127 {
00128 setLabel(QObject::tr("Test Decryptability"));
00129 setHelpText(
00130 QObject::tr("Test all channels to see if they can be decrypted "
00131 "with installed CAM/smartcard. Sometimes the encrypted "
00132 "flag is set spuriously. Attention: Enabling this "
00133 "option increases the scan time for each encrypted "
00134 "channel by a couple of seconds."));
00135 }
00136 };
00137
00138 class ScanFrequencykHz: public LineEditSetting, public TransientStorage
00139 {
00140 public:
00141 ScanFrequencykHz() : LineEditSetting(this)
00142 {
00143 setLabel(QObject::tr("Frequency"));
00144 setHelpText(QObject::tr("Frequency (Option has no default)\n"
00145 "The frequency for this channel in kHz."));
00146 };
00147 };
00148
00149 class ScanFrequency: public LineEditSetting, public TransientStorage
00150 {
00151 public:
00152 ScanFrequency() : LineEditSetting(this)
00153 {
00154 setLabel(QObject::tr("Frequency"));
00155 setHelpText(QObject::tr("Frequency (Option has no default)\n"
00156 "The frequency for this channel in Hz."));
00157 };
00158 };
00159
00160 class ScanSymbolRateDVBS: public ComboBoxSetting, public TransientStorage
00161 {
00162 public:
00163 ScanSymbolRateDVBS() : ComboBoxSetting(this, true)
00164 {
00165 setLabel(QObject::tr("Symbol Rate"));
00166 setHelpText(
00167 QObject::tr(
00168 "Symbol Rate (symbols/second).\n"
00169 "Most DVB-S transponders transmit at 27.5 "
00170 "million symbols per second."));
00171 addSelection("3333000");
00172 addSelection("22000000");
00173 addSelection("27500000", "27500000", true);
00174 addSelection("28000000");
00175 addSelection("28500000");
00176 addSelection("29900000");
00177 }
00178 };
00179
00180 class ScanSymbolRateDVBC: public ComboBoxSetting, public TransientStorage
00181 {
00182 public:
00183 ScanSymbolRateDVBC() : ComboBoxSetting(this, true)
00184 {
00185 setLabel(QObject::tr("Symbol Rate"));
00186 setHelpText(
00187 QObject::tr(
00188 "Symbol Rate (symbols/second).\n"
00189 "Most DVB-C transports transmit at 6.9 or 6.875 "
00190 "million symbols per second."));
00191 addSelection("3450000");
00192 addSelection("5000000");
00193 addSelection("5900000");
00194 addSelection("6875000");
00195 addSelection("6900000", "6900000", true);
00196 addSelection("6950000");
00197 }
00198 };
00199
00200 class ScanPolarity: public ComboBoxSetting, public TransientStorage
00201 {
00202 public:
00203 ScanPolarity() : ComboBoxSetting(this)
00204 {
00205 setLabel(QObject::tr("Polarity"));
00206 setHelpText(QObject::tr("Polarity (Option has no default)"));
00207 addSelection(QObject::tr("Horizontal"), "h",true);
00208 addSelection(QObject::tr("Vertical"), "v");
00209 addSelection(QObject::tr("Right Circular"), "r");
00210 addSelection(QObject::tr("Left Circular"), "l");
00211 };
00212 };
00213
00214 class ScanInversion: public ComboBoxSetting, public TransientStorage
00215 {
00216 public:
00217 ScanInversion() : ComboBoxSetting(this)
00218 {
00219 setLabel(QObject::tr("Inversion"));
00220 setHelpText(QObject::tr(
00221 "Inversion (Default: Auto):\n"
00222 "Most cards can autodetect this now, so "
00223 "leave it at Auto unless it won't work."));
00224 addSelection(QObject::tr("Auto"), "a",true);
00225 addSelection(QObject::tr("On"), "1");
00226 addSelection(QObject::tr("Off"), "0");
00227 };
00228 };
00229
00230 class ScanBandwidth: public ComboBoxSetting, public TransientStorage
00231 {
00232 public:
00233 ScanBandwidth() : ComboBoxSetting(this)
00234 {
00235 setLabel(QObject::tr("Bandwidth"));
00236 setHelpText(QObject::tr("Bandwidth (Default: Auto)\n"));
00237 addSelection(QObject::tr("Auto"),"a",true);
00238 addSelection(QObject::tr("6 MHz"),"6");
00239 addSelection(QObject::tr("7 MHz"),"7");
00240 addSelection(QObject::tr("8 MHz"),"8");
00241 };
00242 };
00243
00244 class ScanFecSetting: public ComboBoxSetting
00245 {
00246 public:
00247 ScanFecSetting(Storage *_storage) : ComboBoxSetting(_storage)
00248 {
00249 addSelection(QObject::tr("Auto"),"auto",true);
00250 addSelection(QObject::tr("None"),"none");
00251 addSelection("1/2");
00252 addSelection("2/3");
00253 addSelection("3/4");
00254 addSelection("4/5");
00255 addSelection("5/6");
00256 addSelection("6/7");
00257 addSelection("7/8");
00258 addSelection("8/9");
00259 addSelection("3/5");
00260 addSelection("9/10");
00261 }
00262 };
00263
00264 class ScanFec: public ScanFecSetting, public TransientStorage
00265 {
00266 public:
00267 ScanFec() : ScanFecSetting(this)
00268 {
00269 setLabel(QObject::tr("FEC"));
00270 setHelpText(QObject::tr(
00271 "Forward Error Correction (Default: Auto)"));
00272 }
00273 };
00274
00275 class ScanCodeRateLP: public ScanFecSetting, public TransientStorage
00276 {
00277 public:
00278 ScanCodeRateLP() : ScanFecSetting(this)
00279 {
00280 setLabel(QObject::tr("LP Coderate"));
00281 setHelpText(QObject::tr("Low Priority Code Rate (Default: Auto)"));
00282 }
00283 };
00284
00285 class ScanCodeRateHP: public ScanFecSetting, public TransientStorage
00286 {
00287 public:
00288 ScanCodeRateHP() : ScanFecSetting(this)
00289 {
00290 setLabel(QObject::tr("HP Coderate"));
00291 setHelpText(QObject::tr("High Priority Code Rate (Default: Auto)"));
00292 };
00293 };
00294
00295 class ScanGuardInterval: public ComboBoxSetting, public TransientStorage
00296 {
00297 public:
00298 ScanGuardInterval() : ComboBoxSetting(this)
00299 {
00300 setLabel(QObject::tr("Guard Interval"));
00301 setHelpText(QObject::tr("Guard Interval (Default: Auto)"));
00302 addSelection(QObject::tr("Auto"),"auto");
00303 addSelection("1/4");
00304 addSelection("1/8");
00305 addSelection("1/16");
00306 addSelection("1/32");
00307 };
00308 };
00309
00310 class ScanTransmissionMode: public ComboBoxSetting, public TransientStorage
00311 {
00312 public:
00313 ScanTransmissionMode() : ComboBoxSetting(this)
00314 {
00315 setLabel(QObject::tr("Trans. Mode"));
00316 setHelpText(QObject::tr("Transmission Mode (Default: Auto)"));
00317 addSelection(QObject::tr("Auto"),"a");
00318 addSelection("2K","2");
00319 addSelection("8K","8");
00320 };
00321 };
00322
00323 class ScanHierarchy: public ComboBoxSetting, public TransientStorage
00324 {
00325 public:
00326 ScanHierarchy() : ComboBoxSetting(this)
00327 {
00328 setLabel(QObject::tr("Hierarchy"));
00329 setHelpText(QObject::tr("Hierarchy (Default: Auto)"));
00330 addSelection(QObject::tr("Auto"),"a");
00331 addSelection(QObject::tr("None"), "n");
00332 addSelection("1");
00333 addSelection("2");
00334 addSelection("4");
00335 };
00336 };
00337
00338 class ScanModSys: public ComboBoxSetting, public TransientStorage
00339 {
00340 public:
00341 ScanModSys() : ComboBoxSetting(this)
00342 {
00343 setLabel(QObject::tr("Mod Sys"));
00344 setHelpText(QObject::tr("Modulation system (Default: DVB-S)"));
00345 addSelection("DVB-S");
00346 addSelection("DVB-S2");
00347 };
00348 };
00349
00350 class ScanRollOff: public ComboBoxSetting, public TransientStorage
00351 {
00352 public:
00353 ScanRollOff() : ComboBoxSetting(this)
00354 {
00355 setLabel(QObject::tr("Roll-off"));
00356 setHelpText(QObject::tr("Roll-off factor (Default: 0.35)"));
00357 addSelection("0.35");
00358 addSelection("0.20");
00359 addSelection("0.25");
00360 addSelection(QObject::tr("Auto"),"auto");
00361 };
00362 };
00363
00364 class PaneError : public HorizontalConfigurationGroup
00365 {
00366 public:
00367 PaneError(const QString &error) :
00368 HorizontalConfigurationGroup(false, false, true, false)
00369 {
00370 TransLabelSetting* label = new TransLabelSetting();
00371 label->setValue(error);
00372 addChild(label);
00373 }
00374 };
00375
00376 class BlankSetting: public TransLabelSetting
00377 {
00378 public:
00379 BlankSetting() : TransLabelSetting()
00380 {
00381 setLabel("");
00382 }
00383 };
00384
00385 #endif // _MISC_SETTINGS_H_