<?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>
	
	<!-- Down sampling 
	
		Keeps only every n'th sample in the input stream.
	
	-->
	<transformer create="DownSample" keep="3">
		<input pin="pos" frame="9"/>
		<output pin="pos-down"/>
	</transformer>
	
	<!-- Energy (Feature)
	
		For each dimension in the input stream calculate energy within a moving window ( = frame + delta).
	
	-->
	<transformer create="Energy">
		<input pin="pos" frame="0.1s" delta="400ms"/>
		<output pin="pos-energy"/>
	</transformer>

	<!-- 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"/>
		<output pin="pos-avg"/>
	</transformer>
	
	<!-- Visualization 	-->
	<consumer create="SignalPainter:plot" title="RAW" size="10.0">
		<input pin="pos" frame="0.2s" />		
	</consumer>		
	<consumer create="SignalPainter:plot-ex" title="DOWN" size="10.0">
		<input pin="pos-down" frame="0.2s" />		
	</consumer>		
	<consumer create="SignalPainter:plot-ex" title="ENERGY" size="10.0">
		<input pin="pos-energy" frame="0.2s" />		
	</consumer>		
	<consumer create="SignalPainter:plot-ex" title="AVG" size="10.0">
		<input pin="pos-avg" 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" nh="3">plot-ex*</area>
	</object>

</pipeline>