Add abstrat type matrix and data.
[Faustine.git] / interpretor / types.ml
index 89f1e5f..0b7cfde 100644 (file)
@@ -22,6 +22,7 @@ class type value_type =
     method to_int : int
     method to_float : float
     method to_float_array : float array
+    method of_float_array : float array -> value_type
     method to_string : string
     method normalize : unit
     method add : value_type -> value_type
@@ -41,6 +42,8 @@ class type value_type =
     method _mod : value_type -> value_type
     method larger : value_type -> value_type
     method smaller : value_type -> value_type
+    method max : value_type -> value_type
+    method min : value_type -> value_type
   end;;
 
 
@@ -67,6 +70,8 @@ type symbol = Add
            | Serialize
            | Larger
            | Smaller
+           | Max
+           | Min
            | Prefix
            | Select2
            | Select3
@@ -82,9 +87,21 @@ type faust_exp =
        | Merge of faust_exp * faust_exp
 
 
+class type rate_type = 
+  object
+    method to_int : int
+    method to_float : float 
+    method to_string : string
+    method num : int
+    method denom : int
+    method equal : rate_type -> bool
+    method mul : int -> rate_type
+    method div : int -> rate_type
+  end
+
 class type signal_type = 
     object
-      method frequency : int
+      method frequency : rate_type
       method at : time -> value_type
       method add_memory : int -> unit
       method add : signal_type -> signal_type
@@ -108,12 +125,17 @@ class type signal_type =
       method _mod : signal_type -> signal_type
       method larger : signal_type -> signal_type
       method smaller : signal_type -> signal_type
+      method max : signal_type -> signal_type
+      method min : signal_type -> signal_type
       method rdtable : signal_type -> signal_type -> signal_type
       method select2 : signal_type -> signal_type -> signal_type
       method select3 : signal_type -> signal_type -> signal_type -> signal_type
       method prefix : signal_type -> signal_type
     end;;
 
+type matrix = float array array;;
+
+type data = float array array array;;
 
 class type beam_type =
     object
@@ -124,8 +146,8 @@ class type beam_type =
       method append : beam_type -> beam_type
       method matching : int -> beam_type
       method at : time -> value_type array
-      method output : int -> value_type array array
-      method frequency : int array
+      method output : int -> data
+      method frequency : rate_type array
     end;;
 
 
@@ -152,6 +174,7 @@ class type process_type =
 
 class type io_type = 
     object
+      method set : string -> string -> unit
       method read : string array -> beam_type
-      method write : int array -> value_type array array -> string array
+      method write : rate_type array -> data -> string array
     end;;