commit 5ab38cf0ecb5e6e50e5c02fdcaf324a9a1edc78d Author: hans Date: Sat Jun 24 17:33:43 2006 -0600 first pass darcs-hash:20060624233343-28bda-44e213062ac8cd192c68ce882c59d15ea938ada4.gz diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..6e750a7 --- /dev/null +++ b/Rakefile @@ -0,0 +1,4 @@ +require 'rake/testtask' + +Rake::TestTask.new do |t| +end diff --git a/lib/lirc.rb b/lib/lirc.rb new file mode 100644 index 0000000..0b32cd7 --- /dev/null +++ b/lib/lirc.rb @@ -0,0 +1,23 @@ +require 'socket' + +module LIRC + class Client + def initialize(dev="/dev/lircd") + @sock = UNIXSocket.open(dev) + end + def next + Event.new(@sock.readline) + end + end + class Event + attr_reader :code, :repeat, :name, :remote + def initialize(str) + code, repeat, @name, @remote = str.split(' ', 4) + @code = code.hex + @repeat = repeat.to_i + end + def repeat? + @repeat > 0 + end + end +end diff --git a/test/test_lirc.rb b/test/test_lirc.rb new file mode 100644 index 0000000..856b7e2 --- /dev/null +++ b/test/test_lirc.rb @@ -0,0 +1,25 @@ +require 'test/unit' +require 'lirc' + +class TC_LIRC < Test::Unit::TestCase + include LIRC + def setup + end + def teardown + end + def test_event + e = Event.new("00000000000a8b59 00 power Sony-838") + assert_equal 0xa8b59, e.code + assert_equal 0, e.repeat + assert ! e.repeat? + assert_equal "power", e.name + assert_equal "Sony-838", e.remote + + e = Event.new("00000000000a8b59 01 power Sony-838") + assert_equal 0xa8b59, e.code + assert_equal 1, e.repeat + assert e.repeat? + assert_equal "power", e.name + assert_equal "Sony-838", e.remote + end +end