first pass
darcs-hash:20060624233343-28bda-44e213062ac8cd192c68ce882c59d15ea938ada4.gz
This commit is contained in:
commit
5ab38cf0ec
4
Rakefile
Normal file
4
Rakefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
require 'rake/testtask'
|
||||
|
||||
Rake::TestTask.new do |t|
|
||||
end
|
23
lib/lirc.rb
Normal file
23
lib/lirc.rb
Normal file
|
@ -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
|
25
test/test_lirc.rb
Normal file
25
test/test_lirc.rb
Normal file
|
@ -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
|
Loading…
Reference in a new issue