diff --git a/framebuffers/pipewire/pw_framebufferplugin.cpp b/framebuffers/pipewire/pw_framebufferplugin.cpp index 791b239d..fd32bff6 100644 --- a/framebuffers/pipewire/pw_framebufferplugin.cpp +++ b/framebuffers/pipewire/pw_framebufferplugin.cpp @@ -36,9 +36,10 @@ PWFrameBufferPlugin::~PWFrameBufferPlugin() { } - -FrameBuffer *PWFrameBufferPlugin::frameBuffer(WId id) +FrameBuffer *PWFrameBufferPlugin::frameBuffer(WId id, const QVariantMap &args) { + //NOTE WId is irrelevant in Wayland + auto pwfb = new PWFrameBuffer(id); // sanity check for dbus/wayland/pipewire errors diff --git a/framebuffers/pipewire/pw_framebufferplugin.h b/framebuffers/pipewire/pw_framebufferplugin.h index e071585a..37dc4106 100644 --- a/framebuffers/pipewire/pw_framebufferplugin.h +++ b/framebuffers/pipewire/pw_framebufferplugin.h @@ -35,7 +35,7 @@ public: PWFrameBufferPlugin(QObject *parent, const QVariantList &args); virtual ~PWFrameBufferPlugin() override; - FrameBuffer *frameBuffer(WId id) override; + FrameBuffer *frameBuffer(WId id, const QVariantMap &args) override; private: Q_DISABLE_COPY(PWFrameBufferPlugin) diff --git a/framebuffers/qt/qtframebufferplugin.cpp b/framebuffers/qt/qtframebufferplugin.cpp index 50685662..d60c0c98 100644 --- a/framebuffers/qt/qtframebufferplugin.cpp +++ b/framebuffers/qt/qtframebufferplugin.cpp @@ -36,8 +36,9 @@ QtFrameBufferPlugin::~QtFrameBufferPlugin() { } -FrameBuffer *QtFrameBufferPlugin::frameBuffer(WId id) +FrameBuffer *QtFrameBufferPlugin::frameBuffer(WId id, const QVariantMap &args) { + Q_UNUSED(args); return new QtFrameBuffer(id); } diff --git a/framebuffers/qt/qtframebufferplugin.h b/framebuffers/qt/qtframebufferplugin.h index e796e77d..beadf846 100644 --- a/framebuffers/qt/qtframebufferplugin.h +++ b/framebuffers/qt/qtframebufferplugin.h @@ -35,7 +35,7 @@ public: QtFrameBufferPlugin(QObject *parent, const QVariantList &args); ~QtFrameBufferPlugin() override; - FrameBuffer *frameBuffer(WId id) override; + FrameBuffer *frameBuffer(WId id, const QVariantMap &args) override; private: Q_DISABLE_COPY(QtFrameBufferPlugin) diff --git a/framebuffers/xcb/xcb_framebufferplugin.cpp b/framebuffers/xcb/xcb_framebufferplugin.cpp index 0efa4b10..5d7a4e42 100644 --- a/framebuffers/xcb/xcb_framebufferplugin.cpp +++ b/framebuffers/xcb/xcb_framebufferplugin.cpp @@ -37,8 +37,9 @@ XCBFrameBufferPlugin::~XCBFrameBufferPlugin() } -FrameBuffer *XCBFrameBufferPlugin::frameBuffer(WId id) +FrameBuffer *XCBFrameBufferPlugin::frameBuffer(WId id, const QVariantMap &args) { + Q_UNUSED(args); return new XCBFrameBuffer(id); } diff --git a/framebuffers/xcb/xcb_framebufferplugin.h b/framebuffers/xcb/xcb_framebufferplugin.h index bf614f77..1e100648 100644 --- a/framebuffers/xcb/xcb_framebufferplugin.h +++ b/framebuffers/xcb/xcb_framebufferplugin.h @@ -35,7 +35,7 @@ public: XCBFrameBufferPlugin(QObject *parent, const QVariantList &args); ~XCBFrameBufferPlugin() override; - FrameBuffer *frameBuffer(WId id) override; + FrameBuffer *frameBuffer(WId id, const QVariantMap &args) override; private: Q_DISABLE_COPY(XCBFrameBufferPlugin) diff --git a/krfb/framebuffermanager.cpp b/krfb/framebuffermanager.cpp index d8950e40..4666524d 100644 --- a/krfb/framebuffermanager.cpp +++ b/krfb/framebuffermanager.cpp @@ -93,7 +93,7 @@ void FrameBufferManager::loadPlugins() } } -QSharedPointer FrameBufferManager::frameBuffer(WId id) +QSharedPointer FrameBufferManager::frameBuffer(WId id, const QVariantMap &args) { //qDebug(); @@ -118,7 +118,7 @@ QSharedPointer FrameBufferManager::frameBuffer(WId id) if (iter.key() == KrfbConfig::preferredFrameBufferPlugin()) { qCDebug(KRFB) << "Using FrameBuffer:" << KrfbConfig::preferredFrameBufferPlugin(); - QSharedPointer frameBuffer(iter.value()->frameBuffer(id)); + QSharedPointer frameBuffer(iter.value()->frameBuffer(id, args)); if (frameBuffer) { m_frameBuffers.insert(id, frameBuffer.toWeakRef()); diff --git a/krfb/framebuffermanager.h b/krfb/framebuffermanager.h index d12a2160..d08fd6a4 100644 --- a/krfb/framebuffermanager.h +++ b/krfb/framebuffermanager.h @@ -45,7 +45,7 @@ public: ~FrameBufferManager() override; - QSharedPointer frameBuffer(WId id); + QSharedPointer frameBuffer(WId id, const QVariantMap &args); private: Q_DISABLE_COPY(FrameBufferManager) diff --git a/krfb/framebufferplugin.h b/krfb/framebufferplugin.h index e6140fd1..1c88a072 100644 --- a/krfb/framebufferplugin.h +++ b/krfb/framebufferplugin.h @@ -37,7 +37,7 @@ public: explicit FrameBufferPlugin(QObject *parent, const QVariantList &args); ~FrameBufferPlugin() override; - virtual FrameBuffer *frameBuffer(WId id) = 0; + virtual FrameBuffer *frameBuffer(WId id, const QVariantMap &args) = 0; }; #endif // Header guard diff --git a/krfb/rfbservermanager.cpp b/krfb/rfbservermanager.cpp index 96d8c8d4..2040cfb4 100644 --- a/krfb/rfbservermanager.cpp +++ b/krfb/rfbservermanager.cpp @@ -120,11 +120,12 @@ QSharedPointer RfbServerManager::framebuffer() const return d->fb; } +QVariantMap RfbServerManager::s_pluginArgs; + void RfbServerManager::init() { //qDebug(); - - d->fb = FrameBufferManager::instance()->frameBuffer(QApplication::desktop()->winId()); + d->fb = FrameBufferManager::instance()->frameBuffer(QApplication::desktop()->winId(), s_pluginArgs); d->myCursor = rfbMakeXCursor(19, 19, (char *) cur, (char *) mask); d->myCursor->cleanup = false; d->desktopName = QStringLiteral("%1@%2 (shared desktop)") //FIXME check if we can use utf8 diff --git a/krfb/rfbservermanager.h b/krfb/rfbservermanager.h index 4a1a58c7..4b294f1d 100644 --- a/krfb/rfbservermanager.h +++ b/krfb/rfbservermanager.h @@ -23,6 +23,7 @@ #include "rfb.h" #include "framebuffer.h" #include +#include class RfbClient; struct RfbServerManagerStatic; @@ -35,6 +36,7 @@ public: static RfbServerManager *instance(); QSharedPointer framebuffer() const; + static QVariantMap s_pluginArgs; Q_SIGNALS: void clientConnected(RfbClient *cc); void clientDisconnected(RfbClient *cc);