From c4b49cf086a69e47c1054468d38b5f5d790bcd01 Mon Sep 17 00:00:00 2001 From: Devin Lin Date: Tue, 29 Oct 2024 22:01:04 -0700 Subject: [PATCH] hapticsplugin: Only initialize dbus interface if used Only create dbus interface when needed to avoid wasting resources. --- components/hapticsplugin/vibrationmanager.cpp | 7 +++++-- components/hapticsplugin/vibrationmanager.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/components/hapticsplugin/vibrationmanager.cpp b/components/hapticsplugin/vibrationmanager.cpp index 60dc4dfb..7f8a9b67 100644 --- a/components/hapticsplugin/vibrationmanager.cpp +++ b/components/hapticsplugin/vibrationmanager.cpp @@ -6,11 +6,14 @@ VibrationManager::VibrationManager(QObject *parent) : QObject{parent} { - const auto objectPath = QStringLiteral("/com/lomiri/hfd"); - m_interface = new com::lomiri::hfd::Vibrator("com.lomiri.hfd", objectPath, QDBusConnection::systemBus(), this); } void VibrationManager::vibrate(int durationMs) { + // Only create interface when needed. + if (!m_interface) { + const auto objectPath = QStringLiteral("/com/lomiri/hfd"); + m_interface = new com::lomiri::hfd::Vibrator("com.lomiri.hfd", objectPath, QDBusConnection::systemBus(), this); + } m_interface->vibrate(durationMs); } diff --git a/components/hapticsplugin/vibrationmanager.h b/components/hapticsplugin/vibrationmanager.h index edb6dffc..2fd22ced 100644 --- a/components/hapticsplugin/vibrationmanager.h +++ b/components/hapticsplugin/vibrationmanager.h @@ -20,5 +20,5 @@ public: Q_INVOKABLE void vibrate(int durationMs); private: - com::lomiri::hfd::Vibrator *m_interface; + com::lomiri::hfd::Vibrator *m_interface{nullptr}; }; \ No newline at end of file