From a4b71944901410c5bfed5a137ed69cd4323a8ff5 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 11 Sep 2017 09:42:44 -0300 Subject: [PATCH] listener: fix device registration logic The "already_known" var actually doesn't track if the device was already registered or not. That causes race issues at Solaar, causing it to sometimes not detect a device. Change the logic to always call register_new_device if the corresponding events happen, and updating already_known to reflect it. Signed-off-by: Mauro Carvalho Chehab --- lib/solaar/listener.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/solaar/listener.py b/lib/solaar/listener.py index a7f9040d..04efd436 100644 --- a/lib/solaar/listener.py +++ b/lib/solaar/listener.py @@ -183,7 +183,9 @@ class ReceiverListener(_listener.EventsListener): # a device notification assert n.devnumber > 0 and n.devnumber <= self.receiver.max_devices already_known = n.devnumber in self.receiver - if not already_known and n.sub_id == 0x41: + + if n.sub_id == 0x41: + already_known = False dev = self.receiver.register_new_device(n.devnumber, n) else: dev = self.receiver[n.devnumber]