#ifndef __SCREEN_DEFINE_H__
#define __SCREEN_DEFINE_H__
#include <QObject>
#include <QDBusArgument>
#define UKUI_SETTINGS_DAEMON_COLOR_SCHEMA   "org.ukui.SettingsDaemon.plugins.color"
#define UKUI_SETTINGS_DAEMON_COLOR_EYS_CARE "eye-care"
#define UKUI_SETTINGS_DAEMON_COLOR_NIGHT_MODE   "night-light-enabled"
#define MY_NAME  "ukui-framework-screen"
#define UKUI_POWER_MANAGER_DBUS_NAME         "org.ukui.powermanagement"
#define UKUI_POWER_MANAGER_DBUS_PATH         "/"
#define UKUI_POWER_MANAGER_DBUS_INTERFACE    "org.ukui.powermanagement.interface"

struct OutputGammaInfo{
    QString outputName;
    uint    gamma;
    uint    brignthess;
    uint    temperature;
};

typedef QList<OutputGammaInfo> OutputGammaInfoList;

Q_DECLARE_METATYPE(OutputGammaInfo)
Q_DECLARE_METATYPE(OutputGammaInfoList)

inline QDBusArgument &operator << (QDBusArgument &argument, const OutputGammaInfo &outputInfo)
{
    argument.beginStructure();
    argument << outputInfo.outputName;
    argument << outputInfo.gamma;
    argument << outputInfo.brignthess;
    argument << outputInfo.temperature;
    argument.endStructure();

    return argument;
}

inline const QDBusArgument &operator >> (const QDBusArgument &argument, OutputGammaInfo &outputInfo) {
    argument.beginStructure();
    argument >> outputInfo.outputName;
    argument >> outputInfo.gamma;
    argument >> outputInfo.brignthess;
    argument >> outputInfo.temperature;
    argument.endStructure();
    return argument;
}

#endif
