# HG changeset patch # User Chris Cannam # Date 1400589362 -3600 # Node ID aca6a6604fdc06a9dd636b797361ca8025761766 # Parent d72c054fc8bf3a4cf30d54cd7791772cd4c5130c Add read-all diff -r d72c054fc8bf -r aca6a6604fdc src/may/stream/readall.yeti --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/may/stream/readall.yeti Tue May 20 13:36:02 2014 +0100 @@ -0,0 +1,26 @@ + +module may.stream.readall; + +load may.stream.type; + +mat = load may.matrix; +af = load may.stream.audiofile; + +readAll stream = + case stream.available of + Known n: stream.read n; + _: failWith "Cannot readAll from infinite or unknown-duration stream"; + esac; + +//!!! todo: use openWith (when available!) +readAllFrom filename = + (str = af.open filename; + mat = readAll str; + str.close (); + mat); + +{ + readAll is stream_t -> mat.matrix_t, + readAllFrom is string -> mat.matrix_t, +} +