audio-playback 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +9 -1
- data/bin/playback +8 -1
- data/lib/audio-playback.rb +11 -5
- data/lib/audio-playback/commandline.rb +27 -1
- data/lib/audio-playback/device.rb +3 -3
- data/lib/audio-playback/device/output.rb +5 -5
- data/lib/audio-playback/device/stream.rb +44 -19
- data/lib/audio-playback/playback.rb +127 -21
- data/lib/audio-playback/playback/frame.rb +8 -8
- data/lib/audio-playback/playback/frame_set.rb +3 -3
- data/lib/audio-playback/playback/mixer.rb +8 -8
- data/lib/audio-playback/playback/stream_data.rb +35 -10
- data/lib/audio-playback/position.rb +89 -0
- data/test/device/output_test.rb +4 -4
- data/test/playback/stream_data_test.rb +97 -9
- data/test/playback_test.rb +258 -2
- data/test/position_test.rb +167 -0
- metadata +6 -4
@@ -0,0 +1,167 @@
|
|
1
|
+
require "helper"
|
2
|
+
|
3
|
+
class AudioPlayback::PositionTest < Minitest::Test
|
4
|
+
|
5
|
+
context "Position" do
|
6
|
+
|
7
|
+
context "#initialize" do
|
8
|
+
|
9
|
+
context "invalid" do
|
10
|
+
|
11
|
+
context "invalid number" do
|
12
|
+
|
13
|
+
should "raise exception if min above 60" do
|
14
|
+
assert_raises AudioPlayback::Position::InvalidTime do
|
15
|
+
AudioPlayback::Position.new("123:78:34.45")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
should "raise exception if seconds above 60" do
|
20
|
+
assert_raises AudioPlayback::Position::InvalidTime do
|
21
|
+
AudioPlayback::Position.new("123:45:89.45")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
context "other characters" do
|
28
|
+
|
29
|
+
should "raise exception" do
|
30
|
+
assert_raises AudioPlayback::Position::InvalidTime do
|
31
|
+
AudioPlayback::Position.new("kdjfdkdj")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
context "valid" do
|
40
|
+
|
41
|
+
context "has seconds integer" do
|
42
|
+
|
43
|
+
should "populate ss" do
|
44
|
+
position = AudioPlayback::Position.new("12")
|
45
|
+
assert_equal 12.0, position.to_seconds
|
46
|
+
end
|
47
|
+
|
48
|
+
should "populate m:ss" do
|
49
|
+
position = AudioPlayback::Position.new("3:45")
|
50
|
+
assert_equal 225.0, position.to_seconds
|
51
|
+
end
|
52
|
+
|
53
|
+
should "populate mm:ss" do
|
54
|
+
position = AudioPlayback::Position.new("06:07")
|
55
|
+
assert_equal 367.0, position.to_seconds
|
56
|
+
end
|
57
|
+
|
58
|
+
should "populate h:mm:ss" do
|
59
|
+
position = AudioPlayback::Position.new("8:09:10")
|
60
|
+
assert_equal 29350.0, position.to_seconds
|
61
|
+
end
|
62
|
+
|
63
|
+
should "populate hh:mm:ss" do
|
64
|
+
position = AudioPlayback::Position.new("11:12:13")
|
65
|
+
assert_equal 40333.0, position.to_seconds
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
context "has seconds float" do
|
71
|
+
|
72
|
+
context "one digit" do
|
73
|
+
|
74
|
+
should "populate ss.s" do
|
75
|
+
position = AudioPlayback::Position.new("01.2")
|
76
|
+
assert_equal 1.2, position.to_seconds
|
77
|
+
end
|
78
|
+
|
79
|
+
should "populate m:ss.s" do
|
80
|
+
position = AudioPlayback::Position.new("3:45.6")
|
81
|
+
assert_equal 225.6, position.to_seconds
|
82
|
+
end
|
83
|
+
|
84
|
+
should "populate mm:ss.s" do
|
85
|
+
position = AudioPlayback::Position.new("07:59.1")
|
86
|
+
assert_equal 479.1, position.to_seconds
|
87
|
+
end
|
88
|
+
|
89
|
+
should "populate h:mm:ss.s" do
|
90
|
+
position = AudioPlayback::Position.new("1:23:45.6")
|
91
|
+
assert_equal 5025.6, position.to_seconds
|
92
|
+
end
|
93
|
+
|
94
|
+
should "populate hh:mm:ss.s" do
|
95
|
+
position = AudioPlayback::Position.new("12:34:56.7")
|
96
|
+
assert_equal 45296.7, position.to_seconds
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
context "two digit" do
|
102
|
+
|
103
|
+
should "populate ss.ss" do
|
104
|
+
position = AudioPlayback::Position.new("01.23")
|
105
|
+
assert_equal 1.23, position.to_seconds
|
106
|
+
end
|
107
|
+
|
108
|
+
should "populate m:ss.ss" do
|
109
|
+
position = AudioPlayback::Position.new("3:45.76")
|
110
|
+
assert_equal 225.76, position.to_seconds
|
111
|
+
end
|
112
|
+
|
113
|
+
should "populate mm:ss.ss" do
|
114
|
+
position = AudioPlayback::Position.new("07:59.12")
|
115
|
+
assert_equal 479.12, position.to_seconds
|
116
|
+
end
|
117
|
+
|
118
|
+
should "populate h:mm:ss.ss" do
|
119
|
+
position = AudioPlayback::Position.new("1:23:45.67")
|
120
|
+
assert_equal 5025.67, position.to_seconds
|
121
|
+
end
|
122
|
+
|
123
|
+
should "populate hh:mm:ss.ss" do
|
124
|
+
position = AudioPlayback::Position.new("12:34:56.78")
|
125
|
+
assert_equal 45296.78, position.to_seconds
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
context "three+ digits" do
|
131
|
+
|
132
|
+
should "populate ss.ss" do
|
133
|
+
position = AudioPlayback::Position.new("01.234")
|
134
|
+
assert_equal 1.234, position.to_seconds
|
135
|
+
end
|
136
|
+
|
137
|
+
should "populate m:ss.ss" do
|
138
|
+
position = AudioPlayback::Position.new("3:45.678")
|
139
|
+
assert_equal 225.678, position.to_seconds
|
140
|
+
end
|
141
|
+
|
142
|
+
should "populate mm:ss.ss" do
|
143
|
+
position = AudioPlayback::Position.new("07:39.123")
|
144
|
+
assert_equal 459.123, position.to_seconds
|
145
|
+
end
|
146
|
+
|
147
|
+
should "populate h:mm:ss.ss" do
|
148
|
+
position = AudioPlayback::Position.new("1:23:45.678")
|
149
|
+
assert_equal 5025.678, position.to_seconds
|
150
|
+
end
|
151
|
+
|
152
|
+
should "populate hh:mm:ss.ss" do
|
153
|
+
position = AudioPlayback::Position.new("12:34:56.789")
|
154
|
+
assert_equal 45296.789, position.to_seconds
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: audio-playback
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ari Russo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -172,6 +172,7 @@ files:
|
|
172
172
|
- lib/audio-playback/playback/frame_set.rb
|
173
173
|
- lib/audio-playback/playback/mixer.rb
|
174
174
|
- lib/audio-playback/playback/stream_data.rb
|
175
|
+
- lib/audio-playback/position.rb
|
175
176
|
- lib/audio-playback/sound.rb
|
176
177
|
- test/device/output_test.rb
|
177
178
|
- test/device/stream_test.rb
|
@@ -188,10 +189,11 @@ files:
|
|
188
189
|
- test/playback/mixer_test.rb
|
189
190
|
- test/playback/stream_data_test.rb
|
190
191
|
- test/playback_test.rb
|
192
|
+
- test/position_test.rb
|
191
193
|
- test/sound_test.rb
|
192
194
|
homepage: http://github.com/arirusso/audio-playback
|
193
195
|
licenses:
|
194
|
-
- Apache
|
196
|
+
- Apache-2.0
|
195
197
|
metadata: {}
|
196
198
|
post_install_message:
|
197
199
|
rdoc_options: []
|
@@ -209,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
211
|
version: 1.3.6
|
210
212
|
requirements: []
|
211
213
|
rubyforge_project: audio-playback
|
212
|
-
rubygems_version: 2.
|
214
|
+
rubygems_version: 2.6.8
|
213
215
|
signing_key:
|
214
216
|
specification_version: 4
|
215
217
|
summary: Command Line/Ruby Audio File Player
|