diff --git a/oversteer/device_manager.py b/oversteer/device_manager.py index f30a4f8..a4d1108 100644 --- a/oversteer/device_manager.py +++ b/oversteer/device_manager.py @@ -10,9 +10,9 @@ class DeviceManager: def __init__(self): self.supported_wheels = { wid.CM_C5: 1080, - wid.FT_CSL_DD: 1080, - wid.FT_CSL_ELITE: 1080, - wid.FT_CSL_ELITE_PS4: 1080, + wid.FT_CSL_DD: 2520, + wid.FT_CSL_ELITE: 2520, + wid.FT_CSL_ELITE_PS4: 2520, wid.FT_CSV25: 900, wid.FT_CSV2: 900, wid.FT_PDD1: 1080, @@ -50,7 +50,7 @@ def __init__(self): wid.TS_PC: 1080, wid.TM_TX: 900, wid.XX_FFBOARD: 1080, - wid.FF_FLASHFIRE_900R: 900, + wid.FF_FLASHFIRE_900R: 900, } self.devices = {} self.changed = True diff --git a/oversteer/gtk_ui.py b/oversteer/gtk_ui.py index 8cd63b5..7465d79 100644 --- a/oversteer/gtk_ui.py +++ b/oversteer/gtk_ui.py @@ -704,20 +704,34 @@ def _set_markers(self): self.ff_friction_level.add_mark(100, Gtk.PositionType.BOTTOM, '100') def _set_range_markers(self, max_range): + # set the markers for different wheel rotation ranges + markers_low = (9, 18, 24, 27) + markers_normal = (9, 18, 27, 36, 45, 54, 72, 90, 108) + markers_high = (9, 36, 72, 108, 144, 180, 216, 252) + + # mapping max_range to the number of markers we create + limit_map = { + 90: 0, + 180: 1, + 240: 2, + 270: 3, + # the upper values are for markers_low + # ther lower values are for markers_normal + 900: 7, + 1080: 8, + } + limit = limit_map.get(max_range, -1) + + if max_range <= 270: + markers = markers_low + elif max_range <= 1080: + markers = markers_normal + else: + markers = markers_high + self.wheel_range.clear_marks() - if max_range >= 180: - self.wheel_range.add_mark(18, Gtk.PositionType.BOTTOM, '180') - if max_range >= 270: - self.wheel_range.add_mark(27, Gtk.PositionType.BOTTOM, '270') - if max_range >= 360: - self.wheel_range.add_mark(36, Gtk.PositionType.BOTTOM, '360') - if max_range >= 450: - self.wheel_range.add_mark(45, Gtk.PositionType.BOTTOM, '450') - if max_range >= 540: - self.wheel_range.add_mark(54, Gtk.PositionType.BOTTOM, '540') - if max_range >= 720: - self.wheel_range.add_mark(72, Gtk.PositionType.BOTTOM, '720') - if max_range >= 900: - self.wheel_range.add_mark(90, Gtk.PositionType.BOTTOM, '900') - if max_range >= 1080: - self.wheel_range.add_mark(108, Gtk.PositionType.BOTTOM, '1080') + self.wheel_range.get_adjustment().set_upper(markers[limit]) + for i, m in enumerate(markers): + self.wheel_range.add_mark(m, Gtk.PositionType.BOTTOM, str(m) + '0') + if i == limit: + break diff --git a/oversteer/main.ui b/oversteer/main.ui index b5ad218..e9842e8 100644 --- a/oversteer/main.ui +++ b/oversteer/main.ui @@ -297,8 +297,8 @@ - 4 - 108 + 9 + 252 90 1 3 @@ -574,7 +574,7 @@ True center wheel_range_setup - 108 + 252 0 0