moc 2.5.0.4 → 2.5.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/moc/controller.rb +34 -20
- data/lib/moc/controller/status.rb +4 -4
- data/lib/moc/protocol/symbol.rb +1 -1
- data/lib/moc/version.rb +1 -1
- metadata +2 -2
data/lib/moc/controller.rb
CHANGED
@@ -33,8 +33,8 @@ class Controller
|
|
33
33
|
def initialize (path = '~/.moc/socket2')
|
34
34
|
@path = File.expand_path(path)
|
35
35
|
@socket = UNIXSocket.new(@path)
|
36
|
-
|
37
|
-
@
|
36
|
+
|
37
|
+
@queue = []
|
38
38
|
end
|
39
39
|
|
40
40
|
def respond_to_missing? (id, include_private = false)
|
@@ -170,37 +170,35 @@ class Controller
|
|
170
170
|
end
|
171
171
|
}
|
172
172
|
|
173
|
-
def
|
174
|
-
@events[event ? nil : event.to_sym.upcase] << block
|
173
|
+
def looping?; !!@looping; end
|
175
174
|
|
176
|
-
|
177
|
-
|
175
|
+
def loop (&block)
|
176
|
+
raise ArgumentError, 'no block given' unless block
|
178
177
|
|
179
|
-
|
180
|
-
name = event.to_sym
|
178
|
+
raise 'already looping' if looping?
|
181
179
|
|
182
|
-
@
|
183
|
-
block.call(event)
|
184
|
-
}
|
180
|
+
@looping = true
|
185
181
|
|
186
|
-
|
187
|
-
block.call(event)
|
188
|
-
}
|
182
|
+
send_command :send_events
|
189
183
|
|
190
|
-
self
|
191
|
-
end
|
192
|
-
|
193
|
-
def loop
|
194
184
|
while event = read_event
|
195
|
-
|
185
|
+
block.call event
|
186
|
+
|
187
|
+
until @queue.empty?
|
188
|
+
block.call @queue.first
|
189
|
+
|
190
|
+
@queue.shift
|
191
|
+
end
|
196
192
|
end
|
197
193
|
|
198
194
|
self
|
195
|
+
ensure
|
196
|
+
@looping = false
|
199
197
|
end
|
200
198
|
|
201
199
|
def wait_for (name)
|
202
200
|
while (event = read_event) != name
|
203
|
-
|
201
|
+
@queue << event if looping?
|
204
202
|
end
|
205
203
|
|
206
204
|
event
|
@@ -220,6 +218,22 @@ class Controller
|
|
220
218
|
self
|
221
219
|
end
|
222
220
|
|
221
|
+
def lock
|
222
|
+
send_command :lock
|
223
|
+
end
|
224
|
+
|
225
|
+
def unlock
|
226
|
+
send_command :unlock
|
227
|
+
end
|
228
|
+
|
229
|
+
def synchronize (&block)
|
230
|
+
lock
|
231
|
+
|
232
|
+
block.call
|
233
|
+
ensure
|
234
|
+
unlock
|
235
|
+
end
|
236
|
+
|
223
237
|
def toggle
|
224
238
|
@toggle ||= Toggle.new(self)
|
225
239
|
end
|
@@ -73,11 +73,11 @@ class Status
|
|
73
73
|
}
|
74
74
|
|
75
75
|
def duration
|
76
|
-
tags.time
|
76
|
+
tags.time if tags
|
77
77
|
end
|
78
78
|
|
79
79
|
def inspect
|
80
|
-
"#<#{self.class.name}: track=#{track} title=#{title.inspect} artist=#{artist.inspect} album=#{album.inspect} channels=#{channels} bitrate=#{bitrate}(#{average_bitrate}) position=#{position}/#{duration}>"
|
80
|
+
"#<#{self.class.name}: track=#{track} title=#{title.inspect} artist=#{artist.inspect} album=#{album.inspect} channels=#{channels} bitrate=#{bitrate}(#{average_bitrate}) position=#{position}/#{duration || ??}>"
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -137,11 +137,11 @@ class Status
|
|
137
137
|
}
|
138
138
|
|
139
139
|
def duration
|
140
|
-
tags.time
|
140
|
+
tags.time if tags
|
141
141
|
end
|
142
142
|
|
143
143
|
def inspect
|
144
|
-
"#<#{self.class.name}: track=#{track} title=#{title.inspect} artist=#{artist.inspect} album=#{album.inspect} channels=#{channels} bitrate=#{bitrate}(#{average_bitrate}) position=#{position}/#{duration}>"
|
144
|
+
"#<#{self.class.name}: track=#{track} title=#{title.inspect} artist=#{artist.inspect} album=#{album.inspect} channels=#{channels} bitrate=#{bitrate}(#{average_bitrate}) position=#{position}/#{duration || ??}>"
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
data/lib/moc/protocol/symbol.rb
CHANGED
@@ -25,7 +25,7 @@ class Symbol
|
|
25
25
|
@internal = value.respond_to?(:to_i) ? self.class.codes.key(value.to_i) : value.to_sym.upcase
|
26
26
|
|
27
27
|
unless @internal && self.class.codes.member?(@internal)
|
28
|
-
raise ArgumentError,
|
28
|
+
raise ArgumentError, "invalid symbol #{value}"
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
data/lib/moc/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.0.
|
4
|
+
version: 2.5.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-24 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: meh@paranoici.org
|