@@ -746,14 +746,38 @@ def debounce_time(self):
746746 def motion_sync (self ):
747747 return bool (self .settings [ADDR_MOTION_SYNC ])
748748
749+ @motion_sync .setter
750+ def motion_sync (self , enabled ):
751+ value = Bool (enabled )
752+ self ._mem_set ({
753+ ADDR_MOTION_SYNC : value ,
754+ ADDR_MOTION_SYNC_CHECKSUM : checksum (value )
755+ })
756+
749757 @property
750758 def lod_ripple (self ):
751759 return bool (self .settings [ADDR_LOD_RIPPLE ])
752760
761+ @lod_ripple .setter
762+ def lod_ripple (self , enabled ):
763+ value = Bool (enabled )
764+ self ._mem_set ({
765+ ADDR_LOD_RIPPLE : value ,
766+ ADDR_LOD_RIPPLE_CHECKSUM : checksum (value )
767+ })
768+
753769 @property
754770 def angle_snapping (self ):
755771 return bool (self .settings [ADDR_ANGLE_SNAPPING ])
756772
773+ @angle_snapping .setter
774+ def angle_snapping (self , enabled ):
775+ value = Bool (enabled )
776+ self ._mem_set ({
777+ ADDR_ANGLE_SNAPPING : value ,
778+ ADDR_ANGLE_SNAPPING_CHECKSUM : checksum (value )
779+ })
780+
757781 @property
758782 def led_effect (self ):
759783 return LEDEffect (self .settings [ADDR_LED_EFFECT ])
@@ -937,6 +961,27 @@ def _parser_set(args):
937961 if args .led_color is not None :
938962 x2v2 .led_color = args .led_color
939963
964+ if args .motion_sync is not None :
965+ match args .motion_sync :
966+ case 'off' :
967+ x2v2 .motion_sync = False
968+ case 'on' :
969+ x2v2 .motion_sync = True
970+
971+ if args .lod_ripple is not None :
972+ match args .lod_ripple :
973+ case 'off' :
974+ x2v2 .lod_ripple = False
975+ case 'on' :
976+ x2v2 .lod_ripple = True
977+
978+ if args .angle_snapping is not None :
979+ match args .angle_snapping :
980+ case 'off' :
981+ x2v2 .angle_snapping = False
982+ case 'on' :
983+ x2v2 .angle_snapping = True
984+
940985 if args .led_effect is not None :
941986 match args .led_effect :
942987 case 'off' :
@@ -1029,6 +1074,9 @@ def main():
10291074 parser .add_argument ('--led-brightness' , type = int )
10301075 parser .add_argument ('--led-color' , type = _parser_color )
10311076 parser .add_argument ('--led-effect' , choices = ['off' , 'steady' , 'breathe' ])
1077+ parser .add_argument ('--motion-sync' , choices = ['on' , 'off' ])
1078+ parser .add_argument ('--lod-ripple' , choices = ['on' , 'off' ])
1079+ parser .add_argument ('--angle-snapping' , choices = ['on' , 'off' ])
10321080 parser .add_argument ('--polling-rate' , type = int , choices = PollingRateHz )
10331081
10341082 # does not fail when profile does not exist
0 commit comments