struct

(**

Description

L'unique fonction de ce module rejoue des messages MIDI enregistrés.

Copyright Stéphane Grognet
IREM des Pays de la Loire - Université de Nantes
Laboratoire de mathématiques Jean Leray UMR 6629 CNRS
version 0.8
@version 0.8 @author Stéphane Grognet @since 2014 *)


let perroquet = fun () ->
 let date = ref 0.
 and estampille = ref 0.
 and ligne = ref ""
 and echeance = ref 0.
 and depart = Unix.gettimeofday ()
 and condition = ref true in
  while true do
   ligne := read_line () ;
   if !ligne.[0] = '*' then
    begin
     ligne := read_line () ;
     estampille := float_of_string !ligne ;
     echeance := depart +. !estampille ;
     date := Unix.gettimeofday () ;
     condition := !echeance > !date ;
     while !condition do
      Data.passe_temps () ;
      date := Unix.gettimeofday () ;
      condition := !echeance > !date ;
     done ;
    end
   else
    output_byte stdout ( int_of_string !ligne ) ;
  done ;;

try
 perroquet ()
with _ ->
 () ;;

end