lib/artoo/drivers/ps3.rb
require 'artoo/drivers/joystick'
module Artoo
module Drivers
# The Ps3 controller driver behaviors
class Ps3 < Artoo::Drivers::Joystick
def currently_pressed?(b)
if button_map.has_value?(b)
button_values[button_map.key(b)]
else
super b
end
end
def handle_joystick
x0 = connection.axis(axis_map[:j0_x])
y0 = connection.axis(axis_map[:j0_y])
publish_joystick(0, x0, y0)
x1 = connection.axis(axis_map[:j1_x])
y1 = connection.axis(axis_map[:j1_y])
publish_joystick(1, x1, y1)
end
def publish_button(b)
if button_values[b] == 1
publish(event_topic_name("button_#{button_map[b]}"))
else
publish(event_topic_name("button_up_#{button_map[b]}"))
end
super
end
def button_map
BINDING_MAP[:ps3][:button_map]
end
def axis_map
BINDING_MAP[:ps3][:axis_map]
end
end
end
end