<?xml version="1.0" ?>
<pipeline ssi-v="1">

	<!-- Plug-ins -->
	<register>		
		<load name="mouse"/>
		<load name="graphic"/>
		<load name="signal"/>
	</register>

	<!-- Sensor -->
	<sensor create="Mouse:mouse" option="mouse" sr="50.0" mask="1">		
		<output channel="cursor" pin="pos"/>
	</sensor>

	<!-- Moving Average (Filter)

	Calculates the moving average for a window of 5 seconds.

	-->
	<transformer create="MvgAvgVar" win="5.0" format="1">
		<input pin="pos" frame="0.1s" async="false"/>
		<output pin="pos-avg"/>
	</transformer>
	<transformer create="MvgAvgVar" win="5.0" format="1">
		<input pin="pos" frame="0.1s" async="true"/>
		<output pin="pos-avg-async"/>
	</transformer>
	
	<!-- Visualization 	-->
	<consumer create="SignalPainter:plot" title="RAW" size="10.0">
		<input pin="pos" frame="0.2s" />		
	</consumer>			
	<consumer create="SignalPainter:plot-ex" title="AVG" size="10.0">
		<input pin="pos-avg" frame="0.2s" />		
	</consumer>	
	<consumer create="SignalPainter:plot-ex" title="AVG (async)" size="10.0">
		<input pin="pos-avg-async" frame="0.2s" />		
	</consumer>	

	<!-- Decoration -->
	<object create="Decorator" icon="true" title="Pipeline">
		<area pos="0,0,400,600">console</area>
		<area pos="400,0,400,300">plot</area>
		<area pos="400,300,400,300" nv="1">plot-ex*</area>
	</object>

</pipeline>