this repo has no description
dotfiles
at main 67 lines 913 B view raw
1class MPC 2 def initialize 3 output = run.split("\n") 4 return unless output.size >= 3 5 @mods = Hash[output[2].scan(/(\w+): (off|on)/).map do |m| 6 [m.first.to_sym, m.last == 'on'] 7 end] 8 end 9 10 def [](mode) 11 @mods[mode] 12 end 13 14 def available 15 run.split("\n").size > 1 16 end 17 18 def status 19 run.split("\n")[1].match(/^\[(\w+)\]/)[1].to_sym 20 end 21 22 def play 23 run 'play' 24 end 25 26 def pause 27 run 'pause' 28 end 29 30 def stop 31 run 'stop' 32 end 33 34 def toggle 35 run 'toggle' 36 end 37 38 def next 39 run 'next' 40 end 41 42 def previous 43 run 'previous' 44 end 45 46 def long 47 run('-f [[%artist% - ]%title%[ (%album%)]]|[%file%]').split("\n").first 48 end 49 50 def short 51 run('-f "%title%"').split("\n").first 52 end 53 54 def file 55 run('-f "%file%"').split("\n").first 56 end 57 58 def to_s 59 run.split("\n").first 60 end 61 62 private 63 64 def run(command = '') 65 `mpc #{command}`.strip 66 end 67end