<?xml version="1.0"?>
<!--
###################################################
##USRP Dual Source
###################################################
 -->
<block>
	<name>USRP1 Dual Source</name>
	<key>usrp_dual_source_x</key>
	<category>USRP</category>
	<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,
	rx_source_a=$rx_source_a, rx_source_b=$rx_source_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#slurp
#if $lo_offset_a() != float('inf')
, lo_offset=$lo_offset_a#slurp
#end if
)
self.$(id).set_frequency_b($frequency_b, verbose=True#slurp
#if $lo_offset_b() != float('inf')
, lo_offset=$lo_offset_b#slurp
#end if
)
self.$(id).set_gain_a($gain_a)
self.$(id).set_gain_b($gain_b)</make>
	<callback>set_decim_rate($decimation)</callback>
	<callback>set_frequency_a($frequency_a#slurp
#if $lo_offset_a() != float('inf')
, lo_offset=$lo_offset_a#slurp
#end if
)</callback>
	<callback>set_frequency_b($frequency_b#slurp
#if $lo_offset_b() != float('inf')
, lo_offset=$lo_offset_b#slurp
#end if
)</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>
	<param>
		<name>RX Source A</name>
		<key>rx_source_a</key>
		<value>A</value>
		<type>string</type>
		<hide>#if $rx_source_a() == 'A' then 'part' else 'none'#</hide>
		<option>
			<name>Side A</name>
			<key>A</key>
		</option>
		<option>
			<name>Side B</name>
			<key>B</key>
		</option>
	</param>
	<param>
		<name>RX Source B</name>
		<key>rx_source_b</key>
		<value>B</value>
		<type>string</type>
		<hide>#if $rx_source_b() == 'B' then 'part' else 'none'#</hide>
		<option>
			<name>Side A</name>
			<key>A</key>
		</option>
		<option>
			<name>Side B</name>
			<key>B</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>