<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd">

<featureDefinitions name="DCI" iconName="DCI" helpIndex="">

<userControlGroup name="none" caption="none">
<userControlSubGroup name="none" caption="none">

<userControl name="applyButton">
<dialogConfig type="applyButton" caption="none"></dialogConfig>
<userAction name="apply">	
	
</userAction>
</userControl>

</userControlSubGroup>
</userControlGroup>

<userControlGroup name="operationalSettings" caption="Operational Settings">
<userControlSubGroup name="none" caption="none">

			<userControl name="enable">
			<dialogConfig type="CK" caption="Enable on Startup"></dialogConfig>
			<userAction name="enable">
				<claimResource type="register" registerField="DCIEN" value="1"></claimResource>
			</userAction>
			<userAction name="disable">
				<claimResource type="register" registerField="DCIEN" value="0"></claimResource>
			</userAction>
			</userControl>

			<userControl name="loopbackEnable">
			<dialogConfig type="CK" caption="Enable loopback on input and output pins"></dialogConfig>
			<userAction name="enable">
				<claimResource type="register" registerField="DLOOP" value="1"></claimResource>
				<claimResource type="pin" pin="CSDO" polarity="Out"></claimResource>
			</userAction>
			<userAction name="disable">
				<claimResource type="register" registerField="DLOOP" value="0"></claimResource>
				<claimResource type="pin" pin="CSDI" polarity="Inp"></claimResource>
				<claimResource type="pin" pin="CSDO" polarity="Out"></claimResource>
			</userAction>
			</userControl>

			<userControl name="operateDuringIdle">
			<dialogConfig type="CB" caption="CPU Idle Operation">
				<selection name="continueOnIdle" value="Continue"></selection> 
				<selection name="stopOnIdle" value="Stop"></selection> 
			</dialogConfig>
			<userAction name="stopOnIdle">
				<claimResource type="register" registerField="DCISIDL" value="1"></claimResource>
			</userAction>
			<userAction name="continueOnIdle">
				<claimResource type="register" registerField="DCISIDL" value="0"></claimResource>
			</userAction>
			</userControl>
			 
			<userControl name="frameSyncMaster">
			<dialogConfig type="CB" caption="DCI Operating Mode">
				<selection name="master" value="Frame Sync Master - (COFS pin is an output)"></selection> 
				<selection name="slave" value="Frame Sync Slave - (COFS pin is an input)"></selection> 
			</dialogConfig>
			<userAction name="slave">
				<claimResource type="register" registerField="COFSD" value="1"></claimResource>
				<claimResource type="pin" pin="COFS" polarity="Inp"></claimResource>
			</userAction>
			<userAction name="master">
				<claimResource type="register" registerField="COFSD" value="0"></claimResource>
				<claimResource type="pin" pin="COFS" polarity="Out"></claimResource>
			</userAction>
			</userControl>

			<userControl name="frameSyncMode">
			<dialogConfig type="CB" caption="Mode">
				<selection name="multi" value="Multi channel mode"></selection> 
				<selection name="i2s" value="I2S mode"></selection> 
				<selection name="ac16bit" value="AC-Link mode (16-bit)"></selection> 
				<selection name="ac10bit" value="AC-Link mode (20-bit)"></selection> 
			</dialogConfig>
			<userAction name="ac10bit">
				<claimResource type="register" registerField="COFSM0" value="1"></claimResource>
				<claimResource type="register" registerField="COFSM1" value="1"></claimResource>
			</userAction>
			<userAction name="ac16bit">
				<claimResource type="register" registerField="COFSM0" value="0"></claimResource>
				<claimResource type="register" registerField="COFSM1" value="1"></claimResource>
			</userAction>
			<userAction name="i2s">
				<claimResource type="register" registerField="COFSM0" value="1"></claimResource>
				<claimResource type="register" registerField="COFSM1" value="0"></claimResource>
			</userAction>
			<userAction name="multi">
				<claimResource type="register" registerField="COFSM0" value="0"></claimResource>
				<claimResource type="register" registerField="COFSM1" value="0"></claimResource>
			</userAction>
			</userControl>

			<userControl name="cSDOControl">
			<dialogConfig type="CB" caption="Serial Data Output Mode">
				<selection name="low" value="CSDO pin low"></selection> 
				<selection name="tristate" value="CSDO pin will be tri-stated"></selection> 
			</dialogConfig>
			<userAction name="tristate">
				<claimResource type="register" registerField="CSDOM" value="1"></claimResource>
			</userAction>
			<userAction name="low">
				<claimResource type="register" registerField="CSDOM" value="0"></claimResource>
			</userAction>
			</userControl>

			<userControl name="dataJustification">
			<dialogConfig type="CB" caption="Begin Data transmission/reception(Data Justificaton)">
				<selection name="1cycle" value="one serial clock cycle after frame sync. pulse"></selection> 
				<selection name="during" value="during the same serial clock cycle as the frame sync. pulse"></selection> 
			</dialogConfig>
			<userAction name="during">
				<claimResource type="register" registerField="DJST" value="1"></claimResource>
			</userAction>
			<userAction name="1cycle">
				<claimResource type="register" registerField="DJST" value="0"></claimResource>
			</userAction>
			</userControl>
			 
			 
			<userControl name="underflowMode">
			<dialogConfig type="CB" caption="Serial data transmitted on underflow">
				<selection name="zero" value="Zeros"></selection> 
				<selection name="lastData" value="Last data"></selection> 
			</dialogConfig>
			<userAction name="lastData">
				<claimResource type="register" registerField="UNFM" value="1"></claimResource>
			</userAction>
			<userAction name="zero">
				<claimResource type="register" registerField="UNFM" value="0"></claimResource>
			</userAction>
			</userControl>

			<userControl name="interruptEnable" enableForInt="DCID">
				<dialogConfig type="CK" caption="Enable Interrupt on Startup"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="DCIIE" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="DCIIE" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="interruptPriority" priorityForInt="DCID">
				<dialogConfig type="CB" range="7" caption="Interrupt Priority">
					<selection name="rxPriorityLevelTo%index%" value="%index%"></selection>
				</dialogConfig>
				<userAction>

					<!-- 	method to compute txPriority in bit mode should reference -->
					<!-- 	register info table read from XML -->

					<claimResource type="register" registerField="DCIIP" method="rxPriorityLevel3Bit"></claimResource>
				</userAction>
			</userControl>
			
			<userControl name="faultInterruptEnable" enableForInt="DCIE">
				<dialogConfig type="CK" caption="Enable Fault Interrupt on Startup"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" registerField="DCIEIE" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="DCIEIE" value="0"></claimResource>
				</userAction>
			</userControl>

			<userControl name="faultInterruptPriority" priorityForInt="DCIE">
				<dialogConfig type="CB" range="7" caption="Fault Priority">
					<selection name="rxPriorityLevelTo%index%" value="%index%"></selection>
				</dialogConfig>
				<userAction>

					<!-- 	method to compute txPriority in bit mode should reference -->
					<!-- 	register info table read from XML -->

					<claimResource type="register" registerField="DCIEIP" method="rxPriorityLevel3Bit"></claimResource>
				</userAction>
			</userControl>


