1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#!/usr/bin/env ruby
require 'xmms'
PAUSE_DURATION = 2
# allocate a new Xmms::Remote object
$stderr.puts 'testing Xmms-Ruby version ' << Xmms::Remote::VERSION
xr = Xmms::Remote::new
# test pause method
$stderr.puts 'testing Xmms::Remote#pause'
xr.pause
puts 'paused'
sleep PAUSE_DURATION
# test play method
$stderr.puts 'testing Xmms::Remote#play'
xr.play
puts 'playing'
# test play_pause method
$stderr.puts 'testing Xmms::Remote#play_pause'
xr.play_pause
puts 'paused'
sleep PAUSE_DURATION
xr.play_pause
puts 'playing'
# test playlist method
$stderr.puts 'testing Xmms::Remote#playlist'
xr.playlist.each { |entry|
title, file, time = entry
puts "'#{title}', #{time}, #{file}"
}
# test playlist block method
$stderr.puts 'testing Xmms::Remote#playlist (block)'
xr.playlist { |title, file, time| puts "'#{title}', #{time}, #{file}" }
# test [] method
$stderr.puts 'testing Xmms::Remote#[]'
1.upto(5) { |i|
title, file, time = xr[i]
puts "'#{title}', #{time}, #{file}"
}
# test eq methods
$stderr.puts 'test equalizer settings'
# save current equalizer settings
$stderr.puts 'testing Xmms::Remote#eq'
old_eq = xr.eq
puts old_eq
# make eq look like sine wave
$stderr.puts 'testing Xmms::Remote#set_eq'
0.upto(40) { |x|
bands = [0.0] * 10
0.upto(9) { |i|
bands[i] = 20.0 * Math::sin((i * 1.1 + x) / 5.0 * Math::PI)
puts "setting band[#{i}] to #{bands[i]}"
}
xr.set_eq old_eq[0], bands
sleep 0.1
}
puts *old_eq
# restore equalizer settings
xr.set_eq *old_eq
|