Skip to content

Commit

Permalink
ExternRecChannelScanner: Add support for ATSC channels
Browse files Browse the repository at this point in the history
If an ExternalRecorder returns channums of the form digit(s)/non-digit/digit(s) (e.g. 5-1, 5.1, 5_1) it will be interpreted as ATSC major and minor.
  • Loading branch information
jpoet committed Sep 10, 2023
1 parent 00b1f00 commit eea1042
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions mythtv/libs/libmythtv/channelscan/externrecscanner.cpp
Expand Up @@ -122,6 +122,7 @@ void ExternRecChannelScanner::run(void)
QString callsign;
QString xmltvid;
QString icon;
int atsc_major, atsc_minor;
int cnt = 0;

if (!fetch.FirstChannel(channum, name, callsign, xmltvid, icon))
Expand All @@ -140,6 +141,19 @@ void ExternRecChannelScanner::run(void)
for (;;)
{
QString msg = tr("Channel #%1 : %2").arg(channum, name);
QStringList digits = channum.split(QRegularExpression("\\D+"));

if (digits.size() > 1)
{
atsc_major = digits.at(0).toInt();
atsc_minor = digits.at(1).toInt();
LOG(VB_CHANNEL, LOG_DEBUG, LOC +
QString("ATSC: %1.%2").arg(atsc_major).arg(atsc_minor));
}
else
{
atsc_major = atsc_minor = 0;
}

LOG(VB_CHANNEL, LOG_INFO, QString("Handling channel %1 %2")
.arg(channum, name));
Expand All @@ -156,7 +170,7 @@ void ExternRecChannelScanner::run(void)

chanid = ChannelUtil::CreateChanID(m_sourceId, channum);
ChannelUtil::CreateChannel(0, m_sourceId, chanid, callsign, name,
channum, 1, 0, 0,
channum, 1, atsc_major, atsc_minor,
false, kChannelVisible, QString(),
icon, "Default", xmltvid);
}
Expand All @@ -166,7 +180,7 @@ void ExternRecChannelScanner::run(void)
m_scanMonitor->ScanAppendTextToLog(tr("Updating %1").arg(msg));

ChannelUtil::UpdateChannel(0, m_sourceId, chanid, callsign, name,
channum, 1, 0, 0,
channum, 1, atsc_major, atsc_minor,
false, kChannelVisible, QString(),
icon, "Default", xmltvid);
}
Expand Down

0 comments on commit eea1042

Please sign in to comment.