diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-10-15 07:36:37 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-10-15 07:36:37 +0000 |
commit | 1c77d0d7c414d43f751eeb308a1a47d87de6cc1e (patch) | |
tree | 890759d20f789b7f5f34d8e5b71ff09a8c7bedb4 /lib/dtas | |
parent | bbd2a006152cce4e5fa28bb2793d239ebdfdb491 (diff) | |
download | dtas-1c77d0d7c414d43f751eeb308a1a47d87de6cc1e.tar.gz |
This will be dependent upon sox for the trim effect, at least. Other bits will be exposed as needed.
Diffstat (limited to 'lib/dtas')
-rw-r--r-- | lib/dtas/trimfx.rb | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/lib/dtas/trimfx.rb b/lib/dtas/trimfx.rb index 5cfac26..cbb2fa6 100644 --- a/lib/dtas/trimfx.rb +++ b/lib/dtas/trimfx.rb @@ -22,7 +22,13 @@ class DTAS::TrimFX def to_sox_arg(format) if @tbeg && @tlen - %W(trim #{@tbeg * format.rate}s #{@tlen * format.rate}s) + beg = @tbeg * format.rate + len = @tlen * format.rate + %W(trim #{beg.round}s #{len.round}s) + elsif @tbeg + return [] if @tbeg == 0 + beg = @tbeg * format.rate + %W(trim #{beg.round}s) else [] end @@ -55,11 +61,15 @@ class DTAS::TrimFX def parse_trim!(args) tbeg = parse_time(args.shift) - tlen = args.shift - is_stop_time = tlen.sub!(/\A=/, "") ? true : false - tlen = parse_time(tlen) - if is_stop_time - tlen = tlen - tbeg + if args[0] =~ /\A=?[\d\.]+\z/ + tlen = args.shift + is_stop_time = tlen.sub!(/\A=/, "") ? true : false + tlen = parse_time(tlen) + if is_stop_time + tlen = tlen - tbeg + end + else + tlen = nil end @tbeg = tbeg @tlen = tlen |