diff --git a/src/cfclient/configs/config.json b/src/cfclient/configs/config.json index bb92591efe544bc86c28072ab1592b17e5516745..82bb36e5109cb5aae7e08f2d55b3f86bef1e296b 100644 --- a/src/cfclient/configs/config.json +++ b/src/cfclient/configs/config.json @@ -14,6 +14,7 @@ "max_rp": 30, "client_side_xmode": false, "auto_reconnect": false, + "keep_alive": false, "device_config_mapping": {}, "enable_debug_driver": false, "input_device_blacklist": "(VirtualBox|VMware)", diff --git a/src/cfclient/ui/main.py b/src/cfclient/ui/main.py index 64f5929a1d72f790e5b395c1463ba119d9028f76..e8ad3370024641a08553f59760e7f69dcc0e322b 100644 --- a/src/cfclient/ui/main.py +++ b/src/cfclient/ui/main.py @@ -244,6 +244,11 @@ class MainUI(QtWidgets.QMainWindow, main_window_class): self._auto_reconnect_changed) self.autoReconnectCheckBox.setChecked(Config().get("auto_reconnect")) + self._keep_alive_enabled = Config().get("keep_alive") + self.keepAliveCheckBox.toggled.connect( + self._keep_alive_changed) + self.keepAliveCheckBox.setChecked(Config().get("keep_alive")) + self._disable_input = False self.joystickReader.input_updated.add_callback( @@ -551,6 +556,19 @@ class MainUI(QtWidgets.QMainWindow, main_window_class): Config().set("auto_reconnect", checked) logger.info("Auto reconnect enabled: {}".format(checked)) + def _keep_alive_changed(self, checked): + self._keep_alive_enabled = checked + Config().set("keep_alive", checked) + logger.info("Keep alive enabled: {}".format(checked)) + + if checked: + cflib.crtp.radiodriver.set_retries_before_disconnect(99999999999999999) # never disconnect :) + cflib.crtp.radiodriver.set_retries(3) + else: + cflib.crtp.radiodriver.set_retries_before_disconnect(1500) # default + cflib.crtp.radiodriver.set_retries(3) + + def _show_connect_dialog(self): self.logConfigDialogue.show() diff --git a/src/cfclient/ui/main.ui b/src/cfclient/ui/main.ui index e2f4e36939ecbf2a82ca384a0c8f8d3b70b2af26..f754129a8a503216319c9b9387a4953b4ed9548a 100644 --- a/src/cfclient/ui/main.ui +++ b/src/cfclient/ui/main.ui @@ -189,7 +189,7 @@ </item> <item> <widget class="QGroupBox" name="groupBox"> - <layout class="QHBoxLayout" stretch="0,0,1"> + <layout class="QHBoxLayout" stretch="0,0,0,1"> <item> <widget class="QLabel" name="addressLabel"> <property name="text"> @@ -220,6 +220,19 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="keepAliveCheckBox"> + <property name="mouseTracking"> + <bool>false</bool> + </property> + <property name="text"> + <string>Keep Alive</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> </layout> </widget> </item>