changeset 146:cb5ab186f146

Cleaner to throw exception on file-open failure rather than unwind errors through return values here
author Chris Cannam
date Sat, 27 Apr 2013 17:09:48 +0100
parents 3ffd7e25e3df
children e16e42c55a20
files yetilab/feature/features.yeti yetilab/stream/audiofile.yeti yetilab/stream/framer.yeti yetilab/stream/playback.yeti yetilab/vamp/vamp.yeti
diffstat 5 files changed, 24 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/yetilab/feature/features.yeti	Sat Apr 27 14:12:15 2013 +0100
+++ b/yetilab/feature/features.yeti	Sat Apr 27 17:09:48 2013 +0100
@@ -20,12 +20,8 @@
     featuresOf (emptyFrameFor frames) frames);
 
 featuresOfFile featureFunc file =
-    case fr.frequencyDomainFramesOfFile { framesize = 1024, hop = 512 } file of
-    Frames ff:
-        Features (features featureFunc ff);
-    Error e:
-        Error e;
-    esac;
+    features featureFunc 
+       (fr.frequencyDomainFramesOfFile { framesize = 1024, hop = 512 } file);
 
 {
     specdiff,
--- a/yetilab/stream/audiofile.yeti	Sat Apr 27 14:12:15 2013 +0100
+++ b/yetilab/stream/audiofile.yeti	Sat Apr 27 17:09:48 2013 +0100
@@ -91,27 +91,23 @@
     stream#close();
 
 open name is string -> 'a = 
-    try
-        f = new File(name);
-        stream = AudioSystem#getAudioInputStream(f);
-        format = stream#getFormat();
-        len = available' { format, stream }; // at start of stream
-        Stream (str.stream {
-            stream,
-            format,
-            len,
-            rate = format#getSampleRate(),
-            channels = format#getChannels(),
-            get position () = len - available' { stream, format },
-            get available () = available' { stream, format },
-            read = read' { stream, format },
-            readInterleaved = readInterleaved' { stream, format },
-            readMono = readMono' { stream, format },
-            close () = close' { stream },
-        });
-    catch Exception e:
-        Error "Failed to open audio file \"\(name)\": \(e)";
-    yrt;
+   (f = new File(name);
+    stream = AudioSystem#getAudioInputStream(f);
+    format = stream#getFormat();
+    len = available' { format, stream }; // at start of stream
+    str.stream {
+        stream,
+        format,
+        len,
+        rate = format#getSampleRate(),
+        channels = format#getChannels(),
+        get position () = len - available' { stream, format },
+        get available () = available' { stream, format },
+        read = read' { stream, format },
+        readInterleaved = readInterleaved' { stream, format },
+        readMono = readMono' { stream, format },
+        close () = close' { stream },
+    });
 
 {
     open
--- a/yetilab/stream/framer.yeti	Sat Apr 27 14:12:15 2013 +0100
+++ b/yetilab/stream/framer.yeti	Sat Apr 27 17:09:48 2013 +0100
@@ -63,21 +63,12 @@
     frequencyDomainFrames,
 
     framesOfFile parameters filename =
-        case af.open filename of
-        Stream s: Frames (frames parameters s);
-        Error e: Error e;
-        esac,
+        frames parameters (af.open filename),
 
     windowedFramesOfFile parameters filename = 
-        case af.open filename of
-        Stream s: Frames (windowedFrames parameters s);
-        Error e: Error e;
-        esac,
+        windowedFrames parameters (af.open filename),
 
     frequencyDomainFramesOfFile parameters filename = 
-        case af.open filename of
-        Stream s: Frames (frequencyDomainFrames parameters s);
-        Error e: Error e;
-        esac,
+        frequencyDomainFrames parameters (af.open filename),
 }
 
--- a/yetilab/stream/playback.yeti	Sat Apr 27 14:12:15 2013 +0100
+++ b/yetilab/stream/playback.yeti	Sat Apr 27 17:09:48 2013 +0100
@@ -48,10 +48,7 @@
     stream.close());
 
 playFile filename = 
-    case af.open filename of
-    Stream str: playStream str;
-    Error e: failWith e
-    esac;
+    playStream (af.open filename);
 
 {
     open, play, playStream, playFile,
--- a/yetilab/vamp/vamp.yeti	Sat Apr 27 14:12:15 2013 +0100
+++ b/yetilab/vamp/vamp.yeti	Sat Apr 27 17:09:48 2013 +0100
@@ -307,10 +307,7 @@
     esac;
 
 processFile key output filename = 
-    case af.open filename of
-    Stream s: processStream key output s;
-    Error e: failWith e;
-    esac;
+    processStream key output (af.open filename);
 
 processStreamStructured key output filename =
     vamppost.postprocess (processStream key output filename);