/*
 * 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.0/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/resolution.h"
#include "types/reflectlist.h"
#include "types/rotationlist.h"

/*
 * Proxy class for interface com.deepin.daemon.Display.Monitor
 */
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)
    inline Resolution bestMode()
    { return qvariant_cast< Resolution >(internalPropGet("BestMode", &m_BestMode)); }

    Q_PROPERTY(bool Connected READ connected NOTIFY ConnectedChanged)
    inline bool connected()
    { return qvariant_cast< bool >(internalPropGet("Connected", &m_Connected)); }

    Q_PROPERTY(Resolution CurrentMode READ currentMode NOTIFY CurrentModeChanged)
    inline Resolution currentMode()
    { return qvariant_cast< Resolution >(internalPropGet("CurrentMode", &m_CurrentMode)); }

    Q_PROPERTY(bool Enabled READ enabled NOTIFY EnabledChanged)
    inline bool enabled()
    { return qvariant_cast< bool >(internalPropGet("Enabled", &m_Enabled)); }

    Q_PROPERTY(ushort Height READ height NOTIFY HeightChanged)
    inline ushort height()
    { return qvariant_cast< ushort >(internalPropGet("Height", &m_Height)); }

    Q_PROPERTY(ResolutionList Modes READ modes NOTIFY ModesChanged)
    inline ResolutionList modes()
    { return qvariant_cast< ResolutionList >(internalPropGet("Modes", &m_Modes)); }

    Q_PROPERTY(QString Name READ name NOTIFY NameChanged)
    inline QString name()
    { return qvariant_cast< QString >(internalPropGet("Name", &m_Name)); }

    Q_PROPERTY(ushort Reflect READ reflect NOTIFY ReflectChanged)
    inline ushort reflect()
    { return qvariant_cast< ushort >(internalPropGet("Reflect", &m_Reflect)); }

    Q_PROPERTY(ReflectList Reflects READ reflects NOTIFY ReflectsChanged)
    inline ReflectList reflects()
    { return qvariant_cast< ReflectList >(internalPropGet("Reflects", &m_Reflects)); }

    Q_PROPERTY(double RefreshRate READ refreshRate NOTIFY RefreshRateChanged)
    inline double refreshRate()
    { return qvariant_cast< double >(internalPropGet("RefreshRate", &m_RefreshRate)); }

    Q_PROPERTY(ushort Rotation READ rotation NOTIFY RotationChanged)
    inline ushort rotation()
    { return qvariant_cast< ushort >(internalPropGet("Rotation", &m_Rotation)); }

    Q_PROPERTY(RotationList Rotations READ rotations NOTIFY RotationsChanged)
    inline RotationList rotations()
    { return qvariant_cast< RotationList >(internalPropGet("Rotations", &m_Rotations)); }

    Q_PROPERTY(ushort Width READ width NOTIFY WidthChanged)
    inline ushort width()
    { return qvariant_cast< ushort >(internalPropGet("Width", &m_Width)); }

    Q_PROPERTY(short X READ x NOTIFY XChanged)
    inline short x()
    { return qvariant_cast< short >(internalPropGet("X", &m_X)); }

    Q_PROPERTY(short Y READ y NOTIFY YChanged)
    inline short y()
    { return qvariant_cast< short >(internalPropGet("Y", &m_Y)); }

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

    inline QDBusPendingReply<> SetMode(uint in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(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 QDBusPendingReply<> SetPosition(short in0, short in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("SetPosition"), argumentList);
    }

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

    inline QDBusPendingReply<> SetRotation(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(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;

// begin private slots
private Q_SLOTS:
    void onPropertyChanged(const QString &propName, const QVariant &value);

// begin private member vaiables
private:
    Resolution m_BestMode;
    bool m_Connected;
    Resolution m_CurrentMode;
    bool m_Enabled;
    ushort m_Height;
    ResolutionList m_Modes;
    QString m_Name;
    ushort m_Reflect;
    ReflectList m_Reflects;
    double m_RefreshRate;
    ushort m_Rotation;
    RotationList m_Rotations;
    ushort m_Width;
    short m_X;
    short m_Y;
};

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