projects
/
euphoria.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Handle broadcast_playlist_loaded.
[euphoria.git]
/
lib
/
playtime_updater.rb
1
class PlaytimeUpdater
2
INTERVAL = 0.25
3
4
def initialize(xmms, &block)
5
@xmms = xmms
6
@block = block
7
@timer = nil
8
@current_pos = nil
9
10
on_timer
11
end
12
13
def enabled=(v)
14
if !v && !@timer.nil?
15
@timer.delete
16
@timer = nil
17
elsif v
18
@current_pos = nil
19
on_timer
20
21
@timer = Ecore::Timer.new(INTERVAL) do
22
on_timer
23
true
24
end
25
end
26
end
27
28
private
29
def on_timer
30
pltime = @xmms.playback_playtime.wait.value
31
cur_pos = pltime / 1000
32
33
if @current_pos != cur_pos
34
@current_pos = cur_pos
35
@block.call(@current_pos)
36
end
37
end
38
end