#!/usr/bin/env python
#
# Copyright 2004 Free Software Foundation, Inc.
# 
# This file is part of GNU Radio
# 
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# 
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# 

from gnuradio import gr
from gnuradio import mc4020
from gnuradio.eng_option import eng_option
from gnuradio.wxgui import stdgui, fftsink
from optparse import OptionParser
import wx

class app_flow_graph (stdgui.gui_flow_graph):
    def __init__(self, frame, panel, vbox, argv):
        stdgui.gui_flow_graph.__init__ (self, frame, panel, vbox, argv)

        
        parser = OptionParser (option_class=eng_option)
        (options, args) = parser.parse_args ()

        input_rate = 35468950 #20e6
	input_blocksize=int(input_rate/25)
        #orig fft_blocksize=512
	fft_blocksize=1024
        decimation=1 #int(input_blocksize/fft_blocksize)
        fft_rate=input_rate/decimation
        src = mc4020.source (input_rate, mc4020.BTTV_EXTEND_RAW_LINES)
        cvt = gr.short_to_float ()
	cvt2 = gr.float_to_complex ()
    	#one_in_n = gr.keep_one_in_n (gr.sizeof_gr_float,
        #                     int ( decimation))

        block, fft_win = fftsink.make_fft_sink_c (self, panel, "Rx Data", fft_blocksize, fft_rate)

        self.connect (src, cvt)
    	self.connect (cvt, cvt2)
    	#self.connect (one_in_n, block)
        self.connect (cvt2, block)
        vbox.Add (fft_win, 1, wx.EXPAND)


def main ():
    app = stdgui.stdapp (app_flow_graph, "USRP FFT")
    app.MainLoop ()

if __name__ == '__main__':
    main ()

