diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,6 +29,7 @@ target_link_libraries(QPulseAudioPrivate Qt5::Core Qt5::Gui + Qt5::DBus ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY} ${GCONF_LDFLAGS} diff --git a/src/context.cpp b/src/context.cpp --- a/src/context.cpp +++ b/src/context.cpp @@ -25,6 +25,8 @@ #include "debug.h" #include #include +#include +#include #include "card.h" #include "client.h" @@ -177,6 +179,16 @@ , m_mainloop(nullptr) , m_references(0) { + QDBusServiceWatcher *watcher = new QDBusServiceWatcher(QStringLiteral("org.pulseaudio.Server"), + QDBusConnection::sessionBus(), + QDBusServiceWatcher::WatchForRegistration, + this); + connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, [this]() { + if (!m_context) { + connectToDaemon(); + } + }); + connectToDaemon(); }