lib/mikeplayer.rb in mikeplayer-1.0.0 vs lib/mikeplayer.rb in mikeplayer-1.0.1
- old
+ new
@@ -17,10 +17,11 @@
PAUSED = :paused
def initialize(options, *args)
@settings = Settings.new(options)
@playlist = Playlist.new(@settings.playlist)
+ @minutes = @settings.minutes
@command = ''
@pid = nil
@timer_start = nil
@state = STOPPED
@@ -65,10 +66,11 @@
stdin, stdother, thread_info = Open3.popen2e('play', '--no-show-progress', '--volume', @settings.volume, song.filename)
@state = PLAYING
@pid = thread_info.pid
indicator = ''
+ info_changed = false
while (true == pid_alive?)
pause_if_over_time_limit
if (true == playing?)
@@ -90,10 +92,11 @@
display_width = info.size
print(info)
+ info_changed = false
$stdout.flush
end
sleep SLEEP_SETTING
end
@@ -176,13 +179,16 @@
end
def press_pause
if (true == playing?)
kill("STOP")
+ @pause_time = Time.now
@state = PAUSED
elsif (true == paused?)
kill("CONT")
+ @song_start += (Time.now - @pause_time)
+ @pause_time = nil
@state = PLAYING
else
print("Confused state #{@state}.")
end
end
@@ -238,10 +244,18 @@
end
end
end
def playing_time
- return (Time.now - @song_start).to_i
+ return (Time.now - @song_start).to_i - pause_time
+ end
+
+ def pause_time
+ if (@pause_time.nil?)
+ return 0
+ else
+ return (Time.now - @pause_time).to_i
+ end
end
def minutes_remaining
if ((0 == @minutes) || (@timer_start.nil?))
return -1