wait_up 0.0.1 → 0.1.1
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 +5 -5
- data/Changelog.md +17 -0
- data/README.md +2 -2
- data/bin/wait_up +3 -1
- data/bin/wait_up-cli +6 -6
- data/lib/wait_up/application.rb +32 -18
- data/lib/wait_up/pipeline.rb +38 -21
- data/lib/wait_up/version.rb +5 -0
- data/lib/wait_up.rb +4 -1
- metadata +85 -46
- data/Gemfile +0 -3
- data/Rakefile +0 -23
- data/test/end_to_end/basic_run_test.rb +0 -27
- data/test/test_helper.rb +0 -1
- data/test/unit/pipeline_test.rb +0 -78
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bca5586ce3b259683495e20c1d499ad45f54f2a8e254380a9d7dfbbdaef72e9e
|
4
|
+
data.tar.gz: bfd361ad4ae092f963218494a5ac7116e802b65426e5b27b23e699c9a5e4d397
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88fd80e6b065930a4cf7fc7af48cc253c7d6c6d53a7879a1aa07f236c8ba332242e4372fb99747bfa4b196dc6f09e983acf82379c45e92966de4751f821c77fd
|
7
|
+
data.tar.gz: 4da0e9a043949cc36f6834ea6b2cd78895c3e0119fb08fa92bde8e2b6dace9b299b5b23a29cf0344ca24bce7622d813d9e9a3da653f078b93e1703b9727d1e9e
|
data/Changelog.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
+
## 0.1.1 2021-01-21
|
4
|
+
|
5
|
+
* Support Rubies 2.7 through 3.1
|
6
|
+
* Update dependencies
|
7
|
+
|
8
|
+
## 0.1.0 2017-04-25
|
9
|
+
|
10
|
+
* Port to Ruby-GNOME2
|
11
|
+
|
12
|
+
## 0.0.3 2017-04-25
|
13
|
+
|
14
|
+
* Update dependencies
|
15
|
+
|
16
|
+
## 0.0.2 2016-03-28
|
17
|
+
|
18
|
+
* Update dependencies
|
19
|
+
|
3
20
|
## 0.0.1 2016-02-05
|
4
21
|
|
5
22
|
* Initial release
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Play sound files slowly so you can follow along.
|
4
4
|
|
5
|
-
This will be a port of playitslowly to Ruby +
|
5
|
+
This will be a port of playitslowly to Ruby + Ruby-GNOME2.
|
6
6
|
|
7
7
|
## Usage
|
8
8
|
|
@@ -48,5 +48,5 @@ If you want to run the tests, you may need to install additional packages:
|
|
48
48
|
|
49
49
|
## License
|
50
50
|
|
51
|
-
Copyright © 2015–
|
51
|
+
Copyright © 2015–2017 [Matijs van Zuijlen](http://www.matijs.net).
|
52
52
|
See LICENSE for details.
|
data/bin/wait_up
CHANGED
data/bin/wait_up-cli
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "wait_up/pipeline"
|
3
5
|
|
4
6
|
unless ARGV.length == 2
|
5
|
-
warn
|
7
|
+
warn "Usage: wait_up-cli [file] [tempo]"
|
6
8
|
exit 1
|
7
9
|
end
|
8
10
|
filename = ARGV[0]
|
@@ -16,11 +18,9 @@ mainloop = GLib::MainLoop.new(GLib::MainContext.default, true)
|
|
16
18
|
bus = pipeline.play_bin.bus
|
17
19
|
bus.add_signal_watch
|
18
20
|
|
19
|
-
bus.signal_connect
|
21
|
+
bus.signal_connect "message" do |_bus, message, _ud|
|
20
22
|
case message.type
|
21
|
-
when
|
22
|
-
mainloop.quit
|
23
|
-
when :eos
|
23
|
+
when Gst::MessageType::ERROR, Gst::MessageType::EOS
|
24
24
|
mainloop.quit
|
25
25
|
end
|
26
26
|
end
|
data/lib/wait_up/application.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "gtk3"
|
2
4
|
|
3
5
|
module WaitUp
|
4
6
|
# Main Wait Up application class
|
@@ -19,47 +21,59 @@ module WaitUp
|
|
19
21
|
end
|
20
22
|
|
21
23
|
def connect_destroy_signal
|
22
|
-
@win.signal_connect(
|
24
|
+
@win.signal_connect("destroy") { Gtk.main_quit }
|
23
25
|
end
|
24
26
|
|
25
27
|
def connect_key_press_event_signal
|
26
|
-
@win.signal_connect
|
27
|
-
handle_key(evt) if evt.state
|
28
|
+
@win.signal_connect "key-press-event" do |_wdg, evt, _ud|
|
29
|
+
handle_key(evt) if evt.state.control_mask?
|
28
30
|
false
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
32
34
|
def handle_key(evt)
|
33
35
|
case evt.keyval
|
34
|
-
when
|
36
|
+
when "q".ord
|
35
37
|
@win.destroy
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
39
41
|
def connect_slide_signal
|
40
|
-
|
42
|
+
timeline.signal_connect "format-value" do |_scale, value, _user_data|
|
41
43
|
">#{value}<"
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
47
|
def connect_file_chooser_signal
|
46
|
-
|
47
|
-
puts
|
48
|
+
chooser.signal_connect "file-set" do |_widget, _user_data|
|
49
|
+
puts chooser.filename
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
51
53
|
def setup_gui
|
52
54
|
@win = Gtk::Window.new :toplevel
|
53
|
-
@grid
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
@grid
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
55
|
+
@win.add grid
|
56
|
+
end
|
57
|
+
|
58
|
+
def grid
|
59
|
+
@grid ||=
|
60
|
+
Gtk::Grid.new.tap do |grid|
|
61
|
+
grid.orientation = :vertical
|
62
|
+
grid.add chooser
|
63
|
+
grid.add timeline
|
64
|
+
grid.add Gtk::VolumeButton.new
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def timeline
|
69
|
+
@timeline ||=
|
70
|
+
Gtk::Scale.new(:horizontal, 0.0, 10.0, 0.1).tap do |it|
|
71
|
+
it.hexpand = true
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def chooser
|
76
|
+
@chooser ||= Gtk::FileChooserButton.new("Hello!", :open)
|
63
77
|
end
|
64
78
|
end
|
65
79
|
end
|
data/lib/wait_up/pipeline.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "gstreamer"
|
2
4
|
|
3
5
|
module WaitUp
|
4
6
|
# Wait Up pipeline class
|
@@ -9,20 +11,10 @@ module WaitUp
|
|
9
11
|
@filename = filename
|
10
12
|
@tempo = tempo
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
sink_bin.add audiosink
|
15
|
-
sink_bin.add postconverter
|
16
|
-
sink_bin.add speed_changer
|
17
|
-
|
18
|
-
speed_changer.link_many [postconverter, audiosink]
|
14
|
+
fill_sink_bin
|
15
|
+
link_elements
|
19
16
|
|
20
|
-
|
21
|
-
sink_bin.add_pad sink_pad
|
22
|
-
|
23
|
-
play_bin.set_property 'audio-sink', GObject::Value.wrap_instance(sink_bin)
|
24
|
-
play_bin.set_state :paused
|
25
|
-
play_bin.get_state(-1)
|
17
|
+
set_up_play_bin
|
26
18
|
end
|
27
19
|
|
28
20
|
def play
|
@@ -30,29 +22,54 @@ module WaitUp
|
|
30
22
|
end
|
31
23
|
|
32
24
|
def play_bin
|
33
|
-
@play_bin ||= Gst::ElementFactory.make
|
25
|
+
@play_bin ||= Gst::ElementFactory.make "playbin", nil
|
34
26
|
end
|
35
27
|
|
36
28
|
def sink_bin
|
37
|
-
@sink_bin ||= Gst::Bin.new(
|
29
|
+
@sink_bin ||= Gst::Bin.new("sinkbin")
|
38
30
|
end
|
39
31
|
|
40
32
|
def speed_changer
|
41
|
-
@speed_changer ||= Gst::ElementFactory.make(
|
42
|
-
element.set_property
|
33
|
+
@speed_changer ||= Gst::ElementFactory.make("pitch", "speed changer").tap do |element|
|
34
|
+
element.set_property "tempo", tempo
|
43
35
|
end
|
44
36
|
end
|
45
37
|
|
46
38
|
def audiosink
|
47
|
-
@audiosink ||= Gst::ElementFactory.make(
|
39
|
+
@audiosink ||= Gst::ElementFactory.make("autoaudiosink", "audiosink")
|
48
40
|
end
|
49
41
|
|
50
42
|
def postconverter
|
51
|
-
@postconverter ||= Gst::ElementFactory.make(
|
43
|
+
@postconverter ||= Gst::ElementFactory.make("audioconvert", "postconverter")
|
52
44
|
end
|
53
45
|
|
54
46
|
def preconverter
|
55
|
-
@preconverter ||= Gst::ElementFactory.make(
|
47
|
+
@preconverter ||= Gst::ElementFactory.make("audioconvert", "preconverter")
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def fill_sink_bin
|
53
|
+
sink_bin.add audiosink
|
54
|
+
sink_bin.add postconverter
|
55
|
+
sink_bin.add speed_changer
|
56
|
+
sink_bin.add_pad speed_changer_ghost_pad
|
57
|
+
end
|
58
|
+
|
59
|
+
def speed_changer_ghost_pad
|
60
|
+
@speed_changer_ghost_pad ||= Gst::GhostPad.new "sink", speed_changer.sinkpads.first
|
61
|
+
end
|
62
|
+
|
63
|
+
def link_elements
|
64
|
+
speed_changer.link postconverter
|
65
|
+
postconverter.link audiosink
|
66
|
+
end
|
67
|
+
|
68
|
+
def set_up_play_bin
|
69
|
+
play_bin.set_property "uri", "file://#{File.absolute_path(filename)}"
|
70
|
+
play_bin.audio_sink = sink_bin
|
71
|
+
play_bin.state = :paused
|
72
|
+
play_bin.get_state(-1)
|
56
73
|
end
|
57
74
|
end
|
58
75
|
end
|
data/lib/wait_up.rb
CHANGED
metadata
CHANGED
@@ -1,160 +1,199 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wait_up
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: gstreamer
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.5.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.5.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: gtk3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 3.5.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 3.5.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: gnome_app_driver
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
48
|
-
type: :
|
47
|
+
version: 0.3.0
|
48
|
+
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.3.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.12'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '5.12'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '13.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '13.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: rake-manifest
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
89
|
+
version: 0.2.0
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
96
|
+
version: 0.2.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: rubocop
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
103
|
+
version: 1.25.0
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
110
|
+
version: 1.25.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: rubocop-minitest
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
117
|
+
version: 0.17.0
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
111
|
-
|
124
|
+
version: 0.17.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-packaging
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.5.0
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.5.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop-performance
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 1.13.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 1.13.0
|
153
|
+
description:
|
112
154
|
email:
|
113
155
|
- matijs@matijs.net
|
114
156
|
executables:
|
115
157
|
- wait_up
|
116
158
|
- wait_up-cli
|
117
159
|
extensions: []
|
118
|
-
extra_rdoc_files:
|
160
|
+
extra_rdoc_files:
|
161
|
+
- README.md
|
162
|
+
- Changelog.md
|
119
163
|
files:
|
120
164
|
- Changelog.md
|
121
|
-
- Gemfile
|
122
165
|
- LICENSE
|
123
166
|
- README.md
|
124
|
-
- Rakefile
|
125
167
|
- bin/wait_up
|
126
168
|
- bin/wait_up-cli
|
127
169
|
- lib/wait_up.rb
|
128
170
|
- lib/wait_up/application.rb
|
129
171
|
- lib/wait_up/pipeline.rb
|
130
|
-
-
|
131
|
-
- test/test_helper.rb
|
132
|
-
- test/unit/pipeline_test.rb
|
172
|
+
- lib/wait_up/version.rb
|
133
173
|
homepage: http://www.github.com/mvz/wait_up
|
134
174
|
licenses:
|
135
175
|
- MIT
|
136
|
-
metadata:
|
137
|
-
|
138
|
-
|
176
|
+
metadata:
|
177
|
+
rubygems_mfa_required: 'true'
|
178
|
+
post_install_message:
|
179
|
+
rdoc_options:
|
180
|
+
- "--main"
|
181
|
+
- README.md
|
139
182
|
require_paths:
|
140
183
|
- lib
|
141
184
|
required_ruby_version: !ruby/object:Gem::Requirement
|
142
185
|
requirements:
|
143
186
|
- - ">="
|
144
187
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
188
|
+
version: 2.7.0
|
146
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
190
|
requirements:
|
148
191
|
- - ">="
|
149
192
|
- !ruby/object:Gem::Version
|
150
193
|
version: '0'
|
151
194
|
requirements: []
|
152
|
-
|
153
|
-
|
154
|
-
signing_key:
|
195
|
+
rubygems_version: 3.3.3
|
196
|
+
signing_key:
|
155
197
|
specification_version: 4
|
156
198
|
summary: Play sound files slowly so you can follow along
|
157
|
-
test_files:
|
158
|
-
- test/test_helper.rb
|
159
|
-
- test/unit/pipeline_test.rb
|
160
|
-
- test/end_to_end/basic_run_test.rb
|
199
|
+
test_files: []
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'rake/clean'
|
2
|
-
require 'bundler/gem_tasks'
|
3
|
-
require 'rake/testtask'
|
4
|
-
|
5
|
-
namespace :test do
|
6
|
-
Rake::TestTask.new(:unit) do |t|
|
7
|
-
t.libs = ['lib']
|
8
|
-
t.test_files = FileList['test/unit/*_test.rb']
|
9
|
-
t.warning = true
|
10
|
-
end
|
11
|
-
|
12
|
-
Rake::TestTask.new(:end_to_end) do |t|
|
13
|
-
t.libs = ['lib']
|
14
|
-
t.test_files = FileList['test/end_to_end/*_test.rb']
|
15
|
-
t.warning = true
|
16
|
-
end
|
17
|
-
|
18
|
-
task all: [:unit, :end_to_end]
|
19
|
-
end
|
20
|
-
|
21
|
-
task test: 'test:all'
|
22
|
-
|
23
|
-
task default: 'test'
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require 'atspi_app_driver'
|
3
|
-
|
4
|
-
# Test driver for the Wait Up application.
|
5
|
-
class WaitUpDriver < AtspiAppDriver
|
6
|
-
def initialize
|
7
|
-
super 'wait_up'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'The Wait Up application' do
|
12
|
-
before do
|
13
|
-
@driver = WaitUpDriver.new
|
14
|
-
@driver.boot
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'starts and can be quit with Ctrl-q' do
|
18
|
-
@driver.press_ctrl_q
|
19
|
-
|
20
|
-
status = @driver.cleanup
|
21
|
-
status.exitstatus.must_equal 0
|
22
|
-
end
|
23
|
-
|
24
|
-
after do
|
25
|
-
@driver.cleanup
|
26
|
-
end
|
27
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
data/test/unit/pipeline_test.rb
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
require_relative '../../lib/wait_up/pipeline'
|
3
|
-
|
4
|
-
Gst.init
|
5
|
-
|
6
|
-
def next_element(element)
|
7
|
-
# FIXME: Reduce the number of necessary chained calls here.
|
8
|
-
pad = element.iterate_src_pads.first
|
9
|
-
peer = pad.get_peer if pad
|
10
|
-
peer.parent if peer
|
11
|
-
end
|
12
|
-
|
13
|
-
describe WaitUp::Pipeline do
|
14
|
-
# Empty mp3 file from http://www.xamuel.com/blank-mp3s/
|
15
|
-
let(:filename) { File.join(File.dirname(__FILE__), '..', 'fixtures', 'point1sec.mp3') }
|
16
|
-
let(:instance) { WaitUp::Pipeline.new filename, 0.9 }
|
17
|
-
|
18
|
-
describe '#sink_bin' do
|
19
|
-
let(:sink_bin) { instance.sink_bin }
|
20
|
-
|
21
|
-
it 'returns a Gst::Bin' do
|
22
|
-
sink_bin.must_be_instance_of Gst::Bin
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'has the correct build-up' do
|
26
|
-
iter = sink_bin.iterate_elements
|
27
|
-
iter.map(&:name).must_equal ['speed changer', 'postconverter', 'audiosink']
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'has the elements all linked up' do
|
31
|
-
iter = sink_bin.iterate_elements
|
32
|
-
|
33
|
-
iter.to_a.each_cons(2) do |src, dst|
|
34
|
-
next_element(src).
|
35
|
-
must_equal dst, "Expected #{src.name} to link up to #{dst.name}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'must have the state :paused' do
|
40
|
-
sink_bin.get_state(0)[1].must_equal :paused
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'must be linked up to a source' do
|
44
|
-
sink_bin.iterate_sink_pads.first.get_peer.wont_be_nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe '#play_bin' do
|
49
|
-
let(:play_bin) { instance.play_bin }
|
50
|
-
|
51
|
-
it 'must have the state :paused' do
|
52
|
-
play_bin.get_state(0)[1].must_equal :paused
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'has the correct source set up' do
|
56
|
-
source = play_bin.get_property('source').get_value
|
57
|
-
source.uri.must_equal "file://#{File.absolute_path filename}"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe '#speed_changer' do
|
62
|
-
let(:speed_changer) { instance.speed_changer }
|
63
|
-
it 'returns a Gst::Element' do
|
64
|
-
speed_changer.must_be_kind_of Gst::Element
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'has the correct tempo' do
|
68
|
-
speed_changer.get_property('tempo').must_be_close_to 0.9
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe '#play' do
|
73
|
-
it "sets the play bin's state to :playing" do
|
74
|
-
instance.play
|
75
|
-
instance.play_bin.get_state(0)[1].must_equal :playing
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|