refactor(cli): D-Bus helpers support session and system bus types

Introduced `BusType` enum to differentiate between session and system
bus usage in D-Bus calls. Updated `simple_call` and `await_signal`
functions to include a `bus_type` parameter, improving flexibility.
Adjusted `cli_picontrol` to leverage the new `BusType` parameter for
D-Bus interactions.
This commit is contained in:
2025-04-19 12:24:37 +02:00
parent 487d5b3d46
commit 114cbd8099
2 changed files with 80 additions and 21 deletions

View File

@@ -4,7 +4,7 @@
from argparse import ArgumentParser
from logging import getLogger
from .dbus_helper import await_signal, simple_call
from .dbus_helper import BusType, await_signal, simple_call
from .. import proginit as pi
from ..dbus_middleware1 import extend_interface
@@ -36,12 +36,20 @@ def add_subparsers(parent_parser: ArgumentParser):
def method_reset():
log.debug("D-Bus call of method ResetDriver")
simple_call("ResetDriver", interface=extend_interface("picontrol"))
simple_call(
"ResetDriver",
interface=extend_interface("picontrol"),
bus_type=BusType.SESSION if pi.pargs.use_session_bus else BusType.SYSTEM,
)
log.info("ResetDriver called via D-Bus")
def method_await_reset(timout: int = 0):
detected_signal = await_signal("NotifyDriverReset", timout, extend_interface("picontrol"))
detected_signal = await_signal(
"NotifyDriverReset",
timout, extend_interface("picontrol"),
bus_type=BusType.SESSION if pi.pargs.use_session_bus else BusType.SYSTEM,
)
if detected_signal:
log.info("ResetDriver signal received")
else: