Merge pull request #16722 from Ultimaker/CURA-11031_only_start_services_when_required

CURA 11031 only start services when required
This commit is contained in:
Remco Burema 2023-09-13 16:05:57 +02:00 committed by GitHub
commit 75fac58198
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -22,6 +22,10 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject):
self._process = None
self._is_running = False
self._supported_slots: List[int] = []
self._use_plugin = True
def usePlugin(self) -> bool:
return self._use_plugin
def getSupportedSlots(self) -> List[int]:
return self._supported_slots
@ -55,6 +59,8 @@ class BackendPlugin(AdditionalSettingDefinitionsAppender, PluginObject):
:return: True if the plugin process started successfully, False otherwise.
"""
if not self.usePlugin():
return False
try:
# STDIN needs to be None because we provide no input, but communicate via a local socket instead.
# The NUL device sometimes doesn't exist on some computers.

View File

@ -303,6 +303,8 @@ class StartSliceJob(Job):
self._buildExtruderMessage(extruder_stack)
for plugin in CuraApplication.getInstance().getBackendPlugins():
if not plugin.usePlugin():
continue
for slot in plugin.getSupportedSlots():
# Right now we just send the message for every slot that we support. A single plugin can support
# multiple slots