File indexing completed on 2024-05-12 09:36:12

0001 /*
0002  *  SPDX-FileCopyrightText: 2012 Alejandro Fiestas Olivares <afiestas@kde.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include "abstractbackend.h"
0010 #include "config.h"
0011 
0012 #include <QLoggingCategory>
0013 #include <QObject>
0014 
0015 class Fake : public KScreen::AbstractBackend
0016 {
0017     Q_OBJECT
0018     Q_PLUGIN_METADATA(IID "org.kf6.kscreen.backends.fake")
0019 
0020 public:
0021     explicit Fake();
0022     ~Fake() override;
0023 
0024     void init(const QVariantMap &arguments) override;
0025 
0026     QString name() const override;
0027     QString serviceName() const override;
0028     KScreen::ConfigPtr config() const override;
0029     void setConfig(const KScreen::ConfigPtr &config) override;
0030     QByteArray edid(int outputId) const override;
0031     bool isValid() const override;
0032 
0033     void setConnected(int outputId, bool connected);
0034     void setEnabled(int outputId, bool enabled);
0035     void setPrimary(int outputId, bool primary);
0036     void setCurrentModeId(int outputId, const QString &modeId);
0037     void setRotation(int outputId, int rotation);
0038     void addOutput(int outputId, const QString &name);
0039     void removeOutput(int outputId);
0040 
0041 private Q_SLOTS:
0042     void delayedInit();
0043 
0044 private:
0045     QString mConfigFile;
0046     KScreen::Config::Features mSupportedFeatures = KScreen::Config::Feature::None;
0047     mutable KScreen::ConfigPtr mConfig;
0048 };
0049 Q_DECLARE_LOGGING_CATEGORY(KSCREEN_FAKE)