# HG changeset patch # User Chris Cannam # Date 1363522804 0 # Node ID 6c1a82e322e4e908888d237af4bb6f64a08a27fa # Parent 40f6a7910421a7fe23b3cfb4f431db86cfa9953a A tiny bit more towards structured output diff -r 40f6a7910421 -r 6c1a82e322e4 vamp.yeti --- 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, }