</userControlSubGroup>
</userControlGroup>

<userControlGroup name="advancedSettings" caption="Advanced Settings">
<userControlSubGroup name="sampleClock" caption="Sample Clock">

	<userControl name="clockSource">
		<dialogConfig type="CB" caption="Clock Source">
			<selection name="internal" value="Internal - (CSCK pin is an output)"></selection> 
			<selection name="external" value="External - (CSCK pin is an input)"></selection> 
		</dialogConfig>
		<userAction name="external">
			<claimResource type="register" registerField="CSCKD" value="1"></claimResource>
			<claimResource type="register" registerField="BCG" value="000"></claimResource>
			<claimResource type="pin" pin="CSCK" polarity="Inp"></claimResource>
		</userAction>
		<userAction name="internal">
			<claimResource type="register" registerField="CSCKD" value="0"></claimResource>
			<claimResource type="pin" pin="CSCK" polarity="Out"></claimResource>
		</userAction>
	</userControl>

	<userControl type="readOnly" name="maxClockRate">
		<dialogConfig type="parameter" caption="4095"></dialogConfig>
		<userAction>		     
		</userAction>
	</userControl>
			  
	<userControl name="BCG">
		<dialogConfig type="TB" caption="BCG"></dialogConfig>
		<userAction>
			<claimResource type="register" instance="1" registerField="BCG" value="0" variable="1"></claimResource>			
		</userAction>
	</userControl>

	<userControl name="clockRate">
		<dialogConfig type="TB" caption="Clock Rate"></dialogConfig>
		<userAction>			
		</userAction>
	</userControl>
	
	<userControl name="clockEdgeControl">
		<dialogConfig type="CB" caption="Clock Edge">
			<selection name="falling" value="Falling edge of CSCK"></selection> 
			<selection name="rising" value="Rising edge of CSCK"></selection> 
		</dialogConfig>
		<userAction name="rising">
			<claimResource type="register" registerField="CSCKE" value="1"></claimResource>
		</userAction>
		<userAction name="falling">
			<claimResource type="register" registerField="CSCKE" value="0"></claimResource>
		</userAction>
	</userControl>

