wait_up 0.0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 08dd0a312d7c05cab5f82a82f590ece6372912e3
4
- data.tar.gz: 4e152ff496e74fb188b5b84bd06d69e30b56f707
2
+ SHA256:
3
+ metadata.gz: bca5586ce3b259683495e20c1d499ad45f54f2a8e254380a9d7dfbbdaef72e9e
4
+ data.tar.gz: bfd361ad4ae092f963218494a5ac7116e802b65426e5b27b23e699c9a5e4d397
5
5
  SHA512:
6
- metadata.gz: edf77f5f1edb09cd9257dd629a05d66a1db528aefaa1b890b8ccccc3330d3e8624e251c3faa013471b981aa6ae8720b8725799cc9ca46a13b0ba9a2c21b7fbf7
7
- data.tar.gz: 77b19223b591b192b44eece8884a80772d68edef6c72d66f7d8b9890bdf8026a0ae705e5de4fb3604a7ba4a8662c58a604edbdd2a5dec792441146176a0216a6
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 + GirFFI.
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–2016 [Matijs van Zuijlen](http://www.matijs.net).
51
+ Copyright © 2015–2017 [Matijs van Zuijlen](http://www.matijs.net).
52
52
  See LICENSE for details.
data/bin/wait_up CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- require_relative '../lib/wait_up'
2
+ # frozen_string_literal: true
3
+
4
+ require "wait_up"
3
5
 
4
6
  Gtk.init
5
7
 
data/bin/wait_up-cli CHANGED
@@ -1,8 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
- require_relative '../lib/wait_up/pipeline'
2
+ # frozen_string_literal: true
3
+
4
+ require "wait_up/pipeline"
3
5
 
4
6
  unless ARGV.length == 2
5
- warn 'Usage: wait_up-cli [file] [tempo]'
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 'message' do |_bus, message, _ud|
21
+ bus.signal_connect "message" do |_bus, message, _ud|
20
22
  case message.type
21
- when :error
22
- mainloop.quit
23
- when :eos
23
+ when Gst::MessageType::ERROR, Gst::MessageType::EOS
24
24
  mainloop.quit
25
25
  end
26
26
  end
@@ -1,4 +1,6 @@
1
- require 'gir_ffi-gtk3'
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('destroy') { Gtk.main_quit }
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 'key-press-event' do |_wdg, evt, _ud|
27
- handle_key(evt) if evt.state[:control_mask]
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 'q'.ord
36
+ when "q".ord
35
37
  @win.destroy
36
38
  end
37
39
  end
38
40
 
39
41
  def connect_slide_signal
40
- @timeline.signal_connect 'format-value' do |_scale, value, _user_data|
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
- @chooser.signal_connect 'file-set' do |_widget, _user_data|
47
- puts @chooser.filename
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 = Gtk::Grid.new
54
- @grid.orientation = :vertical
55
- @win.add @grid
56
- @chooser = Gtk::FileChooserButton.new('Hello!', :open)
57
- @grid.add @chooser
58
- @timeline = Gtk::Scale.new_with_range :horizontal, 0.0, 10.0, 0.1
59
- @timeline.hexpand = true
60
- @grid.add @timeline
61
- @volume = Gtk::VolumeButton.new
62
- @grid.add @volume
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
@@ -1,4 +1,6 @@
1
- require 'gir_ffi-gst'
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
- play_bin.set_property 'uri', "file://#{File.absolute_path(filename)}"
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
- sink_pad = Gst::GhostPad.new 'sink', speed_changer.iterate_sink_pads.first
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 'playbin', nil
25
+ @play_bin ||= Gst::ElementFactory.make "playbin", nil
34
26
  end
35
27
 
36
28
  def sink_bin
37
- @sink_bin ||= Gst::Bin.new('sinkbin')
29
+ @sink_bin ||= Gst::Bin.new("sinkbin")
38
30
  end
39
31
 
40
32
  def speed_changer
41
- @speed_changer ||= Gst::ElementFactory.make('pitch', 'speed changer').tap do |element|
42
- element.set_property 'tempo', tempo
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('autoaudiosink', 'audiosink')
39
+ @audiosink ||= Gst::ElementFactory.make("autoaudiosink", "audiosink")
48
40
  end
49
41
 
50
42
  def postconverter
51
- @postconverter ||= Gst::ElementFactory.make('audioconvert', 'postconverter')
43
+ @postconverter ||= Gst::ElementFactory.make("audioconvert", "postconverter")
52
44
  end
53
45
 
54
46
  def preconverter
55
- @preconverter ||= Gst::ElementFactory.make('audioconvert', 'preconverter')
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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WaitUp
4
+ VERSION = "0.1.1"
5
+ end
data/lib/wait_up.rb CHANGED
@@ -1 +1,4 @@
1
- require_relative 'wait_up/application'
1
+ # frozen_string_literal: true
2
+
3
+ require "wait_up/application"
4
+ require "wait_up/version"
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.0.1
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: 2016-02-05 00:00:00.000000000 Z
11
+ date: 2022-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: gir_ffi-gtk
14
+ name: gstreamer
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.0
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: 0.9.0
26
+ version: 3.5.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: gir_ffi-gst
28
+ name: gtk3
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.5
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: 0.0.5
40
+ version: 3.5.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: gir_ffi
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.9.2
48
- type: :runtime
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.9.2
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: '10.1'
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: '10.1'
82
+ version: '13.0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: minitest
84
+ name: rake-manifest
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '5.5'
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: '5.5'
96
+ version: 0.2.0
83
97
  - !ruby/object:Gem::Dependency
84
- name: atspi_app_driver
98
+ name: rubocop
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - '='
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.0.5
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: 0.0.5
110
+ version: 1.25.0
97
111
  - !ruby/object:Gem::Dependency
98
- name: pry
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.10.2
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.10.2
111
- description:
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
- - test/end_to_end/basic_run_test.rb
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
- post_install_message:
138
- rdoc_options: []
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: '0'
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
- rubyforge_project:
153
- rubygems_version: 2.5.1
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
@@ -1,3 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gemspec
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'
@@ -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