pulseaudio 0.0.8 → 0.0.9
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.
- data/Gemfile +1 -0
- data/Gemfile.lock +20 -16
- data/VERSION +1 -1
- data/bin/pulseaudio_volume.rb +3 -1
- data/gui/choose_active_sink_gtk3/choose_active_sink_gtk3.rb +26 -7
- data/include/pulseaudio_sink.rb +1 -1
- data/include/pulseaudio_source.rb +1 -1
- data/pulseaudio.gemspec +11 -9
- data/spec/pulseaudio_spec.rb +9 -1
- data/test_scripts/choose_active_sink_gtk3.rb +15 -9
- metadata +83 -24
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,40 +1,43 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
4
|
+
autogc (0.0.3)
|
5
|
+
datet (0.0.21)
|
5
6
|
diff-lcs (1.1.3)
|
6
|
-
ffi (1.
|
7
|
-
gettext (2.3.
|
7
|
+
ffi (1.2.1)
|
8
|
+
gettext (2.3.7)
|
9
|
+
levenshtein
|
8
10
|
locale
|
9
|
-
gir_ffi (0.
|
10
|
-
ffi (~> 1.0
|
11
|
+
gir_ffi (0.5.0)
|
12
|
+
ffi (~> 1.2.0)
|
11
13
|
indentation (~> 0.0.6)
|
12
|
-
gir_ffi-gtk (0.
|
13
|
-
gir_ffi (~> 0.
|
14
|
+
gir_ffi-gtk (0.5.0)
|
15
|
+
gir_ffi (~> 0.5.0)
|
14
16
|
git (1.2.5)
|
15
|
-
gtk3assist (0.0.
|
17
|
+
gtk3assist (0.0.9)
|
16
18
|
gir_ffi-gtk
|
17
19
|
xml-simple
|
18
|
-
http2 (0.0.
|
19
|
-
indentation (0.0.
|
20
|
+
http2 (0.0.13)
|
21
|
+
indentation (0.0.7)
|
20
22
|
jeweler (1.8.4)
|
21
23
|
bundler (~> 1.0)
|
22
24
|
git (>= 1.2.5)
|
23
25
|
rake
|
24
26
|
rdoc
|
25
|
-
json (1.7.
|
26
|
-
knjrbfw (0.0.
|
27
|
+
json (1.7.7)
|
28
|
+
knjrbfw (0.0.101)
|
27
29
|
datet
|
28
30
|
http2
|
29
31
|
php4r
|
30
32
|
tsafe
|
31
33
|
wref
|
34
|
+
levenshtein (0.2.2)
|
32
35
|
locale (2.0.8)
|
33
36
|
php4r (0.0.3)
|
34
37
|
datet
|
35
38
|
http2
|
36
|
-
rake (0.
|
37
|
-
rdoc (3.12)
|
39
|
+
rake (10.0.3)
|
40
|
+
rdoc (3.12.1)
|
38
41
|
json (~> 1.4)
|
39
42
|
rspec (2.8.0)
|
40
43
|
rspec-core (~> 2.8.0)
|
@@ -45,13 +48,14 @@ GEM
|
|
45
48
|
diff-lcs (~> 1.1.2)
|
46
49
|
rspec-mocks (2.8.0)
|
47
50
|
tsafe (0.0.11)
|
48
|
-
wref (0.0.
|
49
|
-
xml-simple (1.1.
|
51
|
+
wref (0.0.6)
|
52
|
+
xml-simple (1.1.2)
|
50
53
|
|
51
54
|
PLATFORMS
|
52
55
|
ruby
|
53
56
|
|
54
57
|
DEPENDENCIES
|
58
|
+
autogc
|
55
59
|
bundler (>= 1.0.0)
|
56
60
|
gettext
|
57
61
|
gir_ffi
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.9
|
data/bin/pulseaudio_volume.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby1.9
|
2
2
|
|
3
3
|
require "rubygems"
|
4
|
-
require "pulseaudio"
|
4
|
+
require "#{File.dirname(__FILE__)}/../lib/pulseaudio.rb"
|
5
5
|
|
6
6
|
sinks = PulseAudio::Sink.list
|
7
7
|
|
@@ -18,4 +18,6 @@ elsif ARGV[0] == "mute"
|
|
18
18
|
sinks.each do |sink|
|
19
19
|
sink.mute_toggle if sink.active?
|
20
20
|
end
|
21
|
+
else
|
22
|
+
puts "Dont know what to do with argument: '#{ARGV[0]}'."
|
21
23
|
end
|
@@ -146,14 +146,30 @@ class PulseAudio::Gui::Choose_active_sink_gtk3
|
|
146
146
|
@sicon.set_from_file(icon_filepath)
|
147
147
|
end
|
148
148
|
|
149
|
+
#Runs the given block and doesnt toggle the mute-functionality while it runs.
|
150
|
+
def no_mute_toggle
|
151
|
+
@no_toggle_event_count = 0 if @no_toggle_event_count == nil
|
152
|
+
@no_toggle_event_count += 1
|
153
|
+
|
154
|
+
begin
|
155
|
+
yield
|
156
|
+
ensure
|
157
|
+
@no_toggle_event_count -= 1
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
149
161
|
def update_sink_info
|
150
|
-
|
151
|
-
@
|
152
|
-
|
153
|
-
|
162
|
+
self.no_mute_toggle do
|
163
|
+
if @sink.muted?
|
164
|
+
puts "Mute is active - set."
|
165
|
+
@ui["cbSinkMute"].active = true
|
166
|
+
else
|
167
|
+
puts "Mute is not active - unset."
|
168
|
+
@ui["cbSinkMute"].active = false
|
169
|
+
end
|
170
|
+
|
171
|
+
@ui["adjustmentSinkVolume"].value = @sink.vol_perc.to_f
|
154
172
|
end
|
155
|
-
|
156
|
-
@ui["adjustmentSinkVolume"].value = @sink.vol_perc.to_f
|
157
173
|
end
|
158
174
|
|
159
175
|
def update_source_info
|
@@ -190,7 +206,10 @@ class PulseAudio::Gui::Choose_active_sink_gtk3
|
|
190
206
|
end
|
191
207
|
|
192
208
|
def on_cbSinkMute_toggled
|
193
|
-
|
209
|
+
if !@no_toggle_event
|
210
|
+
puts "Mute toggle."
|
211
|
+
@sink.mute = @ui["cbSinkMute"].active
|
212
|
+
end
|
194
213
|
end
|
195
214
|
|
196
215
|
def on_cbSourceMute_toggled
|
data/include/pulseaudio_sink.rb
CHANGED
@@ -72,7 +72,7 @@ class PulseAudio::Sink
|
|
72
72
|
|
73
73
|
#This automatically reloads a sink when a 'change'-event appears.
|
74
74
|
PulseAudio::Events.instance.connect(:event => :change, :element => "sink") do |args|
|
75
|
-
if @@sinks.key?(args[:args][:element_id]) and sink = @@sinks.get(args[:args][:element_id])
|
75
|
+
if @@sinks.key?(args[:args][:element_id]) and sink = @@sinks.get!(args[:args][:element_id])
|
76
76
|
sink.reload
|
77
77
|
end
|
78
78
|
end
|
@@ -76,7 +76,7 @@ class PulseAudio::Source
|
|
76
76
|
|
77
77
|
#This automatically reloads a source when a 'change'-event appears.
|
78
78
|
PulseAudio::Events.instance.connect(:event => :change, :element => "source") do |args|
|
79
|
-
if @@sources.key?(args[:args][:element_id]) and source = @@sources.get(args[:args][:element_id])
|
79
|
+
if @@sources.key?(args[:args][:element_id]) and source = @@sources.get!(args[:args][:element_id])
|
80
80
|
source.reload
|
81
81
|
end
|
82
82
|
end
|
data/pulseaudio.gemspec
CHANGED
@@ -4,15 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.0.
|
7
|
+
s.name = "pulseaudio"
|
8
|
+
s.version = "0.0.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kasper Johansen"]
|
12
|
-
s.date =
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.email = %q{k@spernj.org}
|
12
|
+
s.date = "2013-02-24"
|
13
|
+
s.description = "Ruby-library for controlling PulseAudio via 'pactl'."
|
14
|
+
s.email = "k@spernj.org"
|
16
15
|
s.executables = ["pulseaudio_volume.rb"]
|
17
16
|
s.extra_rdoc_files = [
|
18
17
|
"LICENSE.txt",
|
@@ -50,16 +49,17 @@ Gem::Specification.new do |s|
|
|
50
49
|
"test_scripts/choose_active_sink_gtk3.rb",
|
51
50
|
"test_scripts/set_active.rb"
|
52
51
|
]
|
53
|
-
s.homepage =
|
52
|
+
s.homepage = "http://github.com/kaspernj/pulseaudio"
|
54
53
|
s.licenses = ["MIT"]
|
55
54
|
s.require_paths = ["lib"]
|
56
|
-
s.rubygems_version =
|
57
|
-
s.summary =
|
55
|
+
s.rubygems_version = "1.8.25"
|
56
|
+
s.summary = "Ruby-library for controlling PulseAudio."
|
58
57
|
|
59
58
|
if s.respond_to? :specification_version then
|
60
59
|
s.specification_version = 3
|
61
60
|
|
62
61
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
62
|
+
s.add_runtime_dependency(%q<autogc>, [">= 0"])
|
63
63
|
s.add_runtime_dependency(%q<wref>, [">= 0"])
|
64
64
|
s.add_runtime_dependency(%q<gir_ffi>, [">= 0"])
|
65
65
|
s.add_runtime_dependency(%q<gtk3assist>, [">= 0"])
|
@@ -70,6 +70,7 @@ Gem::Specification.new do |s|
|
|
70
70
|
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
71
71
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
72
72
|
else
|
73
|
+
s.add_dependency(%q<autogc>, [">= 0"])
|
73
74
|
s.add_dependency(%q<wref>, [">= 0"])
|
74
75
|
s.add_dependency(%q<gir_ffi>, [">= 0"])
|
75
76
|
s.add_dependency(%q<gtk3assist>, [">= 0"])
|
@@ -81,6 +82,7 @@ Gem::Specification.new do |s|
|
|
81
82
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
82
83
|
end
|
83
84
|
else
|
85
|
+
s.add_dependency(%q<autogc>, [">= 0"])
|
84
86
|
s.add_dependency(%q<wref>, [">= 0"])
|
85
87
|
s.add_dependency(%q<gir_ffi>, [">= 0"])
|
86
88
|
s.add_dependency(%q<gtk3assist>, [">= 0"])
|
data/spec/pulseaudio_spec.rb
CHANGED
@@ -29,6 +29,14 @@ describe "Pulseaudio" do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
PulseAudio::Sink::Input.auto_redirect_new_inputs_to_default_sink
|
32
|
-
|
32
|
+
|
33
|
+
require "timeout"
|
34
|
+
begin
|
35
|
+
Timeout.timeout(0.1) do
|
36
|
+
PulseAudio::Events.instance.join
|
37
|
+
end
|
38
|
+
rescue Timeout::Error
|
39
|
+
#expected.
|
40
|
+
end
|
33
41
|
end
|
34
42
|
end
|
@@ -1,23 +1,29 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require "#{File.realpath(File.dirname(__FILE__))}/../lib/pulseaudio.rb"
|
4
|
-
|
5
|
-
require "rubygems"
|
6
|
-
require "gir_ffi"
|
7
|
-
require "gir_ffi-gtk3"
|
8
|
-
require "gettext"
|
9
|
-
|
10
3
|
#Try to load development-version of 'knjrbfw'.
|
11
4
|
begin
|
12
5
|
require "#{File.realpath(File.dirname(__FILE__))}/../../knjrbfw/lib/knjrbfw.rb"
|
6
|
+
puts "Loaded custom knjrbfw."
|
13
7
|
rescue LoadError
|
14
8
|
require "knjrbfw"
|
15
9
|
end
|
16
10
|
|
17
|
-
Knj.gem_require(:
|
11
|
+
Knj.gem_require([:wref, :gtk3assist, :autogc])
|
12
|
+
|
13
|
+
require "#{File.realpath(File.dirname(__FILE__))}/../lib/pulseaudio.rb"
|
14
|
+
|
15
|
+
require "rubygems"
|
16
|
+
require "gir_ffi"
|
17
|
+
require "gir_ffi-gtk3"
|
18
|
+
require "gettext"
|
19
|
+
|
20
|
+
#Solves memory corruption problem in Ruby 1.9.3.
|
21
|
+
Autogc.enable_for_known_buggy_env
|
18
22
|
|
19
|
-
|
23
|
+
#Solves threadding issues with Gir-GTK and MRI Ruby.
|
24
|
+
Gtk3assist::Threadding.enable_threadding_if_necessary
|
20
25
|
|
26
|
+
#Shortcut for GetText.
|
21
27
|
def _(str)
|
22
28
|
return GetText._(str)
|
23
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pulseaudio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
default_executable: pulseaudio_volume.rb
|
12
|
+
date: 2013-02-24 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: autogc
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
15
30
|
- !ruby/object:Gem::Dependency
|
16
31
|
name: wref
|
17
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
18
33
|
none: false
|
19
34
|
requirements:
|
20
35
|
- - ! '>='
|
@@ -22,10 +37,15 @@ dependencies:
|
|
22
37
|
version: '0'
|
23
38
|
type: :runtime
|
24
39
|
prerelease: false
|
25
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
26
46
|
- !ruby/object:Gem::Dependency
|
27
47
|
name: gir_ffi
|
28
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
29
49
|
none: false
|
30
50
|
requirements:
|
31
51
|
- - ! '>='
|
@@ -33,10 +53,15 @@ dependencies:
|
|
33
53
|
version: '0'
|
34
54
|
type: :runtime
|
35
55
|
prerelease: false
|
36
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
37
62
|
- !ruby/object:Gem::Dependency
|
38
63
|
name: gtk3assist
|
39
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
40
65
|
none: false
|
41
66
|
requirements:
|
42
67
|
- - ! '>='
|
@@ -44,10 +69,15 @@ dependencies:
|
|
44
69
|
version: '0'
|
45
70
|
type: :runtime
|
46
71
|
prerelease: false
|
47
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
48
78
|
- !ruby/object:Gem::Dependency
|
49
79
|
name: gettext
|
50
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
51
81
|
none: false
|
52
82
|
requirements:
|
53
83
|
- - ! '>='
|
@@ -55,10 +85,15 @@ dependencies:
|
|
55
85
|
version: '0'
|
56
86
|
type: :runtime
|
57
87
|
prerelease: false
|
58
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
59
94
|
- !ruby/object:Gem::Dependency
|
60
95
|
name: knjrbfw
|
61
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
62
97
|
none: false
|
63
98
|
requirements:
|
64
99
|
- - ! '>='
|
@@ -66,10 +101,15 @@ dependencies:
|
|
66
101
|
version: '0'
|
67
102
|
type: :runtime
|
68
103
|
prerelease: false
|
69
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
70
110
|
- !ruby/object:Gem::Dependency
|
71
111
|
name: rspec
|
72
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
73
113
|
none: false
|
74
114
|
requirements:
|
75
115
|
- - ~>
|
@@ -77,10 +117,15 @@ dependencies:
|
|
77
117
|
version: 2.8.0
|
78
118
|
type: :development
|
79
119
|
prerelease: false
|
80
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 2.8.0
|
81
126
|
- !ruby/object:Gem::Dependency
|
82
127
|
name: rdoc
|
83
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
84
129
|
none: false
|
85
130
|
requirements:
|
86
131
|
- - ~>
|
@@ -88,10 +133,15 @@ dependencies:
|
|
88
133
|
version: '3.12'
|
89
134
|
type: :development
|
90
135
|
prerelease: false
|
91
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '3.12'
|
92
142
|
- !ruby/object:Gem::Dependency
|
93
143
|
name: bundler
|
94
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
95
145
|
none: false
|
96
146
|
requirements:
|
97
147
|
- - ! '>='
|
@@ -99,10 +149,15 @@ dependencies:
|
|
99
149
|
version: 1.0.0
|
100
150
|
type: :development
|
101
151
|
prerelease: false
|
102
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 1.0.0
|
103
158
|
- !ruby/object:Gem::Dependency
|
104
159
|
name: jeweler
|
105
|
-
requirement:
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
106
161
|
none: false
|
107
162
|
requirements:
|
108
163
|
- - ~>
|
@@ -110,7 +165,12 @@ dependencies:
|
|
110
165
|
version: 1.8.3
|
111
166
|
type: :development
|
112
167
|
prerelease: false
|
113
|
-
version_requirements:
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.8.3
|
114
174
|
description: Ruby-library for controlling PulseAudio via 'pactl'.
|
115
175
|
email: k@spernj.org
|
116
176
|
executables:
|
@@ -150,7 +210,6 @@ files:
|
|
150
210
|
- test_scripts/choose_active_sink.rb
|
151
211
|
- test_scripts/choose_active_sink_gtk3.rb
|
152
212
|
- test_scripts/set_active.rb
|
153
|
-
has_rdoc: true
|
154
213
|
homepage: http://github.com/kaspernj/pulseaudio
|
155
214
|
licenses:
|
156
215
|
- MIT
|
@@ -166,7 +225,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
225
|
version: '0'
|
167
226
|
segments:
|
168
227
|
- 0
|
169
|
-
hash:
|
228
|
+
hash: -1739286250182430142
|
170
229
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
230
|
none: false
|
172
231
|
requirements:
|
@@ -175,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
234
|
version: '0'
|
176
235
|
requirements: []
|
177
236
|
rubyforge_project:
|
178
|
-
rubygems_version: 1.
|
237
|
+
rubygems_version: 1.8.25
|
179
238
|
signing_key:
|
180
239
|
specification_version: 3
|
181
240
|
summary: Ruby-library for controlling PulseAudio.
|