--- /dev/null
+<?xml version="1.0"?>
+<!--
+###################################################
+##USRP Dual Source
+###################################################
+ -->
+<block>
+ <name>USRP Dual Source</name>
+ <key>usrp_dual_source_x</key>
+ <import>from grc_gnuradio import usrp as grc_usrp</import>
+ <make>grc_usrp.dual_source_$(type.fcn)(which=$which, rx_ant_a=$rx_ant_a, rx_ant_b=$rx_ant_b)
+#if $format()
+self.$(id).set_format(width=$format.width, shift=$format.shift)
+#end if
+self.$(id).set_decim_rate($decimation)
+self.$(id).set_frequency_a($frequency_a, verbose=True)
+self.$(id).set_frequency_b($frequency_b, verbose=True)
+self.$(id).set_gain_a($gain_a)
+self.$(id).set_gain_b($gain_b)
+#if $lo_offset_a() != float('inf')
+self.$(id).set_lo_offset_a($lo_offset_a)
+#end if
+#if $lo_offset_b() != float('inf')
+self.$(id).set_lo_offset_b($lo_offset_b)
+#end if</make>
+ <callback>set_decim_rate($decimation)</callback>
+ <callback>set_frequency_a($frequency_a)</callback>
+ <callback>set_frequency_b($frequency_b)</callback>
+ <callback>set_gain_a($gain_a)</callback>
+ <callback>set_gain_b($gain_b)</callback>
+ <param>
+ <name>Output Type</name>
+ <key>type</key>
+ <type>enum</type>
+ <option>
+ <name>Complex</name>
+ <key>complex</key>
+ <opt>fcn:c</opt>
+ </option>
+ <option>
+ <name>Short</name>
+ <key>short</key>
+ <opt>fcn:s</opt>
+ </option>
+ </param>
+ <param>
+ <name>Format</name>
+ <key>format</key>
+ <value></value>
+ <type>enum</type>
+ <hide>#if $format() then '' else 'part'#</hide>
+ <option>
+ <name>16 Bits (Default)</name>
+ <key></key>
+ <opt>width:16</opt>
+ <opt>shift:0</opt>
+ </option>
+ <option>
+ <name>8 Bits, Shift 8</name>
+ <key>w8_s8</key>
+ <opt>width:8</opt>
+ <opt>shift:8</opt>
+ </option>
+ </param>
+ <param>
+ <name>Unit Number</name>
+ <key>which</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Decimation</name>
+ <key>decimation</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Frequency A (Hz)</name>
+ <key>frequency_a</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Frequency B (Hz)</name>
+ <key>frequency_b</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>LO Offset A (Hz)</name>
+ <key>lo_offset_a</key>
+ <value>float('inf')</value>
+ <type>real</type>
+ <hide>#if $lo_offset_a() == float('inf') then 'part' else 'none'#</hide>
+ <option>
+ <name>Default</name>
+ <key>float('inf')</key>
+ </option>
+ </param>
+ <param>
+ <name>LO Offset B (Hz)</name>
+ <key>lo_offset_b</key>
+ <value>float('inf')</value>
+ <type>real</type>
+ <hide>#if $lo_offset_b() == float('inf') then 'part' else 'none'#</hide>
+ <option>
+ <name>Default</name>
+ <key>float('inf')</key>
+ </option>
+ </param>
+ <param>
+ <name>Gain A (dB)</name>
+ <key>gain_a</key>
+ <value>0</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Gain B (dB)</name>
+ <key>gain_b</key>
+ <value>0</value>
+ <type>real</type>
+ </param>
+<!--
+###################################################
+## Antenna A
+###################################################
+ -->
+ <param>
+ <name>RX Antenna A</name>
+ <key>rx_ant_a</key>
+ <value>RXA</value>
+ <type>string</type>
+ <option>
+ <name>RXA</name>
+ <key>RXA</key>
+ </option>
+ <option>
+ <name>RXB</name>
+ <key>RXB</key>
+ </option>
+ <option>
+ <name>RXAB</name>
+ <key>RXAB</key>
+ </option>
+ <option>
+ <name>TX/RX</name>
+ <key>TX/RX</key>
+ </option>
+ <option>
+ <name>RX2</name>
+ <key>RX2</key>
+ </option>
+ </param>
+<!--
+###################################################
+## Antenna B
+###################################################
+ -->
+ <param>
+ <name>RX Antenna B</name>
+ <key>rx_ant_b</key>
+ <value>RXA</value>
+ <type>string</type>
+ <option>
+ <name>RXA</name>
+ <key>RXA</key>
+ </option>
+ <option>
+ <name>RXB</name>
+ <key>RXB</key>
+ </option>
+ <option>
+ <name>RXAB</name>
+ <key>RXAB</key>
+ </option>
+ <option>
+ <name>TX/RX</name>
+ <key>TX/RX</key>
+ </option>
+ <option>
+ <name>RX2</name>
+ <key>RX2</key>
+ </option>
+ </param>
+ <source>
+ <name>Aout</name>
+ <type>$type</type>
+ </source>
+ <source>
+ <name>Bout</name>
+ <type>$type</type>
+ </source>
+ <doc>
+The USRP source outputs 64 Megasamples per second / decimation.
+
+The "Receive Antenna Setting" selects one of the SMA connectors as the data source. \
+Flex RF boards use the "TX/RX" and "RX2" settings. \
+Basic RX and LFRX use the "RXA", "RXB", and "RXAB" settings. \
+All other boards use the "RXA" setting.
+ </doc>
+</block>