From 56de83beef6301709d680eb4968ff50f70a76f7c Mon Sep 17 00:00:00 2001 From: Nicolai Seerup Date: Tue, 6 Jun 2017 22:03:51 +0200 Subject: [PATCH] add extra options to just return samples array without saving file --- lib/waveform.rb | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/waveform.rb b/lib/waveform.rb index 7619cd0..5238874 100644 --- a/lib/waveform.rb +++ b/lib/waveform.rb @@ -15,7 +15,9 @@ class Waveform :background_color => "#666666", :color => "#00ccff", :force => false, - :logger => nil + :logger => nil, + :return_samples => false, + :save_file => true } TransparencyMask = "#00ff00" @@ -98,20 +100,24 @@ def generate(source, filename, options={}) samples = frames(source, options[:width], options[:method]).collect do |frame| frame.inject(0.0) { |sum, peak| sum + peak } / frame.size end + + unless options[:save_file] == false + @log.timed("\nDrawing...") do + # Don't remove the file even if force is true until we're sure the + # source was readable + if File.exists?(filename) && options[:force] === true + @log.out("Output file #{filename} encountered. Removing.") + File.unlink(filename) + end - @log.timed("\nDrawing...") do - # Don't remove the file even if force is true until we're sure the - # source was readable - if File.exists?(filename) && options[:force] === true - @log.out("Output file #{filename} encountered. Removing.") - File.unlink(filename) + image = draw samples, options + image.save filename end - - image = draw samples, options - image.save filename end @log.done!("Generated waveform '#{filename}'") + + samples if options[:return_samples] == true end private