<?xml version="1.0" ?>
<pipeline ssi-v="1">
	
	<!-- register dlls -->
	
	<register>
		<load name="ioput"/>
		<load name="mouse"/>
		<load name="graphic"/>
		<load name="control"/>
	</register>
	
	<framework sync="true" slisten="true" sport="1234"/>	
	
	<!-- sensors -->
	
	<sensor create="Mouse" mask="1">
		<output channel="cursor" pin="cursor" />
	</sensor>	
	
	<runnable create="ClockEventSender" address="tick@clock" clock="1000"/>	
	

	<!-- storage

	use unique file names
	
	-->
	
	<consumer create="FileWriter" path="record/cursor" overwrite="false">
		<input pin="cursor" frame="0.2s" />
	</consumer>	
	<consumer create="FileAnnotationWriter" defaultSchemeName="cursor" path="record/cursor" overwrite="false">
		<input pin="cursor" frame="0.2s"/>
	</consumer>				
	<object create="FileAnnotationWriter" defaultSchemeName="clock" addUnkownLabel="true" eventNameAsLabel="true" path="record/clock" overwrite="false">
		<listen address="tick@clock"/>
	</object>
	
	<!--storage -->
	
	
	<!-- storage
	
	record on demand, receives notifications from a socket connection
	
	-->
	
	<runnable create="NotifyReceiver:receiver" id="plot*,writer*" url="udp://255.255.255.255:1111"/>
	
	<consumer create="FileWriter:writer" path="record/$(num,2)/cursor" overwrite="false">
		<input pin="cursor" frame="0.2s" />
	</consumer>
	<consumer create="FileAnnotationWriter:writer" defaultSchemeName="cursor" path="record/$(num,2)/cursor" overwrite="false">
		<input pin="cursor" frame="0.2s"/>
	</consumer>			
	<object create="FileAnnotationWriter:writer" defaultSchemeName="clock" addUnkownLabel="true" eventNameAsLabel="true" path="record/$(num,2)/clock" overwrite="false">
		<listen address="tick@clock"/>
	</object>

	<!-- visualization 	-->
	
	<consumer create="SignalPainter:plot" title="cursor" size="10.0">
		<input pin="cursor" frame="0.2s" />		
	</consumer>		
	<object create="EventMonitor:monitor">
		<listen address="@"/>
	</object>
	
	
	<object create="Decorator" icon="true" title="Pipeline" origin="400,0">
		<area pos="0,0,400,600">console</area>		
		<area pos="400,0,400,600" nh="1">plot*</area>		
		<area pos="800,0,400,600" nh="1">monitor</area>		
	</object>
	
	<!-- start message -->

	<message text="
	
TO START RECORDING 
RUN PIPELINE 'TOGGLE'	

	"/>		

</pipeline>