////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CPlotter::CPlotter(QWidget *parent) : QFrame(parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); setFocusPolicy(Qt::StrongFocus); setAttribute(Qt::WA_PaintOnScreen,false); setAutoFillBackground(false); setAttribute(Qt::WA_OpaquePaintEvent, false); setAttribute(Qt::WA_NoSystemBackground, true); setMouseTracking(true); //create a default waterfall color scheme // *** Need to read from file *** for (int i = 0; i < 256; i++) { if( (i<43) ) m_ColorTbl[i].setRgb( 0,0, 255*(i)/43); if( (i>=43) && (i<87) ) m_ColorTbl[i].setRgb( 0, 255*(i-43)/43, 255 ); if( (i>=87) && (i<120) ) m_ColorTbl[i].setRgb( 0,255, 255-(255*(i-87)/32)); if( (i>=120) && (i<154) ) m_ColorTbl[i].setRgb( (255*(i-120)/33), 255, 0); if( (i>=154) && (i<217) ) m_ColorTbl[i].setRgb( 255, 255 - (255*(i-154)/62), 0); if( (i>=217) ) m_ColorTbl[i].setRgb( 255, 0, 128*(i-217)/38); } m_FftCenter = 0; m_CenterFreq = 144500000; m_DemodCenterFreq = 144500000; m_DemodHiCutFreq = 5000; m_DemodLowCutFreq = -5000; m_FLowCmin = -25000; m_FLowCmax = -1000; m_FHiCmin = 1000; m_FHiCmax = 25000; m_symetric = true; m_ClickResolution = 100; m_FilterClickResolution = 100; m_CursorCaptureDelta = CUR_CUT_DELTA; m_FilterBoxEnabled = true; m_CenterLineEnabled = true; m_Span = 96000; m_SampleFreq = 96000; m_HorDivs = 12; m_VerDivs = 6; m_MaxdB = 0; m_MindB = -120; m_dBStepSize = abs(m_MaxdB-m_MindB)/m_VerDivs; m_FreqUnits = 1000000; m_CursorCaptured = NONE; m_Running = false; m_DrawOverlay = true; m_2DPixmap = QPixmap(0,0); m_OverlayPixmap = QPixmap(0,0); m_WaterfallPixmap = QPixmap(0,0); m_Size = QSize(0,0); m_GrabPosition = 0; m_Percent2DScreen = 50; //percent of screen used for 2D display m_FontSize = 9; m_VdivDelta = 40; m_HdivDelta = 60; m_FreqDigits = 3; setFftPlotColor(QColor(0x97,0xD0,0x97,0xFF)); setFftFill(false); }
////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CPlotter::CPlotter(QWidget *parent) : QFrame(parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); setFocusPolicy(Qt::StrongFocus); setAttribute(Qt::WA_PaintOnScreen,false); setAutoFillBackground(false); setAttribute(Qt::WA_OpaquePaintEvent, false); setAttribute(Qt::WA_NoSystemBackground, true); setMouseTracking(true); setTooltipsEnabled(false); // default waterfall color scheme for (int i = 0; i < 256; i++) { // level 0: black background if (i < 20) m_ColorTbl[i].setRgb(0, 0, 0); // level 1: black -> blue else if ((i >= 20) && (i < 70)) m_ColorTbl[i].setRgb(0, 0, 140*(i-20)/50); // level 2: blue -> light-blue / greenish else if ((i >= 70) && (i < 100)) m_ColorTbl[i].setRgb(60*(i-70)/30, 125*(i-70)/30, 115*(i-70)/30 + 140); // level 3: light blue -> yellow else if ((i >= 100) && (i < 150)) m_ColorTbl[i].setRgb(195*(i-100)/50 + 60, 130*(i-100)/50 + 125, 255-(255*(i-100)/50)); // level 4: yellow -> red else if ((i >= 150) && (i < 250)) m_ColorTbl[i].setRgb(255, 255-255*(i-150)/100, 0); // level 5: red -> white else if (i >= 250) m_ColorTbl[i].setRgb(255, 255*(i-250)/5, 255*(i-250)/5); } m_PeakHoldActive=false; m_PeakHoldValid=false; m_FftCenter = 0; m_CenterFreq = 144500000; m_DemodCenterFreq = 144500000; m_DemodHiCutFreq = 5000; m_DemodLowCutFreq = -5000; m_FLowCmin = -25000; m_FLowCmax = -1000; m_FHiCmin = 1000; m_FHiCmax = 25000; m_symetric = true; m_ClickResolution = 100; m_FilterClickResolution = 100; m_CursorCaptureDelta = CUR_CUT_DELTA; m_FilterBoxEnabled = true; m_CenterLineEnabled = true; m_Span = 96000; m_SampleFreq = 96000; m_HorDivs = 12; m_VerDivs = 6; m_MaxdB = 0; m_MindB = -135; m_dBStepSize = abs(m_MaxdB-m_MindB)/m_VerDivs; m_FreqUnits = 1000000; m_CursorCaptured = NONE; m_Running = false; m_DrawOverlay = true; m_2DPixmap = QPixmap(0,0); m_OverlayPixmap = QPixmap(0,0); m_WaterfallPixmap = QPixmap(0,0); m_Size = QSize(0,0); m_GrabPosition = 0; m_Percent2DScreen = 50; //percent of screen used for 2D display #ifdef Q_OS_MAC m_FontSize = 11; #else m_FontSize = 9; #endif m_VdivDelta = 40; m_HdivDelta = 60; m_FreqDigits = 3; m_Peaks = QMap<int,int>(); setPeakDetection(false, 2); m_PeakHoldValid = false; setFftPlotColor(QColor(0xFF,0xFF,0xFF,0xFF)); setFftFill(false); }