class MPV::Slave
Public Class Methods
new()
click to toggle source
# File lib/mpv-slave/mpv.rb, line 8 def initialize socket = Dir::Tmpname.make_tmpname "/tmp/mpv-slave", ".socket" @pid = Process.spawn( "mpv", "--idle", "--really-quiet", "--no-input-terminal", "--input-unix-socket", socket, ) puts "waiting for mpv to start up..." until File.exists?(socket) or not running? sleep 0.1 end raise "failed to start mpv" if not running? @socket = Socket.new(socket) end
Public Instance Methods
add(file)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 49 def add file play file, mode: "append-play", wait: false end
close()
click to toggle source
# File lib/mpv-slave/mpv.rb, line 99 def close Process.kill :SIGTERM, @pid Process.wait @pid @socket.close end
command(*args)
click to toggle source
generic commands
# File lib/mpv-slave/mpv.rb, line 36 def command *args response = @socket.command(*args) response end
disable_event(event)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 83 def disable_event event command "disable_event", event end
disable_events()
click to toggle source
# File lib/mpv-slave/mpv.rb, line 91 def disable_events disable_event "all" end
enable_event(event)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 79 def enable_event event command "enable_event", event end
enable_events()
click to toggle source
# File lib/mpv-slave/mpv.rb, line 87 def enable_events enable_event "all" end
get(prop)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 57 def get prop command "get_property", prop end
method_missing(cmd, *args, &block)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 95 def method_missing cmd, *args, &block command cmd.to_s, *args, &block end
pause()
click to toggle source
# File lib/mpv-slave/mpv.rb, line 53 def pause toggle "pause" end
play(file, mode: "replace", wait: true)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 41 def play file, mode: "replace", wait: true file = File.expand_path file raise "no such file: #{file}" unless File.exists? file command "loadfile", file, mode wait_for "playback-restart" if wait end
running?()
click to toggle source
# File lib/mpv-slave/mpv.rb, line 27 def running? begin Process.waitpid(@pid, Process::WNOHANG) == nil rescue false end end
set(prop, value)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 61 def set prop, value command "set_property", prop, value end
toggle(prop)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 65 def toggle prop set(prop, !get(prop)) end
wait_for(event)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 69 def wait_for event @socket.wait_for event end
wait_while(prop, val=true)
click to toggle source
# File lib/mpv-slave/mpv.rb, line 73 def wait_while prop, val=true while get(prop) == val sleep 0.01 end end