/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Source file was org.freedesktop.ColorManager.xml
 *
 * qdbusxml2cpp is Copyright (C) The Qt Company Ltd. and other contributors.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef CDINTERFACE_H
#define CDINTERFACE_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>
#include "dbus-types.h"

/*
 * Proxy class for interface org.freedesktop.ColorManager
 */
class CdInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.freedesktop.ColorManager"; }

public:
    CdInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr);

    ~CdInterface();

    Q_PROPERTY(QString DaemonVersion READ daemonVersion)
    inline QString daemonVersion() const
    { return qvariant_cast< QString >(property("DaemonVersion")); }

    Q_PROPERTY(QString SystemModel READ systemModel)
    inline QString systemModel() const
    { return qvariant_cast< QString >(property("SystemModel")); }

    Q_PROPERTY(QString SystemVendor READ systemVendor)
    inline QString systemVendor() const
    { return qvariant_cast< QString >(property("SystemVendor")); }

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<QDBusObjectPath> CreateDevice(const QString &device_id, const QString &scope, CdStringMap properties)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(device_id) << QVariant::fromValue(scope) << QVariant::fromValue(properties);
        return asyncCallWithArgumentList(QStringLiteral("CreateDevice"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> CreateProfile(const QString &profile_id, const QString &scope, CdStringMap properties)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(profile_id) << QVariant::fromValue(scope) << QVariant::fromValue(properties);
        return asyncCallWithArgumentList(QStringLiteral("CreateProfile"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> CreateProfileWithFd(const QString &profile_id, const QString &scope, const QDBusUnixFileDescriptor &handle, CdStringMap properties)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(profile_id) << QVariant::fromValue(scope) << QVariant::fromValue(handle) << QVariant::fromValue(properties);
        return asyncCallWithArgumentList(QStringLiteral("CreateProfileWithFd"), argumentList);
    }

    inline QDBusPendingReply<> DeleteDevice(const QDBusObjectPath &object_path)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(object_path);
        return asyncCallWithArgumentList(QStringLiteral("DeleteDevice"), argumentList);
    }

    inline QDBusPendingReply<> DeleteProfile(const QDBusObjectPath &object_path)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(object_path);
        return asyncCallWithArgumentList(QStringLiteral("DeleteProfile"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> FindDeviceById(const QString &device_id)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(device_id);
        return asyncCallWithArgumentList(QStringLiteral("FindDeviceById"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> FindDeviceByProperty(const QString &key, const QString &value)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(key) << QVariant::fromValue(value);
        return asyncCallWithArgumentList(QStringLiteral("FindDeviceByProperty"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> FindProfileByFilename(const QString &filename)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(filename);
        return asyncCallWithArgumentList(QStringLiteral("FindProfileByFilename"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> FindProfileById(const QString &profile_id)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(profile_id);
        return asyncCallWithArgumentList(QStringLiteral("FindProfileById"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> FindProfileByProperty(const QString &key, const QString &value)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(key) << QVariant::fromValue(value);
        return asyncCallWithArgumentList(QStringLiteral("FindProfileByProperty"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> FindSensorById(const QString &sensor_id)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(sensor_id);
        return asyncCallWithArgumentList(QStringLiteral("FindSensorById"), argumentList);
    }

    inline QDBusPendingReply<QList<QDBusObjectPath> > GetDevices()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("GetDevices"), argumentList);
    }

    inline QDBusPendingReply<QList<QDBusObjectPath> > GetDevicesByKind(const QString &kind)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(kind);
        return asyncCallWithArgumentList(QStringLiteral("GetDevicesByKind"), argumentList);
    }

    inline QDBusPendingReply<QList<QDBusObjectPath> > GetProfiles()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("GetProfiles"), argumentList);
    }

    inline QDBusPendingReply<QList<QDBusObjectPath> > GetProfilesByKind(const QString &kind)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(kind);
        return asyncCallWithArgumentList(QStringLiteral("GetProfilesByKind"), argumentList);
    }

    inline QDBusPendingReply<QList<QDBusObjectPath> > GetSensors()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("GetSensors"), argumentList);
    }

    inline QDBusPendingReply<QDBusObjectPath> GetStandardSpace(const QString &standard_space)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(standard_space);
        return asyncCallWithArgumentList(QStringLiteral("GetStandardSpace"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void Changed();
    void DeviceAdded(const QDBusObjectPath &object_path);
    void DeviceChanged(const QDBusObjectPath &object_path);
    void DeviceRemoved(const QDBusObjectPath &object_path);
    void ProfileAdded(const QDBusObjectPath &object_path);
    void ProfileChanged(const QDBusObjectPath &object_path);
    void ProfileRemoved(const QDBusObjectPath &object_path);
    void SensorAdded(const QDBusObjectPath &object_path);
    void SensorRemoved(const QDBusObjectPath &object_path);
};

#endif
