Removed RCS headers.
[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