コード例 #1
0
ファイル: rx_fft.cpp プロジェクト: tejeez/gqrx
/*! \brief Set new FFT size. */
void rx_fft_c::set_fft_size(unsigned int fftsize)
{
    if (fftsize != d_fftsize)
    {
        boost::mutex::scoped_lock lock(d_mutex);

        d_fftsize = fftsize;
        fftcounter = averagecount = 0;
        delete averager;
        //averager = new gr_complex[d_fftsize];
        averager = new float[d_fftsize];
        for(unsigned int s=0; s < d_fftsize; s++)
            averager[s] = 0;


        /* clear and resize circular buffer */
        d_cbuf.clear();
        d_cbuf.set_capacity(d_fftsize);

        /* reset window */
        int wintype = d_wintype; // FIXME: would be nicer with a window_reset()
        d_wintype = -1;
        set_window_type(wintype);

        /* reset FFT object (also reset FFTW plan) */
        delete d_fft;
        d_fft = new gr::fft::fft_complex (d_fftsize, true);
    }

}
コード例 #2
0
ClassicBackgroundRender::ClassicBackgroundRender(const QRectF &rect,
                                                 widget *parent,
                                                 const QImage &background_image)
    : cherry_kit::window(parent) {
  setFlag(QGraphicsItem::ItemIsMovable, false);
  setFlag(QGraphicsItem::ItemIsFocusable, true);

  mBackgroundImage = background_image;
  mScalingMode = None;
  mSeamLessMode = false;
  set_window_type(cherry_kit::window::kFramelessWindow);
  enable_window_background(false);
}
コード例 #3
0
ファイル: rx_fft.cpp プロジェクト: tejeez/gqrx
/*! \brief Create receiver FFT object.
 *  \param fftsize The FFT size.
 *  \param wintype The window type (see gr::filter::firdes::win_type).
 *
 */
rx_fft_f::rx_fft_f(unsigned int fftsize, int wintype)
    : gr::sync_block ("rx_fft_f",
          gr::io_signature::make(1, 1, sizeof(float)),
          gr::io_signature::make(0, 0, 0)),
      d_fftsize(fftsize),
      d_wintype(-1)
{

    /* create FFT object */
    d_fft = new gr::fft::fft_complex(d_fftsize, true);

    /* allocate circular buffer */
    d_cbuf.set_capacity(d_fftsize);

    /* create FFT window */
    set_window_type(wintype);
}
コード例 #4
0
ファイル: rx_fft.cpp プロジェクト: tejeez/gqrx
/*! \brief Set new FFT size. */
void rx_fft_f::set_fft_size(unsigned int fftsize)
{
    if (fftsize != d_fftsize)
    {
        boost::mutex::scoped_lock lock(d_mutex);

        d_fftsize = fftsize;

        /* clear and resize circular buffer */
        d_cbuf.clear();
        d_cbuf.set_capacity(d_fftsize);

        /* reset window */
        int wintype = d_wintype; // FIXME: would be nicer with a window_reset()
        d_wintype = -1;
        set_window_type(wintype);

        /* reset FFT object (also reset FFTW plan) */
        delete d_fft;
        d_fft = new gr::fft::fft_complex(d_fftsize, true);
    }
}
コード例 #5
0
ファイル: rx_fft.cpp プロジェクト: tejeez/gqrx
/*! \brief Create receiver FFT object.
 *  \param fftsize The FFT size.
 *  \param wintype The window type (see gr::filter::firdes::win_type).
 *
 */
rx_fft_c::rx_fft_c(unsigned int fftsize, int wintype)
    : gr::sync_block ("rx_fft_c",
          gr::io_signature::make(1, 1, sizeof(gr_complex)),
          gr::io_signature::make(0, 0, 0)),
      d_fftsize(fftsize),
      d_wintype(-1)
{
    d_fftmode = 1;
    fftcounter = averagecount = 0;
    //averager = new gr_complex[d_fftsize];
    averager = new float[d_fftsize];
    for(unsigned int s=0; s < d_fftsize; s++)
        averager[s] = 0;

    /* create FFT object */
    d_fft = new gr::fft::fft_complex(d_fftsize, true);

    /* allocate circular buffer */
    d_cbuf.set_capacity(d_fftsize);

    /* create FFT window */
    set_window_type(wintype);

}