</userControlSubGroup>

<userControlSubGroup name="frameSync" caption="Frame Sync">
<userControl name="wordSize">
<dialogConfig type="CB" caption="Word size (bits)">
<!-- Invalid options
	<selection name="setTo1" value="1 bit long"></selection> 
	<selection name="setTo2" value="2 bit long"></selection> 
	<selection name="setTo3" value="3 bit long"></selection> 
-->	
	<selection name="setTo4" value="4 bit long"></selection> 
	<selection name="setTo5" value="5 bit long"></selection> 
	<selection name="setTo6" value="6 bit long"></selection> 
	<selection name="setTo7" value="7 bit long"></selection> 
	<selection name="setTo8" value="8 bit long"></selection> 
	<selection name="setTo9" value="9 bit long"></selection> 
	<selection name="setTo10" value="10 bit long"></selection> 
	<selection name="setTo11" value="11 bit long"></selection> 
	<selection name="setTo12" value="12 bit long"></selection> 
	<selection name="setTo13" value="13 bit long"></selection> 
	<selection name="setTo14" value="14 bit long"></selection> 
	<selection name="setTo15" value="15 bit long"></selection> 
	<selection name="setTo16" value="16 bit long"></selection> 
</dialogConfig>
<userAction name="setTo16">
	<claimResource type="register" registerField="WS" value="1111"></claimResource>
</userAction>
<userAction name="setTo15">
	<claimResource type="register" registerField="WS" value="1110"></claimResource>
</userAction>
<userAction name="setTo14">
	<claimResource type="register" registerField="WS" value="1101"></claimResource>
</userAction>
<userAction name="setTo13">
	<claimResource type="register" registerField="WS" value="1100"></claimResource>
</userAction>
<userAction name="setTo12">
	<claimResource type="register" registerField="WS" value="1011"></claimResource>
</userAction>
<userAction name="setTo11">
	<claimResource type="register" registerField="WS" value="1010"></claimResource>
</userAction>
<userAction name="setTo10">
	<claimResource type="register" registerField="WS" value="1001"></claimResource>
</userAction>
<userAction name="setTo9">
	<claimResource type="register" registerField="WS" value="1000"></claimResource>
</userAction>
<userAction name="setTo8">
	<claimResource type="register" registerField="WS" value="0111"></claimResource>
</userAction>
<userAction name="setTo7">
	<claimResource type="register" registerField="WS" value="0110"></claimResource>
</userAction>
<userAction name="setTo6">
	<claimResource type="register" registerField="WS" value="0101"></claimResource>
</userAction>
<userAction name="setTo5">
	<claimResource type="register" registerField="WS" value="0100"></claimResource>
</userAction>
<userAction name="setTo4">
	<claimResource type="register" registerField="WS" value="0011"></claimResource>
</userAction>
<!-- Invalid options
<userAction name="setTo3">
	<claimResource type="register" registerField="WS" value="0010"></claimResource>
</userAction>
<userAction name="setTo2">
	<claimResource type="register" registerField="WS" value="0001"></claimResource>
</userAction>
<userAction name="setTo1">
	<claimResource type="register" registerField="WS" value="0000"></claimResource>
</userAction>
-->
</userControl>

<userControl name="bufferLength">
<dialogConfig type="CB" caption="Size of time slot (data words)">
	<selection name="1word" value="1 word buffered"></selection> 
	<selection name="2words" value="2 words buffered"></selection> 
	<selection name="3words" value="3 words buffered"></selection> 
	<selection name="4words" value="4 words buffered"></selection> 
</dialogConfig>
<userAction name="4words">
	<claimResource type="register" registerField="BLEN0" value="1"></claimResource>
	<claimResource type="register" registerField="BLEN1" value="1"></claimResource>
</userAction>
<userAction name="3words">
	<claimResource type="register" registerField="BLEN0" value="0"></claimResource>
	<claimResource type="register" registerField="BLEN1" value="1"></claimResource>
