/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c Monitor -p generated/com_deepin_daemon_display_monitor /build/deepin-qt-dbus-factory/src/dde-qt-dbus-factory-0.4.2.20180301/xml/com.deepin.daemon.Display.Monitor.xml
 *
 * qdbusxml2cpp-fix is Copyright (C) 2016 Deepin Technology Co., Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef COM_DEEPIN_DAEMON_DISPLAY_MONITOR_H
#define COM_DEEPIN_DAEMON_DISPLAY_MONITOR_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>

#include <DBusExtendedAbstractInterface>
#include <QtDBus/QtDBus>

#include "types/resolutionlist.h"
#include "types/reflectlist.h"
#include "types/resolution.h"
#include "types/rotationlist.h"

/*
 * Proxy class for interface com.deepin.daemon.Display.Monitor
 */
class __MonitorPrivate;
class __Monitor : public DBusExtendedAbstractInterface
{
    Q_OBJECT

public:
    static inline const char *staticInterfaceName()
    { return "com.deepin.daemon.Display.Monitor"; }

public:
    explicit __Monitor(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);

    ~__Monitor();

    Q_PROPERTY(Resolution BestMode READ bestMode NOTIFY BestModeChanged)
    Resolution bestMode();

    Q_PROPERTY(bool Connected READ connected NOTIFY ConnectedChanged)
    bool connected();

    Q_PROPERTY(Resolution CurrentMode READ currentMode NOTIFY CurrentModeChanged)
    Resolution currentMode();

    Q_PROPERTY(bool Enabled READ enabled NOTIFY EnabledChanged)
    bool enabled();

    Q_PROPERTY(ushort Height READ height NOTIFY HeightChanged)
    ushort height();

    Q_PROPERTY(ResolutionList Modes READ modes NOTIFY ModesChanged)
    ResolutionList modes();

    Q_PROPERTY(QString Name READ name NOTIFY NameChanged)
    QString name();

    Q_PROPERTY(ushort Reflect READ reflect NOTIFY ReflectChanged)
    ushort reflect();

    Q_PROPERTY(ReflectList Reflects READ reflects NOTIFY ReflectsChanged)
    ReflectList reflects();

    Q_PROPERTY(double RefreshRate READ refreshRate NOTIFY RefreshRateChanged)
    double refreshRate();

    Q_PROPERTY(ushort Rotation READ rotation NOTIFY RotationChanged)
    ushort rotation();

    Q_PROPERTY(RotationList Rotations READ rotations NOTIFY RotationsChanged)
    RotationList rotations();

    Q_PROPERTY(ushort Width READ width NOTIFY WidthChanged)
    ushort width();

    Q_PROPERTY(short X READ x NOTIFY XChanged)
    short x();

    Q_PROPERTY(short Y READ y NOTIFY YChanged)
    short y();

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<> Enable(bool in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(QStringLiteral("Enable"), argumentList);
    }

    inline void EnableQueued(bool in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("Enable"), argumentList);
    }


    inline QDBusPendingReply<> SetMode(uint in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(QStringLiteral("SetMode"), argumentList);
    }

    inline void SetModeQueued(uint in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("SetMode"), argumentList);
    }


    inline QDBusPendingReply<> SetModeBySize(ushort in0, ushort in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("SetModeBySize"), argumentList);
    }

    inline void SetModeBySizeQueued(ushort in0, ushort in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);

        CallQueued(QStringLiteral("SetModeBySize"), argumentList);
    }


    inline QDBusPendingReply<> SetPosition(short in0, short in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("SetPosition"), argumentList);
    }

    inline void SetPositionQueued(short in0, short in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);

        CallQueued(QStringLiteral("SetPosition"), argumentList);
    }


    inline QDBusPendingReply<> SetReflect(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(QStringLiteral("SetReflect"), argumentList);
    }

    inline void SetReflectQueued(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("SetReflect"), argumentList);
    }


    inline QDBusPendingReply<> SetRotation(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(QStringLiteral("SetRotation"), argumentList);
    }

    inline void SetRotationQueued(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("SetRotation"), argumentList);
    }



Q_SIGNALS: // SIGNALS
    // begin property changed signals
    void BestModeChanged(Resolution  value) const;
    void ConnectedChanged(bool  value) const;
    void CurrentModeChanged(Resolution  value) const;
    void EnabledChanged(bool  value) const;
    void HeightChanged(ushort  value) const;
    void ModesChanged(ResolutionList  value) const;
    void NameChanged(const QString & value) const;
    void ReflectChanged(ushort  value) const;
    void ReflectsChanged(ReflectList  value) const;
    void RefreshRateChanged(double  value) const;
    void RotationChanged(ushort  value) const;
    void RotationsChanged(RotationList  value) const;
    void WidthChanged(ushort  value) const;
    void XChanged(short  value) const;
    void YChanged(short  value) const;

public Q_SLOTS:
    void CallQueued(const QString &callName, const QList<QVariant> &args);

private Q_SLOTS:
    void onPendingCallFinished(QDBusPendingCallWatcher *w);
    void onPropertyChanged(const QString &propName, const QVariant &value);

private:
    __MonitorPrivate *d_ptr;
};

namespace com {
  namespace deepin {
    namespace daemon {
      namespace display {
        typedef ::__Monitor Monitor;
      }
    }
  }
}
#endif
