module CMusBt::Device::Input
Public Class Methods
list()
click to toggle source
# File lib/cmus-bt/device/input.rb, line 62 def list ret = [] File.open("/proc/bus/input/devices") { |f| info = {} f.each_line { |l| case l when /^I: (.*)$/ put_ident(info, $1) when /^N: (.*)$/ put_name(info, $1) when /^P: (.*)/ put_phys(info, $1) when /^S: (.*)$/ put_sysfs(info, $1) when /^U: (.*)$/ put_uniq(info, $1) when /^H: Handlers=(.*)$/ put_handlers(info, $1) when /^B: (.*)$/ put_bitmap(info, $1) when /^\s*$/ ret << info info = {} next end } ret << info if not info.empty? } return ret end
put_bitmap(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 54 def put_bitmap(dst, s) h = (dst[:bitmap] ||= {}) if /(.+)=(.+)/ =~ s h[$1] = $2 end end
put_handlers(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 40 def put_handlers(dst, s) a = [] s.split.each { |t| if /^event\d+$/ =~ t dst[:dev_file] = "/dev/input/#{t}" else a << t end } dst[:handlers] = a end
put_ident(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 14 def put_ident(dst, s) h = {} s.scan(/([[:alpha:]]+)=(\h+)/) { |key, val| h[key.downcase.to_sym] = val.to_i } dst[:ident] = h end
put_name(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 24 def put_name(dst, s) dst[:name] = (/^Name=\"(.*)\"$/ =~ s) && $1 end
put_phys(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 28 def put_phys(dst, s) dst[:phys] = (/^Phys=(.*)$/ =~ s) && $1 end
put_sysfs(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 32 def put_sysfs(dst, s) dst[:sysfs] = (/^Sysfs=(.*)$/ =~ s) && $1 end
put_uniq(dst, s)
click to toggle source
# File lib/cmus-bt/device/input.rb, line 36 def put_uniq(dst, s) dst[:uniq] = (/^Uniq=(.*)$/ =~ s) && $1 end