<?xml version="1.0"?>
<!--
###################################################
##USRP Dual Sink
###################################################
 -->
<block>
	<name>USRP Dual Sink</name>
	<key>usrp_dual_sink_x</key>
	<import>from grc_gnuradio import usrp as grc_usrp</import>
	<make>grc_usrp.dual_sink_$(type.fcn)(which=$which)
self.$(id).set_interp_rate($interpolation)
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)
##################################################
## Flex RF A
##################################################
#if $transmit_a.tx_enb
self.$(id).set_enable_a(True)
#end if
#if $transmit_a.auto_tr
self.$(id).set_auto_tr_a(True)
#end if
##################################################
## Flex RF B
##################################################
#if $transmit_b.tx_enb
self.$(id).set_enable_b(True)
#end if
#if $transmit_b.auto_tr
self.$(id).set_auto_tr_b(True)
#end if</make>
	<callback>set_interp_rate($interpolation)</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>Input 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>Unit Number</name>
		<key>which</key>
		<value>0</value>
		<type>int</type>
	</param>
	<param>
		<name>Interpolation</name>
		<key>interpolation</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>
<!--
###################################################
## Flex RF A
###################################################
 -->
	<param>
		<name>Transmit A</name>
		<key>transmit_a</key>
		<value></value>
		<type>enum</type>
		<hide>#if $transmit_a.tx_enb then 'none' else 'part'#</hide>
		<option>
			<name>Unconfigured</name>
			<key></key>
			<opt>tx_enb:</opt>
			<opt>auto_tr:</opt>
		</option>
		<option>
			<name>Enable</name>
			<key>tx_enb</key>
			<opt>tx_enb:1</opt>
			<opt>auto_tr:</opt>
		</option>
		<option>
			<name>Auto T/R</name>
			<key>auto_tr</key>
			<opt>tx_enb:1</opt>
			<opt>auto_tr:1</opt>
		</option>
	</param>
<!--
###################################################
## Flex RF B
###################################################
 -->
	<param>
		<name>Transmit B</name>
		<key>transmit_b</key>
		<value></value>
		<type>enum</type>
		<hide>#if $transmit_b.tx_enb then 'none' else 'part'#</hide>
		<option>
			<name>Unconfigured</name>
			<key></key>
			<opt>tx_enb:</opt>
			<opt>auto_tr:</opt>
		</option>
		<option>
			<name>Enable</name>
			<key>tx_enb</key>
			<opt>tx_enb:1</opt>
			<opt>auto_tr:</opt>
		</option>
		<option>
			<name>Auto T/R</name>
			<key>auto_tr</key>
			<opt>tx_enb:1</opt>
			<opt>auto_tr:1</opt>
		</option>
	</param>
	<sink>
		<name>Ain</name>
		<type>$type</type>
	</sink>
	<sink>
		<name>Bin</name>
		<type>$type</type>
	</sink>
	<doc>
The USRP sink inputs 128 Megasamples per second / interpolation.

Input amplitude should be between 0 and 32767.

Flex RF boards only: The "Transmit Setting" must be configured. \
When set to "Enable" the transmitter is always on. \
When set to "Auto Transmit/Receive", the transmitter is disabled while receiving.
	</doc>
</block>