From 604f1cab3a899a1877e787e0e6e42b58c289f3ed Mon Sep 17 00:00:00 2001
From: Luke Horwell <code@horwell.me>
Date: Sat, 28 Nov 2020 11:08:48 +0000
Subject: [PATCH] daemon: Fix wrong data type being written for persistence

The daemon would throw an exception upon next run as it was reading a
bytes when it expected an integer.

The starlight effect and some brightnesses were affected.

Fixes #1351.
Fixes #1354.
---
 .../dbus_services/dbus_methods/chroma_keyboard.py         | 8 ++++----
 .../dbus_services/dbus_methods/deathadder_chroma.py       | 4 ++--
 .../dbus_services/dbus_methods/lanceheadte.py             | 4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/daemon/openrazer_daemon/dbus_services/dbus_methods/chroma_keyboard.py b/daemon/openrazer_daemon/dbus_services/dbus_methods/chroma_keyboard.py
index 7acbc51c..5ae409fc 100644
--- a/daemon/openrazer_daemon/dbus_services/dbus_methods/chroma_keyboard.py
+++ b/daemon/openrazer_daemon/dbus_services/dbus_methods/chroma_keyboard.py
@@ -37,7 +37,7 @@ def set_brightness(self, brightness):
     elif brightness < 0:
         brightness = 0
 
-    self.set_persistence("backlight", "brightness", brightness)
+    self.set_persistence("backlight", "brightness", int(brightness))
 
     brightness = int(round(brightness * (255.0 / 100.0)))
 
@@ -587,7 +587,7 @@ def set_starlight_random_effect(self, speed):
 
     # remember effect
     self.set_persistence("backlight", "effect", 'starlightRandom')
-    self.set_persistence("backlight", "speed", speed)
+    self.set_persistence("backlight", "speed", int(speed))
 
 
 @endpoint('razer.device.lighting.chroma', 'setStarlightSingle', in_sig='yyyy')
@@ -607,7 +607,7 @@ def set_starlight_single_effect(self, red, green, blue, speed):
 
     # remember effect
     self.set_persistence("backlight", "effect", 'starlightSingle')
-    self.set_persistence("backlight", "speed", speed)
+    self.set_persistence("backlight", "speed", int(speed))
     self.zone["backlight"]["colors"][0:3] = int(red), int(green), int(blue)
 
 
@@ -628,5 +628,5 @@ def set_starlight_dual_effect(self, red1, green1, blue1, red2, green2, blue2, sp
 
     # remember effect
     self.set_persistence("backlight", "effect", 'starlightDual')
-    self.set_persistence("backlight", "speed", speed)
+    self.set_persistence("backlight", "speed", int(speed))
     self.zone["backlight"]["colors"][0:6] = int(red1), int(green1), int(blue1), int(red2), int(green2), int(blue2)
diff --git a/daemon/openrazer_daemon/dbus_services/dbus_methods/deathadder_chroma.py b/daemon/openrazer_daemon/dbus_services/dbus_methods/deathadder_chroma.py
index 68883734..58fb8e0b 100644
--- a/daemon/openrazer_daemon/dbus_services/dbus_methods/deathadder_chroma.py
+++ b/daemon/openrazer_daemon/dbus_services/dbus_methods/deathadder_chroma.py
@@ -118,7 +118,7 @@ def set_logo_brightness(self, brightness):
     elif brightness < 0:
         brightness = 0
 
-    self.set_persistence("logo", "brightness", brightness)
+    self.set_persistence("logo", "brightness", int(brightness))
 
     brightness = int(round(brightness * (255.0 / 100.0)))
 
@@ -322,7 +322,7 @@ def set_scroll_brightness(self, brightness):
     elif brightness < 0:
         brightness = 0
 
-    self.set_persistence("scroll", "brightness", brightness)
+    self.set_persistence("scroll", "brightness", int(brightness))
 
     brightness = int(round(brightness * (255.0 / 100.0)))
 
diff --git a/daemon/openrazer_daemon/dbus_services/dbus_methods/lanceheadte.py b/daemon/openrazer_daemon/dbus_services/dbus_methods/lanceheadte.py
index dc3fe108..ae5fd343 100644
--- a/daemon/openrazer_daemon/dbus_services/dbus_methods/lanceheadte.py
+++ b/daemon/openrazer_daemon/dbus_services/dbus_methods/lanceheadte.py
@@ -81,7 +81,7 @@ def set_left_brightness(self, brightness):
     elif brightness < 0:
         brightness = 0
 
-    self.set_persistence("left", "brightness", brightness)
+    self.set_persistence("left", "brightness", int(brightness))
 
     brightness = int(round(brightness * (255.0 / 100.0)))
 
@@ -347,7 +347,7 @@ def set_right_brightness(self, brightness):
     elif brightness < 0:
         brightness = 0
 
-    self.set_persistence("right", "brightness", brightness)
+    self.set_persistence("right", "brightness", int(brightness))
 
     brightness = int(round(brightness * (255.0 / 100.0)))
 
-- 
GitLab