class Twiddler::Config::Chord
Attributes
mods[R]
rows[R]
Public Class Methods
new()
click to toggle source
# File lib/twiddler/config.rb, line 216 def initialize @rows = [:open, :open, :open, :open] @mods = {:num => false, :shift => false, :ctrl => false, :alt => false} end
Public Instance Methods
extract_key(bits, idx, mod, range)
click to toggle source
# File lib/twiddler/config.rb, line 224 def extract_key(bits, idx, mod, range) @rows[idx] = case bits[range] when /1.../; :left when /.1../; :middle when /..1./; :right else :open end @mods[mod] = (bits[range.last] == ?1) end
keydata=(bits)
click to toggle source
# File lib/twiddler/config.rb, line 235 def keydata=(bits) extract_key(bits, 0, :num, 4..7) extract_key(bits, 1, :alt, 0..3) extract_key(bits, 2, :ctrl, 12..15) extract_key(bits, 3, :shift, 8..11) end
render()
click to toggle source
# File lib/twiddler/config.rb, line 269 def render "#{render_keys} => #{render_action}" end
render_action()
click to toggle source
# File lib/twiddler/config.rb, line 265 def render_action "" end
render_keys()
click to toggle source
# File lib/twiddler/config.rb, line 242 def render_keys mods = (@mods[:num] ? "N" : "") + (@mods[:alt] ? "A" : "") + (@mods[:ctrl] ? "C" : "") + (@mods[:shift] ? "S" : "") if mods.empty? mods = "O" end chord = rows.map do |row| case row when :open; "O" when :left; "L" when :right; "R" when :middle; "M" else "wtf?" end end.join("") return "#{mods} #{chord}" end