void TVSearchMgr::SearchFreqs(std::vector<TuningParam> &listFreq) { static int errs; errs=0; dxreport("[TVSearchMgr::SearchFreqs] freqs: %d\n",listFreq.size()); for(U32 iLoop = 0 ; iLoop< listFreq.size();iLoop++) { // 主动结束 if(m_pThread->check_stop()) { dxreport("force stop called, exit TVSearchMgrPollProc...\n"); break; } dxreport("TVSearchMgrPollProc: Searching Freq:%d...\n",listFreq[iLoop].freq); OnProgress(CalculatePercent(iLoop,listFreq.size())); SearchOneFreq(listFreq[iLoop],BS_PATCATSDT); /* // for test quickly dxreport("TVSearchMgrPollProc: Searching qam:%d, symb:%d...\n",listFreq[iLoop].qam, listFreq[iLoop].symb); { TuningParam tuner; tuner.freq = 474000; tuner.qam = 2; tuner.symb = 6875; SearchOneFreq(tuner,BS_PATCATSDT); } break; */ } }
bool Breakpoints::eventFilter(QObject *object, QEvent *event) { if( object != m_widget ) { return false; } switch (event->type()) { case QEvent::MouseButtonPress: { QMouseEvent *me = (QMouseEvent *) event; QPointF clickPos = me->pos(); for(m_selectedBreakpoint = m_model->GetBreakpoints().begin(); m_selectedBreakpoint != m_model->GetBreakpoints().end(); ++m_selectedBreakpoint) { QPainterPath path; path.addEllipse(pointBoundingRect(m_selectedBreakpoint)); if (path.contains(clickPos)) { break; } } if (me->button() == Qt::LeftButton) { if (m_selectedBreakpoint == m_model->GetBreakpoints().end() ) { double px, py; CalculatePercent(clickPos.x(), clickPos.y(), px, py); ElVis::Color c; c.SetAlpha(py); c.SetGreen(1.0); c.SetRed(1.0); c.SetBlue(1.0); m_selectedBreakpoint = m_model->InsertBreakpoint(px, c); } } else if (me->button() == Qt::RightButton) { if( m_selectedBreakpoint != m_model->GetBreakpoints().end() ) { m_model->RemoveBreakpoint(m_selectedBreakpoint); m_selectedBreakpoint = m_model->GetBreakpoints().end(); } } OnSelectedPointChanged(m_selectedBreakpoint); OnBreakpointsChanged(); return true; } break; case QEvent::MouseButtonRelease: break; case QEvent::MouseMove: if (m_selectedBreakpoint != m_model->GetBreakpoints().end() ) { const QPointF& point = ((QMouseEvent *)event)->pos(); double px, py; CalculatePercent(point.x(), point.y(), px, py); ElVisFloat key = px; while( m_model->GetBreakpoints().find(key) != m_model->GetBreakpoints().end()) { key += .00001; } ElVis::Color c = (*m_selectedBreakpoint).second.Col; c.SetAlpha(py); m_model->RemoveBreakpoint(m_selectedBreakpoint); m_selectedBreakpoint = m_model->InsertBreakpoint(key, c); OnBreakpointsChanged(); } break; case QEvent::Resize: { //QResizeEvent *e = (QResizeEvent *) event; //if (e->oldSize().width() == 0 || e->oldSize().height() == 0) // break; //qreal stretch_x = e->size().width() / qreal(e->oldSize().width()); //qreal stretch_y = e->size().height() / qreal(e->oldSize().height()); //for (int i=0; i<m_points.size(); ++i) //{ // QPointF p = m_points[i]; // movePoint(i, QPointF(p.x() * stretch_x, p.y() * stretch_y), false); //} //update(); break; } case QEvent::Paint: { ColorMapRect* that_widget = m_widget; m_widget = 0; QApplication::sendEvent(object, event); m_widget = that_widget; paintPoints(); return true; } default: break; } return false; }