</userAction>
<userAction name="2words">
	<claimResource type="register" registerField="BLEN0" value="1"></claimResource>
	<claimResource type="register" registerField="BLEN1" value="0"></claimResource>
</userAction>
<userAction name="1word">
	<claimResource type="register" registerField="BLEN0" value="0"></claimResource>
	<claimResource type="register" registerField="BLEN1" value="0"></claimResource>
</userAction>
</userControl>

</userControlSubGroup>

<userControlSubGroup name="timeSlots" caption="Time Slots">

<userControl name="frameLength">
<dialogConfig type="CB" caption="Buffer length (words)">
	<selection name="setTo1" value="1 word"></selection> 
	<selection name="setTo2" value="2 words"></selection> 
	<selection name="setTo3" value="3 words"></selection> 
	<selection name="setTo4" value="4 words"></selection> 
	<selection name="setTo5" value="5 words"></selection> 
	<selection name="setTo6" value="6 words"></selection> 
	<selection name="setTo7" value="7 words"></selection> 
	<selection name="setTo8" value="8 words"></selection> 
	<selection name="setTo9" value="9 words"></selection> 
	<selection name="setTo10" value="10 words"></selection> 
	<selection name="setTo11" value="11 words"></selection> 
	<selection name="setTo12" value="12 words"></selection> 
	<selection name="setTo13" value="13 words"></selection> 
	<selection name="setTo14" value="14 words"></selection> 
	<selection name="setTo15" value="15 words"></selection> 
	<selection name="setTo16" value="16 words"></selection> 
</dialogConfig>
<userAction name="setTo16">
	<claimResource type="register" registerField="COFSG" value="1111"></claimResource>
</userAction>
<userAction name="setTo15">
	<claimResource type="register" registerField="COFSG" value="1110"></claimResource>
</userAction>
<userAction name="setTo14">
	<claimResource type="register" registerField="COFSG" value="1101"></claimResource>
</userAction>
<userAction name="setTo13">
	<claimResource type="register" registerField="COFSG" value="1100"></claimResource>
</userAction>
<userAction name="setTo12">
	<claimResource type="register" registerField="COFSG" value="1011"></claimResource>
</userAction>
<userAction name="setTo11">
	<claimResource type="register" registerField="COFSG" value="1010"></claimResource>
</userAction>
<userAction name="setTo10">
	<claimResource type="register" registerField="COFSG" value="1001"></claimResource>
</userAction>
<userAction name="setTo9">
	<claimResource type="register" registerField="COFSG" value="1000"></claimResource>
</userAction>
<userAction name="setTo8">
	<claimResource type="register" registerField="COFSG" value="0111"></claimResource>
</userAction>
<userAction name="setTo7">
	<claimResource type="register" registerField="COFSG" value="0110"></claimResource>
</userAction>
<userAction name="setTo6">
	<claimResource type="register" registerField="COFSG" value="0101"></claimResource>
</userAction>
<userAction name="setTo5">
	<claimResource type="register" registerField="COFSG" value="0100"></claimResource>
</userAction>
<userAction name="setTo4">
	<claimResource type="register" registerField="COFSG" value="0011"></claimResource>
</userAction>
<userAction name="setTo3">
	<claimResource type="register" registerField="COFSG" value="0010"></claimResource>
</userAction>
<userAction name="setTo2">
	<claimResource type="register" registerField="COFSG" value="0001"></claimResource>
</userAction>
<userAction name="setTo1">
	<claimResource type="register" registerField="COFSG" value="0000"></claimResource>
</userAction>
</userControl>

<userControl name="slotTX%indexControl%" range="15">
<dialogConfig type="BoxCK" caption="Slot TX %indexControl%"></dialogConfig>
<userAction name="enable">
	<claimResource type="register" registerField="TSE%indexControl%" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="TSE%indexControl%" value="0"></claimResource>
</userAction>
</userControl>

<userControl name="slotRX%indexControl%" range="15">
<dialogConfig type="BoxCK" caption="Slot RX %indexControl%"></dialogConfig>
<userAction name="enable">
	<claimResource type="register" registerField="RSE%indexControl%" value="1"></claimResource>
</userAction>
<userAction name="disable">
	<claimResource type="register" registerField="RSE%indexControl%" value="0"></claimResource>
</userAction>
</userControl>

</userControlSubGroup>

</userControlGroup>

</featureDefinitions>
