changeset 83:6c1a82e322e4

A tiny bit more towards structured output
author Chris Cannam
date Sun, 17 Mar 2013 12:20:04 +0000
parents 40f6a7910421
children c1c99f26d1fc
files vamp.yeti
diffstat 1 files changed, 31 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/vamp.yeti	Sat Mar 16 22:00:25 2013 +0000
+++ b/vamp.yeti	Sun Mar 17 12:20:04 2013 +0000
@@ -264,15 +264,35 @@
     Error e: Error e;
     esac;
 
-structuredProcessor plugin outputNo =
-    id; //!!! fill in!
+structureArranger plugin outputNo results =
+    case results of
+    OK data:
+        case plugin.outputs[outputNo].inferredStructure of
+        Curve ():
+            Curve data;
+        Grid ():
+            Grid data;
+        Instants ():
+            Instants data;
+        Notes ():
+            Notes data;
+        Regions ():
+            Regions data;
+        Segmentation ():
+            Segmentation data;
+        Unknown ():
+            Unknown data;
+        esac;
+    Error e:
+        Error e;
+    esac;
 
 processStructured key output stream =
     case loadPlugin stream.sampleRate key of
     OK p:
         outputNo = outputNumberByName p output;
         if outputNo >= 0 then  //??? exception better?
-            arranger = structuredProcessor p outputNo;
+            arranger = structureArranger p outputNo;
             arranger (processWith key p outputNo stream);
         else
             returnErrorFrom p stream "Plugin \(key) has no output named \(output) (outputs are \(outputsOf p))"
@@ -286,6 +306,12 @@
     Error e: Error e;
     esac;
 
+processFileStructured key output filename = 
+    case af.open filename of
+    Stream s: processStructured key output s;
+    Error e: Error e;
+    esac;
+
 {
 get pluginPath = getPluginPath,
 get pluginKeys = listPlugins,
@@ -293,5 +319,7 @@
 categoryOf,
 process,
 processFile,
+processStructured,
+processFileStructured,
 }