Go to the documentation of this file.
60 if (mod.endsWith(
"vsb"))
61 return mod.left(mod.length() - 3) +
"-VSB";
63 if (mod.startsWith(
"qam_"))
64 return "QAM-" + mod.mid(4, mod.length());
67 return QObject::tr(
"Analog");
74 std::vector<uint> cardids;
79 "SELECT capturecard.cardid "
81 "WHERE capturecard.sourceid = :SOURCEID AND "
82 " capturecard.parentid = 0 AND "
83 " capturecard.hostname = :HOSTNAME");
93 cardids.push_back(query.
value(0).toUInt());
98 "Sorry, the Transport Editor can only edit transports "
99 "of a video source that is connected to a capture card."));
104 std::vector<CardUtil::INPUT_TYPES> cardtypes;
106 for (
uint cardid : cardids)
110 if (cardtype ==
"DVB")
127 #endif // USING_SATIP
135 "Failed to probe a capture card connected to this "
136 "transport's video source. Please make sure the "
137 "backend is not running."));
142 cardtypes.push_back(nType);
146 if (cardtypes.empty())
151 for (
size_t i = 1; i < cardtypes.size(); i++)
171 "The capture cards connected to this transport's video source "
172 "are incompatible. Please create separate video sources "
173 "per capture card type."));
180 for (
size_t i = 1; i < cardtypes.size(); i++)
189 retval = cardtypes[i];
198 for (
auto *setting : qAsConst(
m_list))
254 "SELECT mplexid, modulation, frequency, "
255 " symbolrate, networkid, transportid, "
256 " constellation, mod_sys "
257 "FROM dtv_multiplex, videosource "
258 "WHERE dtv_multiplex.sourceid = :SOURCEID AND "
259 " dtv_multiplex.sourceid = videosource.sourceid "
260 "ORDER by networkid, transportid, frequency, mplexid");
274 query.
value(6).toString() : query.
value(1).toString();
277 while (mod.length() < 7)
280 QString rate = query.
value(3).toString();
281 rate = (rate ==
"0") ?
"" : QString(
"rate %1").arg(rate);
283 QString netid = query.
value(4).toUInt() ?
284 QString(
"netid %1").arg(query.
value(4).toUInt(), 5) :
"";
286 QString tid = query.
value(5).toUInt() ?
287 QString(
"tid %1").arg(query.
value(5).toUInt(), 5) :
"";
298 type = QString(
"(%1)").arg(query.
value(7).toString());
306 QString txt = QString(
"%1 %2 %3 %4 %5 %6 %7")
307 .arg(mod, query.
value(2).toString(),
308 hz, rate, netid, tid,
type);
313 this, [transport,
this] () {
Delete(transport); });
315 this, [transport,
this] () {
Menu(transport); });
317 m_list.push_back(transport);
330 m_list.push_back(transport);
341 tr(
"Are you sure you would like to delete this transport?"),
343 [transport,
this](
bool result)
351 query.
prepare(
"DELETE FROM dtv_multiplex WHERE mplexid = :MPLEXID");
357 query.
prepare(
"UPDATE channel SET deleted = NOW() "
358 "WHERE deleted IS NULL AND mplexid = :MPLEXID");
365 m_list.removeAll(transport);
375 auto *
menu =
new MythMenu(tr(
"Transport Menu"),
this,
"transportmenu");
376 menu->AddItem(tr(
"Delete..."), [transport,
this] () {
Delete(transport); });
381 menuPopup->SetReturnEvent(
this,
"transportmenu");
383 if (menuPopup->Create())
445 bool is_atsc_country) :
448 setLabel(QObject::tr(
"Digital TV Standard"));
450 "Guiding standard to use for making sense of the "
451 "data streams after they have been demodulated, "
452 "error corrected and demultiplexed."));
472 QString hz = (in_kHz) ?
"kHz" :
"Hz";
473 setLabel(QObject::tr(
"Frequency") +
" (" + hz +
")");
475 "Frequency (Option has no default).\n"
476 "The frequency for this transport (multiplex) in") +
" " + hz +
".");
486 setLabel(QObject::tr(
"Symbol Rate"));
489 "Symbol Rate (symbols/sec).\n"
490 "Most DVB-S transponders transmit at 27.5 "
491 "million symbols per second."));
511 setLabel(QObject::tr(
"Symbol Rate"));
514 "Symbol Rate (symbols/second).\n"
515 "Most DVB-C transports transmit at 6.9 or 6.875 "
516 "million symbols per second."));
533 setHelpText(QObject::tr(
"Polarity (Option has no default)"));
551 "constellation" :
"modulation")
553 setLabel(QObject::tr(
"Modulation"));
554 setHelpText(QObject::tr(
"Modulation, aka Constellation"));
604 setHelpText(QObject::tr(
"Inversion (Default: Auto):\n"
605 "Most cards can autodetect this now, so leave it at Auto"
606 " unless it won't work."));
620 setHelpText(QObject::tr(
"Bandwidth (Default: Auto)"));
635 setHelpText(QObject::tr(
"Bandwidth for DVB-T2 (Default: Auto)"));
676 setHelpText(QObject::tr(
"Forward Error Correction (Default: Auto)"));
688 setLabel(QObject::tr(
"LP Coderate"));
689 setHelpText(QObject::tr(
"Low Priority Code Rate (Default: Auto)"));
701 setLabel(QObject::tr(
"HP Coderate"));
702 setHelpText(QObject::tr(
"High Priority Code Rate (Default: Auto)"));
712 setLabel(QObject::tr(
"Guard Interval"));
713 setHelpText(QObject::tr(
"Guard Interval for DVB-T (Default: Auto)"));
728 setLabel(QObject::tr(
"Guard Interval"));
729 setHelpText(QObject::tr(
"Guard Interval for DVB-T2 (Default: Auto)"));
747 setLabel(QObject::tr(
"Transmission Mode"));
748 setHelpText(QObject::tr(
"Transmission Mode for DVB-T (Default: Auto)"));
764 setLabel(QObject::tr(
"Transmission Mode"));
765 setHelpText(QObject::tr(
"Transmission Mode for DVB-T2 (Default: Auto)"));
783 setHelpText(QObject::tr(
"Hierarchy (Default: Auto)"));
798 setLabel(QObject::tr(
"Modulation System"));
799 setHelpText(QObject::tr(
"Modulation System (Default: DVB-T2)"));
811 setLabel(QObject::tr(
"Modulation System"));
812 setHelpText(QObject::tr(
"Modulation System (Default: DVB-S2)"));
824 setLabel(QObject::tr(
"Modulation System"));
825 setHelpText(QObject::tr(
"Modulation System (Default: DVB-C/A)"));
839 setHelpText(QObject::tr(
"Roll-off factor (Default: 0.35)"));
938 for (
int i = 0; i < actions.size() && !handled; i++)
940 QString
action = actions[i];
947 else if (
action ==
"MENU")
static bool HDHRdoesDVBC(const QString &device)
If the device is valid, check if the model does DVB-C.
void SetSourceID(uint sourceid)
DVBInversion(const MultiplexID *id)
QMap< QString, QVariant > MSqlBindings
typedef for a map of string -> string bindings for generic queries.
bool isActive(void) const
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
QSqlQuery wrapper that fetches a DB connection from the connection pool.
virtual void setName(const QString &name)
SignalPolarity(const MultiplexID *id)
virtual void setValue(const QString &newValue)
QString GetColumnName(void) const
RollOff(const MultiplexID *id)
DVBCModulationSystem(const MultiplexID *id)
static enum INPUT_TYPES toInputType(const QString &name)
DVBTModulationSystem(const MultiplexID *id)
DVBForwardErrorCorrectionSelector(Storage *_storage)
QString GetWhereClause(MSqlBindings &bindings) const override
TransportSetting(const QString &label, uint mplexid, uint sourceid, uint cardtype)
QVariant value(int i) const
QString GetColumnName(void) const
QVector< StandardSetting * > m_list
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
virtual QString GetDBValue(void) const =0
TransportListEditor(uint initial_sourceid)
Screen in which all other widgets are contained and rendered.
DVBTBandwidth(const MultiplexID *id)
void Delete(TransportSetting *transport)
void resultEdit(DialogCompletionEvent *) override
VERBOSE_PREAMBLE Most true
static QString ProbeSubTypeName(uint inputid)
DVBSSymbolRate(const MultiplexID *id)
VideoSourceShow * m_videosource
Modulation(const MultiplexID *id, uint nType)
void settingsChanged(StandardSetting *selectedSetting=nullptr)
virtual void addChild(StandardSetting *child)
void edit(MythScreenType *) override
DVBTCoderateHP(const MultiplexID *id)
bool TranslateKeyPress(const QString &Context, QKeyEvent *Event, QStringList &Actions, bool AllowJumps=true)
Get a list of actions for a keypress in the given context.
Basic menu dialog, message and a list of options.
static MythThemedMenu * menu
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
static void DBError(const QString &where, const MSqlQuery &query)
static CardUtil::INPUT_TYPES get_cardtype(uint sourceid)
DVBCSymbolRate(const MultiplexID *id)
const MultiplexID * m_mplexId
virtual void setHelpText(const QString &str)
static CardUtil::INPUT_TYPES toDVBInputType(const QString &deviceid)
DVBSModulationSystem(const MultiplexID *id)
DVBT2TransmissionMode(const MultiplexID *id)
Collection of helper utilities for input DB use.
DVBTTransmissionMode(const MultiplexID *id)
virtual QString getValue(void) const
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
DVBTGuardInterval(const MultiplexID *id)
virtual void setLabel(QString str)
DVBT2GuardInterval(const MultiplexID *id)
static QString GetRawInputType(uint inputid)
void valueChanged(const QString &newValue)
void addSelection(const QString &label, QString value=QString(), bool select=false)
void Menu(TransportSetting *transport)
DTVStandard(const MultiplexID *id, bool is_dvb_country, bool is_atsc_country)
VideoSourceID(const MultiplexID *id, uint _sourceid)
virtual void removeChild(StandardSetting *child)
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
Event dispatched from MythUI modal dialogs to a listening class containing a result of some form.
Frequency(const MultiplexID *id, bool in_kHz=false)
static bool HDHRdoesDVB(const QString &device)
If the device is valid, check if the model does DVB.
MythMainWindow * GetMythMainWindow(void)
MythScreenStack * GetStack(const QString &Stackname)
void setVisible(bool visible)
QString GetHostName(void)
DVBTHierarchy(const MultiplexID *id)
bool keyPressEvent(QKeyEvent *event) override
static uint GetSourceID(const QString &name)
virtual void AddScreen(MythScreenType *screen, bool allowFade=true)
MythConfirmationDialog * ShowOkPopup(const QString &message, bool showCancel)
Non-blocking version of MythPopupBox::showOkPopup()
MuxDBStorage(StorageUser *_setting, const MultiplexID *_id, const QString &_name)
DVBTCoderateLP(const MultiplexID *id)
DVBT2Bandwidth(const MultiplexID *id)
static QString GetVideoDevice(uint inputid)
DVBForwardErrorCorrection(const MultiplexID *id)
static QString pp_modulation(const QString &mod)
INPUT_TYPES
all the different inputs
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
QString GetSetClause(MSqlBindings &bindings) const override