Example #1
0
class LircToShet(LircProtocolFactory):
	
	def __init__(self, root, remote):
		self.shet = ShetClient()
		self.shet.root = root
		self.shet.install()
		self.remote = remote
		self.events = {}
		
	
	def on_connect(self):
		self.list(self.remote).addCallback(self.recv_keys)
	
	def recv_keys(self, keys):
		self.shet.reset()
		for key in keys:
			code, name = key.split()
			
			self.shet.add_action(join("send", name), partial(self.send, name))
			
			on_command = self.shet.add_event(join("on_command", name))
			on_first_command = self.shet.add_event(join("on_first_command", name))
			self.events[name] = (on_command, on_first_command)
	
	def on_command(self, seq, code, remote):
		if remote == self.remote:
			self.events[code][0](seq)
	
	def on_first_command(self, code, remote):
		if remote == self.remote:
			self.events[code][1]()
	
	def send(self, name):
		return self.send_once(self.remote, name)