2008-08-05 17:30:47 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								! Small library for cross-platform continuous functions of real time
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								USING: kernel shuffle system locals
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								prettyprint math io namespaces threads calendar ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-10 19:22:32 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								IN: animations
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-05 17:30:47 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								SYMBOL: last-loop
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-10 19:22:32 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								SYMBOL: sleep-period
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-05 17:30:47 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: reset-progress ( -- ) millis last-loop set ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-12 00:28:22 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								! : my-progress ( -- progress ) millis 
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-05 17:30:47 -04:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: progress ( -- progress ) millis last-loop get - reset-progress ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-12 00:28:22 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								: progress-peek ( -- progress ) millis last-loop get - ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-09-01 21:09:51 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								: set-end ( duration -- end-time ) duration>milliseconds millis + ;
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-10 19:22:32 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								: loop ( quot end -- ) dup millis > [ [ dup call ] dip loop ] [ 2drop ] if ; inline
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: animate ( quot duration -- ) reset-progress set-end loop ; inline
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								: sample ( revs quot -- avg ) reset-progress dupd times progress swap / ; inline
							 |