lifx-async 4.3.9__py3-none-any.whl → 4.4.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lifx/__init__.py +10 -0
- lifx/api.py +19 -23
- lifx/const.py +2 -1
- lifx/devices/__init__.py +12 -9
- lifx/devices/base.py +590 -58
- lifx/devices/hev.py +168 -8
- lifx/devices/infrared.py +117 -4
- lifx/devices/light.py +175 -10
- lifx/devices/matrix.py +226 -16
- lifx/devices/multizone.py +156 -21
- lifx/protocol/generator.py +41 -0
- lifx/protocol/protocol_types.py +9 -4
- lifx/theme/generators.py +8 -2
- {lifx_async-4.3.9.dist-info → lifx_async-4.4.1.dist-info}/METADATA +1 -1
- {lifx_async-4.3.9.dist-info → lifx_async-4.4.1.dist-info}/RECORD +17 -17
- {lifx_async-4.3.9.dist-info → lifx_async-4.4.1.dist-info}/WHEEL +0 -0
- {lifx_async-4.3.9.dist-info → lifx_async-4.4.1.dist-info}/licenses/LICENSE +0 -0
lifx/protocol/protocol_types.py
CHANGED
|
@@ -653,6 +653,7 @@ class TileStateDevice:
|
|
|
653
653
|
user_y: float
|
|
654
654
|
width: int
|
|
655
655
|
height: int
|
|
656
|
+
supported_frame_buffers: int
|
|
656
657
|
device_version: DeviceStateVersion
|
|
657
658
|
firmware: DeviceStateHostFirmware
|
|
658
659
|
|
|
@@ -676,8 +677,8 @@ class TileStateDevice:
|
|
|
676
677
|
result += serializer.pack_value(self.width, "uint8")
|
|
677
678
|
# height: uint8
|
|
678
679
|
result += serializer.pack_value(self.height, "uint8")
|
|
679
|
-
#
|
|
680
|
-
result += serializer.
|
|
680
|
+
# supported_frame_buffers: uint8
|
|
681
|
+
result += serializer.pack_value(self.supported_frame_buffers, "uint8")
|
|
681
682
|
# device_version: DeviceStateVersion
|
|
682
683
|
result += self.device_version.pack()
|
|
683
684
|
# firmware: DeviceStateHostFirmware
|
|
@@ -711,8 +712,10 @@ class TileStateDevice:
|
|
|
711
712
|
width, current_offset = serializer.unpack_value(data, "uint8", current_offset)
|
|
712
713
|
# height: uint8
|
|
713
714
|
height, current_offset = serializer.unpack_value(data, "uint8", current_offset)
|
|
714
|
-
#
|
|
715
|
-
current_offset
|
|
715
|
+
# supported_frame_buffers: uint8
|
|
716
|
+
supported_frame_buffers, current_offset = serializer.unpack_value(
|
|
717
|
+
data, "uint8", current_offset
|
|
718
|
+
)
|
|
716
719
|
# device_version: DeviceStateVersion
|
|
717
720
|
device_version, current_offset = DeviceStateVersion.unpack(data, current_offset)
|
|
718
721
|
# firmware: DeviceStateHostFirmware
|
|
@@ -727,6 +730,7 @@ class TileStateDevice:
|
|
|
727
730
|
user_y=user_y,
|
|
728
731
|
width=width,
|
|
729
732
|
height=height,
|
|
733
|
+
supported_frame_buffers=supported_frame_buffers,
|
|
730
734
|
device_version=device_version,
|
|
731
735
|
firmware=firmware,
|
|
732
736
|
),
|
|
@@ -790,6 +794,7 @@ FIELD_MAPPINGS: dict[str, dict[str, str]] = {
|
|
|
790
794
|
"device_version": "DeviceVersion",
|
|
791
795
|
"firmware": "Firmware",
|
|
792
796
|
"height": "Height",
|
|
797
|
+
"supported_frame_buffers": "SupportedFrameBuffers",
|
|
793
798
|
"user_x": "UserX",
|
|
794
799
|
"user_y": "UserY",
|
|
795
800
|
"width": "Width",
|
lifx/theme/generators.py
CHANGED
|
@@ -165,10 +165,16 @@ class MatrixGenerator:
|
|
|
165
165
|
shuffled_theme = theme.shuffled()
|
|
166
166
|
shuffled_theme.ensure_color()
|
|
167
167
|
|
|
168
|
+
# Add points for all tiles first
|
|
168
169
|
for (left_x, top_y), (width, height) in self.coords_and_sizes:
|
|
169
170
|
canvas.add_points_for_tile((left_x, top_y), shuffled_theme)
|
|
170
|
-
|
|
171
|
-
|
|
171
|
+
|
|
172
|
+
# Shuffle and blur ONCE after all points are added
|
|
173
|
+
# (Previously these were inside the loop, causing earlier tiles' points
|
|
174
|
+
# to be shuffled/blurred multiple times, displacing them from their
|
|
175
|
+
# intended positions and losing theme color variety)
|
|
176
|
+
canvas.shuffle_points()
|
|
177
|
+
canvas.blur_by_distance()
|
|
172
178
|
|
|
173
179
|
# Create tile canvas and fill gaps
|
|
174
180
|
tile_canvas = Canvas()
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
lifx/__init__.py,sha256=
|
|
2
|
-
lifx/api.py,sha256=
|
|
1
|
+
lifx/__init__.py,sha256=GBubbz5IrtHDMCJ9aeBzOGztvg0GTLE70rS_di1VMBQ,2524
|
|
2
|
+
lifx/api.py,sha256=PFS2b28ow40kCQvT_MKvBLZD6fKCbvsoOQFtiODDrPE,33861
|
|
3
3
|
lifx/color.py,sha256=wcmeeiBmOAjunInERNd6rslKvBEpV4vfjwwiZ8v7H8A,17877
|
|
4
|
-
lifx/const.py,sha256=
|
|
4
|
+
lifx/const.py,sha256=cf_O_3TqJjIBXF1tI35PkJ1JOhmy4tRt14PSa63pilA,3471
|
|
5
5
|
lifx/exceptions.py,sha256=pikAMppLn7gXyjiQVWM_tSvXKNh-g366nG_UWyqpHhc,815
|
|
6
6
|
lifx/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
lifx/devices/__init__.py,sha256=
|
|
8
|
-
lifx/devices/base.py,sha256=
|
|
9
|
-
lifx/devices/hev.py,sha256=
|
|
10
|
-
lifx/devices/infrared.py,sha256=
|
|
11
|
-
lifx/devices/light.py,sha256=
|
|
12
|
-
lifx/devices/matrix.py,sha256=
|
|
13
|
-
lifx/devices/multizone.py,sha256=
|
|
7
|
+
lifx/devices/__init__.py,sha256=vMNbhQKMpx3zD7EPbiejjDoAYTeT-q_USYez0RtwgmQ,951
|
|
8
|
+
lifx/devices/base.py,sha256=x2RlGeCv60QLKklP6kA9wbCc3rmcHHhmvkSJHqTow5s,63151
|
|
9
|
+
lifx/devices/hev.py,sha256=T5hvt2q_vdgPBvThx_-M7n5pZu9pL0y9Fs3Zz_KL0NM,15588
|
|
10
|
+
lifx/devices/infrared.py,sha256=ePk9qxX_s-hv5gQMvio1Vv8FYiCd68HF0ySbWgSrvuU,8130
|
|
11
|
+
lifx/devices/light.py,sha256=gk92lhViUWINGaxDWbs4qn8Stnn2fGCfRkC5Kk0Q-hI,34087
|
|
12
|
+
lifx/devices/matrix.py,sha256=8Z0FbBGUzRhvqs3h9fL9ZQ691C9mAoA6kuOrhe89Qwk,41061
|
|
13
|
+
lifx/devices/multizone.py,sha256=8OJ6zP5xgSCmlMQDj2mLUZ352EMkbYMbDZ1X-Cux7AU,32786
|
|
14
14
|
lifx/effects/__init__.py,sha256=4DF31yp7RJic5JoltMlz5dCtF5KQobU6NOUtLUKkVKE,1509
|
|
15
15
|
lifx/effects/base.py,sha256=YO0Hbg2VYHKPtfYnWxmrtzYoPGOi9BUXhn8HVFKv5IM,10283
|
|
16
16
|
lifx/effects/colorloop.py,sha256=kuuyENJS2irAN8vZAFsDa2guQdDbmmc4PJNiyZTfFPE,15840
|
|
@@ -29,18 +29,18 @@ lifx/products/generator.py,sha256=5bDFfrJ8ocwuhEr4dZB4LpVcqOqC3KxJSDiphPMu8CI,15
|
|
|
29
29
|
lifx/products/registry.py,sha256=ILIJlQxcxJUzRH-LGU_bnHjV-TxDEucKovuJcWvG4q8,43831
|
|
30
30
|
lifx/protocol/__init__.py,sha256=-wjC-wBcb7fxi5I-mJr2Ad8K2YRflJFdLLdobfD-W1Q,56
|
|
31
31
|
lifx/protocol/base.py,sha256=x4cKT5sbaEmILbmPH3y5Lwk6gj3h9Xv_JvTX91cPQwM,12354
|
|
32
|
-
lifx/protocol/generator.py,sha256=
|
|
32
|
+
lifx/protocol/generator.py,sha256=bmLjr8xNClD-kfo9_z4CTDIiP1OkmPcNsD2Mkz41NhA,60619
|
|
33
33
|
lifx/protocol/header.py,sha256=HaYQ5wEjAMgefO3dIxKb0w4VG4fLcfLj-fnHVwfp1ao,7174
|
|
34
34
|
lifx/protocol/models.py,sha256=eOvOSAWbglR1SYWcC_YpicewtsdbVlQ6E2lfcC4NQrk,8172
|
|
35
35
|
lifx/protocol/packets.py,sha256=ENp3irGITdV5rGah3eUzgsXqihI95upAPh7AdTsP7sk,43303
|
|
36
|
-
lifx/protocol/protocol_types.py,sha256=
|
|
36
|
+
lifx/protocol/protocol_types.py,sha256=m15A82zVrwAXomTqo-GfNmAIynVRDSV94UqHDkWgiJI,23781
|
|
37
37
|
lifx/protocol/serializer.py,sha256=Cl87-Y8_LnvqFANjorJK2CMoRtBGksB_Eq07xHMTqH0,10387
|
|
38
38
|
lifx/theme/__init__.py,sha256=dg4Y25dYq22EemFyxQ1fyb3D_bP2hhxGCd9BE1g_hvk,1320
|
|
39
39
|
lifx/theme/canvas.py,sha256=4h7lgN8iu_OdchObGDgbxTqQLCb-FRKC-M-YCWef_i4,8048
|
|
40
|
-
lifx/theme/generators.py,sha256=
|
|
40
|
+
lifx/theme/generators.py,sha256=nq3Yvntq_h-eFHbmmow3LcAdA_hEbRRaP5mv9Bydrjk,6435
|
|
41
41
|
lifx/theme/library.py,sha256=tKlKZNqJp8lRGDnilWyDm_Qr1vCRGGwuvWVS82anNpQ,21326
|
|
42
42
|
lifx/theme/theme.py,sha256=qMEx_8E41C0Cc6f083XHiAXEglTv4YlXW0UFsG1rQKg,5521
|
|
43
|
-
lifx_async-4.
|
|
44
|
-
lifx_async-4.
|
|
45
|
-
lifx_async-4.
|
|
46
|
-
lifx_async-4.
|
|
43
|
+
lifx_async-4.4.1.dist-info/METADATA,sha256=GPXITqP1r-6RIp91S1SuabkN4ie0cJxMvM498v3AKwg,2609
|
|
44
|
+
lifx_async-4.4.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
45
|
+
lifx_async-4.4.1.dist-info/licenses/LICENSE,sha256=eBz48GRA3gSiWn3rYZAz2Ewp35snnhV9cSqkVBq7g3k,1832
|
|
46
|
+
lifx_async-4.4.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|