Ticket #13046: 20170702_channelscan.patch

File 20170702_channelscan.patch, 12.3 KB (added by Peter Bennett, 2 years ago)

Channel scan improvement patch.

  • mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp

    diff --git a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.cpp
    index b41210b..428cf1b 100644
    a b  
    2020#include "panedvbutilsimport.h"
    2121#include "paneexistingscanimport.h"
    2222
    23 ScanWizardConfig::ScanWizardConfig(
    24     ScanWizard *_parent,
     23void ScanWizard::SetupConfig(
    2524    uint    default_sourceid,  uint default_cardid,
    26     QString default_inputname) :
    27     videoSource(new VideoSourceSelector(
    28                     default_sourceid, CardUtil::GetScanableInputTypes(), false)),
    29     input(new InputSelector(default_cardid, default_inputname)),
    30     scanType(new ScanTypeSetting()),
    31     scanConfig(new ScanOptionalConfig(scanType)),
    32     services(new DesiredServices()),
    33     ftaOnly(new FreeToAirOnly()),
    34     trustEncSI(new TrustEncSISetting())
     25    QString default_inputname)
    3526{
    36     setLabel(tr("Scan Configuration"));
     27    videoSource = new VideoSourceSelector(
     28                    default_sourceid, CardUtil::GetScanableInputTypes(), false);
     29    input = new InputSelector(default_cardid, default_inputname);
     30    scanType = new ScanTypeSetting(),
     31    scanConfig = new ScanOptionalConfig(scanType);
     32    services = new DesiredServices();
     33    ftaOnly = new FreeToAirOnly();
     34    trustEncSI = new TrustEncSISetting();
    3735
    3836    addChild(services);
    3937    addChild(ftaOnly);
    ScanWizardConfig::ScanWizardConfig( 
    5452            scanType,    SLOT(  SetInput(    const QString&)));
    5553
    5654    connect(input,       SIGNAL(valueChanged(const QString&)),
    57             _parent,     SLOT(  SetInput(    const QString&)));
     55            this,     SLOT(  SetInput(    const QString&)));
    5856}
    5957
    60 uint ScanWizardConfig::GetSourceID(void) const
     58uint ScanWizard::GetSourceID(void) const
    6159{
    6260    return videoSource->getValue().toUInt();
    6361}
    6462
    65 ServiceRequirements ScanWizardConfig::GetServiceRequirements(void) const
     63ServiceRequirements ScanWizard::GetServiceRequirements(void) const
    6664{
    6765    return services->GetServiceRequirements();
    6866}
    6967
    70 bool ScanWizardConfig::DoFreeToAirOnly(void) const
     68bool ScanWizard::DoFreeToAirOnly(void) const
    7169{
    7270    return ftaOnly->getValue().toInt();
    7371}
    7472
    75 bool ScanWizardConfig::DoTestDecryption(void) const
     73bool ScanWizard::DoTestDecryption(void) const
    7674{
    7775    return trustEncSI->getValue().toInt();
    7876}
  • mythtv/libs/libmythtv/channelscan/scanwizardconfig.h

    diff --git a/mythtv/libs/libmythtv/channelscan/scanwizardconfig.h b/mythtv/libs/libmythtv/channelscan/scanwizardconfig.h
    index 1fb4d04..996f043 100644
    a b class ScanOptionalConfig : public GroupSetting 
    146146    PaneExistingScanImport *paneExistingScanImport;
    147147};
    148148
    149 class ScanWizardConfig: public GroupSetting
    150 {
    151     Q_OBJECT
    152 
    153   public:
    154     ScanWizardConfig(ScanWizard *_parent,
    155                      uint        default_sourceid,
    156                      uint        default_cardid,
    157                      QString     default_inputname);
    158 
    159     uint    GetSourceID(void)     const;
    160     uint    GetScanID(void)       const { return scanConfig->GetScanID();     }
    161     QString GetModulation(void)   const { return scanConfig->GetModulation(); }
    162     int     GetScanType(void)     const { return scanType->getValue().toInt();}
    163     uint    GetCardID(void)       const { return input->GetCardID();          }
    164     QString GetInputName(void)    const { return input->GetInputName();       }
    165     QString GetFilename(void)     const { return scanConfig->GetFilename();   }
    166     uint    GetMultiplex(void)    const { return scanConfig->GetMultiplex();  }
    167     bool    GetFrequencyTableRange(QString &start, QString &end) const
    168         { return scanConfig->GetFrequencyTableRange(start, end); }
    169     QString GetFrequencyStandard(void) const
    170         { return scanConfig->GetFrequencyStandard(); }
    171     QString GetFrequencyTable(void) const
    172         { return scanConfig->GetFrequencyTable(); }
    173     QMap<QString,QString> GetStartChan(void) const
    174         { return scanConfig->GetStartChan(); }
    175     ServiceRequirements GetServiceRequirements(void) const;
    176     bool    DoIgnoreSignalTimeout(void) const
    177         { return scanConfig->DoIgnoreSignalTimeout(); }
    178     bool    DoFollowNIT(void) const
    179         { return scanConfig->DoFollowNIT(); }
    180     bool    DoFreeToAirOnly(void)  const;
    181     bool    DoTestDecryption(void) const;
    182 
    183   protected:
    184     VideoSourceSelector *videoSource;
    185     InputSelector       *input;
    186     ScanTypeSetting     *scanType;
    187     ScanOptionalConfig  *scanConfig;
    188     DesiredServices     *services;
    189     FreeToAirOnly       *ftaOnly;
    190     TrustEncSISetting   *trustEncSI;
    191 };
    192 
    193149#endif // _SCAN_WIZARD_CONFIG_H_
  • mythtv/libs/libmythtv/scanwizard.cpp

    diff --git a/mythtv/libs/libmythtv/scanwizard.cpp b/mythtv/libs/libmythtv/scanwizard.cpp
    index 0b7f62e..3ede79b 100644
    a b ScanWizard::ScanWizard(uint default_sourceid, 
    4646                       QString default_inputname) :
    4747    lastHWCardID(0),
    4848    lastHWCardType(CardUtil::ERROR_PROBE),
    49     configPane(new ScanWizardConfig(
    50                    this, default_sourceid, default_cardid, default_inputname)),
    5149    scannerPane(new ChannelScannerGUI())
    5250{
    53     addChild(configPane);
    54 
     51    SetupConfig(default_sourceid, default_cardid, default_inputname);
    5552    ButtonStandardSetting *scanButton = new ButtonStandardSetting(tr("Scan"));
    5653    connect(scanButton, SIGNAL(clicked()), SLOT(Scan()));
    5754    addChild(scanButton);
    void ScanWizard::Scan() 
    6259    QMap<QString,QString> start_chan;
    6360    DTVTunerType parse_type = DTVTunerType::kTunerTypeUnknown;
    6461
    65     uint    cardid    = configPane->GetCardID();
    66     QString inputname = configPane->GetInputName();
    67     uint    sourceid  = configPane->GetSourceID();
    68     int     scantype  = configPane->GetScanType();
     62    uint    cardid    = GetCardID();
     63    QString inputname = GetInputName();
     64    uint    sourceid  = GetSourceID();
     65    int     scantype  = GetScanType();
    6966    bool    do_scan   = true;
    7067
    7168    LOG(VB_CHANSCAN, LOG_INFO, LOC + "Scan(): " +
    void ScanWizard::Scan() 
    7572    if (scantype == ScanTypeSetting::DVBUtilsImport)
    7673    {
    7774        scannerPane->ImportDVBUtils(sourceid, lastHWCardType,
    78                                     configPane->GetFilename());
     75                                    GetFilename());
    7976    }
    8077    else if (scantype == ScanTypeSetting::NITAddScan_DVBT)
    8178    {
    82         start_chan = configPane->GetStartChan();
     79        start_chan = GetStartChan();
    8380        parse_type = DTVTunerType::kTunerTypeDVBT;
    8481    }
    8582    else if (scantype == ScanTypeSetting::NITAddScan_DVBT2)
    8683    {
    87         start_chan = configPane->GetStartChan();
     84        start_chan = GetStartChan();
    8885        parse_type = DTVTunerType::kTunerTypeDVBT2;
    8986    }
    9087    else if (scantype == ScanTypeSetting::NITAddScan_DVBS)
    9188    {
    92         start_chan = configPane->GetStartChan();
     89        start_chan = GetStartChan();
    9390        parse_type = DTVTunerType::kTunerTypeDVBS1;
    9491    }
    9592    else if (scantype == ScanTypeSetting::NITAddScan_DVBS2)
    9693    {
    97         start_chan = configPane->GetStartChan();
     94        start_chan = GetStartChan();
    9895        parse_type = DTVTunerType::kTunerTypeDVBS2;
    9996    }
    10097    else if (scantype == ScanTypeSetting::NITAddScan_DVBC)
    10198    {
    102         start_chan = configPane->GetStartChan();
     99        start_chan = GetStartChan();
    103100        parse_type = DTVTunerType::kTunerTypeDVBC;
    104101    }
    105102    else if (scantype == ScanTypeSetting::IPTVImport)
    void ScanWizard::Scan() 
    111108    {
    112109        do_scan = false;
    113110        scannerPane->ImportVBox(cardid, inputname, sourceid,
    114                                 configPane->DoFreeToAirOnly(),
    115                                 configPane->GetServiceRequirements());
     111                                DoFreeToAirOnly(),
     112                                GetServiceRequirements());
    116113    }
    117114    else if (scantype == ScanTypeSetting::IPTVImportMPTS)
    118115    {
    void ScanWizard::Scan() 
    132129    else if (scantype == ScanTypeSetting::ExistingScanImport)
    133130    {
    134131        do_scan = false;
    135         uint scanid = configPane->GetScanID();
     132        uint scanid = GetScanID();
    136133        ScanDTVTransportList transports = LoadScan(scanid);
    137134        ChannelImporter ci(true, true, true, true, false,
    138                            configPane->DoFreeToAirOnly(),
    139                            configPane->GetServiceRequirements());
     135                           DoFreeToAirOnly(),
     136                           GetServiceRequirements());
    140137        ci.Process(transports);
    141138    }
    142139    else
    void ScanWizard::Scan() 
    171168    if (do_scan)
    172169    {
    173170        QString table_start, table_end;
    174         configPane->GetFrequencyTableRange(table_start, table_end);
     171        GetFrequencyTableRange(table_start, table_end);
    175172
    176173        scannerPane->Scan(
    177             configPane->GetScanType(),            configPane->GetCardID(),
    178             configPane->GetInputName(),           configPane->GetSourceID(),
    179             configPane->DoIgnoreSignalTimeout(),  configPane->DoFollowNIT(),
    180             configPane->DoTestDecryption(),       configPane->DoFreeToAirOnly(),
    181             configPane->GetServiceRequirements(),
     174            GetScanType(),            GetCardID(),
     175            GetInputName(),           GetSourceID(),
     176            DoIgnoreSignalTimeout(),  DoFollowNIT(),
     177            DoTestDecryption(),       DoFreeToAirOnly(),
     178            GetServiceRequirements(),
    182179            // stuff needed for particular scans
    183             configPane->GetMultiplex(),         start_chan,
    184             configPane->GetFrequencyStandard(), configPane->GetModulation(),
    185             configPane->GetFrequencyTable(),
     180            GetMultiplex(),         start_chan,
     181            GetFrequencyStandard(), GetModulation(),
     182            GetFrequencyTable(),
    186183            table_start, table_end);
    187184    }
    188185}
  • mythtv/libs/libmythtv/scanwizard.h

    diff --git a/mythtv/libs/libmythtv/scanwizard.h b/mythtv/libs/libmythtv/scanwizard.h
    index e5d42bd..fc7319b 100644
    a b  
    3838#include "mythwizard.h"
    3939#include "settings.h"
    4040#include "standardsettings.h"
     41#include "scanwizardconfig.h"
    4142
    42 class ScanWizardConfig;
    4343class ChannelScannerGUI;
    4444
    4545class MTV_PUBLIC ScanWizard : public GroupSetting
    class MTV_PUBLIC ScanWizard : public GroupSetting 
    6060  protected:
    6161    uint               lastHWCardID;
    6262    uint               lastHWCardType;
    63     ScanWizardConfig  *configPane;
    6463    ChannelScannerGUI *scannerPane;
     64
     65  // The following are moved from deleted class ScanWizardConfig
     66  public:
     67    void SetupConfig(uint default_sourceid, uint default_cardid,
     68        QString default_inputname);
     69
     70    uint    GetSourceID(void)     const;
     71    uint    GetScanID(void)       const { return scanConfig->GetScanID(); }
     72    QString GetModulation(void)   const { return scanConfig->GetModulation(); }
     73    int     GetScanType(void)     const { return scanType->getValue().toInt();}
     74    uint    GetCardID(void)       const { return input->GetCardID(); }
     75    QString GetInputName(void)    const { return input->GetInputName(); }
     76    QString GetFilename(void)     const { return scanConfig->GetFilename();   }
     77    uint    GetMultiplex(void)    const { return scanConfig->GetMultiplex();  }
     78    bool    GetFrequencyTableRange(QString &start, QString &end) const
     79        { return scanConfig->GetFrequencyTableRange(start, end); }
     80    QString GetFrequencyStandard(void) const
     81        { return scanConfig->GetFrequencyStandard(); }
     82    QString GetFrequencyTable(void) const
     83        { return scanConfig->GetFrequencyTable(); }
     84    QMap<QString,QString> GetStartChan(void) const
     85        { return scanConfig->GetStartChan(); }
     86    ServiceRequirements GetServiceRequirements(void) const;
     87    bool    DoIgnoreSignalTimeout(void) const
     88        { return scanConfig->DoIgnoreSignalTimeout(); }
     89    bool    DoFollowNIT(void) const
     90        { return scanConfig->DoFollowNIT(); }
     91    bool    DoFreeToAirOnly(void)  const;
     92    bool    DoTestDecryption(void) const;
     93
     94  protected:
     95    VideoSourceSelector *videoSource;
     96    InputSelector       *input;
     97    ScanTypeSetting     *scanType;
     98    ScanOptionalConfig  *scanConfig;
     99    DesiredServices     *services;
     100    FreeToAirOnly       *ftaOnly;
     101    TrustEncSISetting   *trustEncSI;
     102// End of members moved from ScanWizardConfig
    65103};
    66104
    67105#endif // SCANWIZARD_H