// This file is generated by kconfig_compiler_kf6 from krdpserversettings.kcfg.
// All changes you do to this file will be lost.
#ifndef SERVERCONFIG_H
#define SERVERCONFIG_H

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

class ServerConfig : public KConfigSkeleton
{
  public:

    static ServerConfig *self();
    ~ServerConfig() override;

    /**
      Get The port the server listens on
    */
    static
    int listenPort()
    {
      return self()->mListenPort;
    }

    /**
      Is The port the server listens on Immutable
    */
    static
    bool isListenPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ListenPort" ) );
    }

    /**
      Get Are certificates autogenerated during server start
    */
    static
    bool autogenerateCertificates()
    {
      return self()->mAutogenerateCertificates;
    }

    /**
      Is Are certificates autogenerated during server start Immutable
    */
    static
    bool isAutogenerateCertificatesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "AutogenerateCertificates" ) );
    }

    /**
      Get The certificate to use for TLS connections
    */
    static
    QString certificate()
    {
      return self()->mCertificate;
    }

    /**
      Is The certificate to use for TLS connections Immutable
    */
    static
    bool isCertificateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Certificate" ) );
    }

    /**
      Get The key that matches the TLS certificate
    */
    static
    QString certificateKey()
    {
      return self()->mCertificateKey;
    }

    /**
      Is The key that matches the TLS certificate Immutable
    */
    static
    bool isCertificateKeyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CertificateKey" ) );
    }

    /**
      Get The quality of the video stream
    */
    static
    int quality()
    {
      return self()->mQuality;
    }

    /**
      Is The quality of the video stream Immutable
    */
    static
    bool isQualityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Quality" ) );
    }

    /**
      Get Users allowed to login, passwords are stored in KWallet
    */
    static
    QStringList users()
    {
      return self()->mUsers;
    }

    /**
      Is Users allowed to login, passwords are stored in KWallet Immutable
    */
    static
    bool isUsersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Users" ) );
    }

    /**
      Get Whether the current user can log in via PAM
    */
    static
    bool systemUserEnabled()
    {
      return self()->mSystemUserEnabled;
    }

    /**
      Is Whether the current user can log in via PAM Immutable
    */
    static
    bool isSystemUserEnabledImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SystemUserEnabled" ) );
    }

    /**
      Get Autostart the server on login
    */
    static
    bool autostart()
    {
      return self()->mAutostart;
    }

    /**
      Is Autostart the server on login Immutable
    */
    static
    bool isAutostartImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Autostart" ) );
    }

  protected:
    ServerConfig();
    friend class ServerConfigHelper;


    // General
    int mListenPort;
    bool mAutogenerateCertificates;
    QString mCertificate;
    QString mCertificateKey;
    int mQuality;
    QStringList mUsers;
    bool mSystemUserEnabled;
    bool mAutostart;
};

#endif

