Ticket #2802: mythtv-scan-rotor.patch
File mythtv-scan-rotor.patch, 5.7 KB (added by , 17 years ago) |
---|
-
libs/libmythtv/dvbsignalmonitor.h
26 26 bool UpdateFiltersFromStreamData(void); 27 27 28 28 virtual void SetRotorTarget(float target); 29 bool isRotorMoving(void) const; 29 30 30 31 public slots: 31 32 void deleteLater(void); -
libs/libmythtv/scanwizardhelpers.h
66 66 protected: 67 67 ScanSignalMeter *ss; 68 68 ScanSignalMeter *sn; 69 ScanSignalMeter *pos; 69 70 ScanSignalMeter *progressBar; 70 71 71 72 TransLabelSetting *sl; … … 77 78 void exec(ScanWizardScanner *parent); 78 79 void signalToNoise(int value); 79 80 void signalStrength(int value); 81 void rotorPosition(int value); 80 82 void dvbLock(int value); 81 83 void status(const QString& value); 82 84 … … 96 98 DVBSNR, 97 99 DVBSignalStrength, 98 100 DVBLock, 101 DVBRotorPosition, 99 102 }; 100 103 101 104 ScannerEvent(TYPE t) : QCustomEvent(t + QEvent::User) { ; } -
libs/libmythtv/scanwizardscanner.cpp
172 172 case ScannerEvent::DVBSignalStrength: 173 173 popupProgress->signalStrength(scanEvent->intValue()); 174 174 break; 175 case ScannerEvent::DVBRotorPosition: 176 popupProgress->rotorPosition(scanEvent->intValue()); 177 break; 175 178 } 176 179 } 177 180 … … 229 232 dvbSignalStrength(val.GetNormalizedValue(0, 65535)); 230 233 } 231 234 235 void ScanWizardScanner::dvbRotorPosition(const SignalMonitorValue &val) 236 { 237 dvbRotorPosition(val.GetNormalizedValue(0, 65535)); 238 } 239 232 240 void ScanWizardScanner::dvbLock(int locked) 233 241 { 234 242 ScannerEvent* e = new ScannerEvent(ScannerEvent::DVBLock); … … 250 258 QApplication::postEvent(this, e); 251 259 } 252 260 261 void ScanWizardScanner::dvbRotorPosition(int i) 262 { 263 ScannerEvent* e = new ScannerEvent(ScannerEvent::DVBRotorPosition); 264 e->intValue(i); 265 QApplication::postEvent(this, e); 266 } 267 253 268 // full scan of existing transports broken 254 269 // existing transport scan broken 255 270 void ScanWizardScanner::Scan( … … 557 572 SIGNAL(StatusSignalStrength(const SignalMonitorValue&)), 558 573 this, 559 574 SLOT( dvbSignalStrength( const SignalMonitorValue&))); 575 connect(monitor, 576 SIGNAL(StatusRotorPosition(const SignalMonitorValue&)), 577 this, 578 SLOT( dvbRotorPosition( const SignalMonitorValue&))); 560 579 } 561 580 562 581 #ifdef USING_DVB -
libs/libmythtv/siscan.cpp
623 623 // ok the tables haven't timed out, but have we hit the signal timeout? 624 624 if (timer.elapsed() > (int)(*current).timeoutTune) 625 625 { 626 #ifdef USING_DVB 627 // If the rotor is still moving, reset the timer and keep waiting 628 if (GetDVBSignalMonitor() && GetDVBSignalMonitor()->isRotorMoving()) 629 { 630 timer.restart(); 631 return false; 632 } 633 #endif // USING_DVB 634 626 635 // If we don't have a signal in timeoutTune msec, continue.. 627 636 SignalMonitor *sm = GetSignalMonitor(); 628 637 if (NULL == sm || sm->HasSignalLock()) -
libs/libmythtv/scanwizardscanner.h
92 92 void dvbLock(const SignalMonitorValue&); 93 93 void dvbSNR(const SignalMonitorValue&); 94 94 void dvbSignalStrength(const SignalMonitorValue&); 95 void dvbRotorPosition(const SignalMonitorValue&); 95 96 96 97 void serviceScanPctComplete(int pct); 97 98 … … 106 107 void dvbLock(int); 107 108 void dvbSNR(int); 108 109 void dvbSignalStrength(int); 110 void dvbRotorPosition(int); 109 111 void customEvent(QCustomEvent *e); 110 112 111 113 public: -
libs/libmythtv/dvbsignalmonitor.cpp
130 130 rotorPosition.SetThreshold((int)roundf(100 * target)); 131 131 } 132 132 133 bool DVBSignalMonitor::isRotorMoving(void) const 134 { 135 QMutexLocker locker(&statusLock); 136 return HasFlags(kDVBSigMon_WaitForPos) && !rotorPosition.IsGood(); 137 } 138 133 139 /** \fn DVBSignalMonitor::GetDVBCardNum(void) const 134 140 * \brief Returns DVB Card Number from DVBChannel. 135 141 */ -
libs/libmythtv/scanwizardhelpers.cpp
105 105 { 106 106 addChild(ss = new ScanSignalMeter(65535)); 107 107 addChild(sn = new ScanSignalMeter(65535)); 108 addChild(pos = new ScanSignalMeter(65535)); 108 109 ss->setLabel(tr("Signal Strength")); 109 110 sn->setLabel(tr("Signal/Noise")); 111 pos->setLabel(tr("Rotor Movement")); 110 112 } 111 113 112 114 TransButtonSetting *cancel = new TransButtonSetting(); … … 136 138 ss->setValue(value); 137 139 } 138 140 141 void ScanProgressPopup::rotorPosition(int value) 142 { 143 pos->setValue(value); 144 } 145 139 146 void ScanProgressPopup::dvbLock(int value) 140 147 { 141 148 sl->setValue((value) ? tr("Locked") : tr("No Lock"));