<?xml version="1.0"?>
<!--
###################################################
##QT GUI Sink
###################################################
 -->
<block>
  <name>QT GUI Sink</name>
  <key>qtgui_sink_x</key>
  <import>from PyQt4 import Qt</import>
  <import>from gnuradio import qtgui</import>
  <import>from gnuradio.filter import firdes</import>
  <import>import sip</import>
  <make>#set $win = 'self._%s_win'%$id
qtgui.$(type.fcn)(
	$fftsize, \#fftsize
	$wintype, \#wintype
	$fc, \#fc
	$bw, \#bw
	$name, \#name
	$plotfreq, \#plotfreq
	$plotwaterfall, \#plotwaterfall
	$plottime, \#plottime
	$plotconst, \#plotconst
)
self.$(id).set_update_time(1.0/$rate)
self._$(id)_win = sip.wrapinstance(self.$(id).pyqwidget(), Qt.QWidget)
$(gui_hint() % $win)

self.$(id).enable_rf_freq($showrf)

#if $freqchangevar() is not None
def $(id)_callback(p, num):
	if num == 1 or num == 2: self.set_$(freqchangevar)(p.x())

Qt.QObject.connect(self._$(id)_win, Qt.SIGNAL("plotPointSelected(QPointF, int)"), $(id)_callback )
#end if

  </make>
  <callback>set_frequency_range($fc, $bw)</callback>

  <param>
    <name>Type</name>
    <key>type</key>
    <value>complex</value>
    <type>enum</type>
    <option><name>Complex</name><key>complex</key><opt>fcn:sink_c</opt></option>
    <option><name>Float</name><key>float</key><opt>fcn:sink_f</opt></option>
  </param>

  <param>
    <name>Name</name>
    <key>name</key>
    <value>""</value>
    <type>string</type>
    <hide>#if len($name()) > 0 then 'none' else 'part'#</hide>
  </param>

  <param>
    <name>FFT Size</name>
    <key>fftsize</key>
    <value>1024</value>
    <type>int</type>
  </param>

  <param>
    <name>Window Type</name>
    <key>wintype</key>
    <value>firdes.WIN_BLACKMAN_hARRIS</value>
    <type>int</type>
    <hide>part</hide>
    <option>
      <name>Blackman-harris</name>
      <key>firdes.WIN_BLACKMAN_hARRIS</key>
    </option>
    <option>
      <name>Hamming</name>
      <key>firdes.WIN_HAMMING</key>
    </option>
    <option>
      <name>Hann</name>
      <key>firdes.WIN_HANN</key>
    </option>
    <option>
      <name>Blackman</name>
      <key>firdes.WIN_BLACKMAN</key>
    </option>
    <option>
      <name>Rectangular</name>
      <key>firdes.WIN_RECTANGULAR</key>
    </option>
    <option>
      <name>Kaiser</name>
      <key>firdes.WIN_KAISER</key>
    </option>
  </param>

  <param>
    <name>Center Frequency (Hz)</name>
    <key>fc</key>
    <value>0</value>
    <type>real</type>
  </param>

  <param>
    <name>Bandwidth (Hz)</name>
    <key>bw</key>
    <value>samp_rate</value>
    <type>real</type>
  </param>

  <param>
    <name>Update Rate</name>
    <key>rate</key>
    <value>10</value>
    <type>real</type>
  </param>

  <param>
    <name>Show RF Freq</name>
    <key>showrf</key>
    <value>False</value>
    <type>enum</type>
    <hide>part</hide>
    <option>
      <name>Yes</name>
      <key>True</key>
    </option>
    <option>
      <name>No</name>
      <key>False</key>
    </option>
  </param>

  <param>
    <name>Plot Frequency</name>
    <key>plotfreq</key>
    <value>True</value>
    <type>bool</type>
    <hide>part</hide>
    <option><name>On</name><key>True</key></option>
    <option><name>Off</name><key>False</key></option>
  </param>

  <param>
    <name>Plot Waterfall</name>
    <key>plotwaterfall</key>
    <value>True</value>
    <type>bool</type>
    <hide>part</hide>
    <option><name>On</name><key>True</key></option>
    <option><name>Off</name><key>False</key></option>
  </param>

  <param>
    <name>Plot Time</name>
    <key>plottime</key>
    <value>True</value>
    <type>bool</type>
    <hide>part</hide>
    <option><name>On</name><key>True</key></option>
    <option><name>Off</name><key>False</key></option>
  </param>

  <param>
    <name>Plot Const</name>
    <key>plotconst</key>
    <value>True</value>
    <type>bool</type>
    <hide>part</hide>
    <option><name>On</name><key>True</key></option>
    <option><name>Off</name><key>False</key></option>
  </param>

  <param>
    <name>GUI Hint</name>
    <key>gui_hint</key>
    <value></value>
    <type>gui_hint</type>
    <hide>part</hide>
  </param>

  <param>
    <name>Clicked freq variable</name>
    <key>freqchangevar</key>
    <value>None</value>
    <type>raw</type>
    <hide>part</hide>
  </param>

  <param>
    <name>Show Msg Ports</name>
    <key>showports</key>
    <value>True</value>
    <type>enum</type>
    <hide>part</hide>
    <option>
      <name>Yes</name>
      <key>False</key>
    </option>
    <option>
      <name>No</name>
      <key>True</key>
    </option>
  </param>

  <sink>
    <name>in</name>
    <type>$type</type>
    <nports>$num_inputs</nports>
  </sink>

  <sink>
    <name>freq</name>
    <type>message</type>
    <optional>1</optional>
    <hide>$showports</hide>
  </sink>

  <source>
    <name>freq</name>
    <type>message</type>
    <optional>1</optional>
    <hide>$showports</hide>
  </source>

  <doc>
The GUI hint can be used to position the widget within the application. \
The hint is of the form [tab_id@tab_index]: [row, col, row_span, col_span]. \
Both the tab specification and the grid position are optional.
  </doc>
</block>
