/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Source file was org.kde.kstars.Ekos.xml
 *
 * qdbusxml2cpp is Copyright (C) The Qt Company Ltd. and other contributors.
 *
 * This is an auto-generated file.
 * This file may have been hand-edited. Look for HAND-EDIT comments
 * before re-generating it.
 */

#ifndef EKOSADAPTOR_H
#define EKOSADAPTOR_H

#include <QtCore/QObject>
#include <QtDBus/QtDBus>
#include "ekos/manager.h"
#include <QtCore/qcontainerfwd.h>

/*
 * Adaptor class for interface org.kde.kstars.Ekos
 */
class EkosAdaptor: public QDBusAbstractAdaptor
{
    Q_OBJECT
    Q_CLASSINFO("D-Bus Interface", "org.kde.kstars.Ekos")
    Q_CLASSINFO("D-Bus Introspection", ""
"  <interface name=\"org.kde.kstars.Ekos\">\n"
"    <property access=\"read\" type=\"i\" name=\"indiStatus\">\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"i\" name=\"ekosStatus\">\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName\"/>\n"
"    </property>\n"
"    <property access=\"read\" type=\"u\" name=\"settleStatus\"/>\n"
"    <property access=\"read\" type=\"b\" name=\"ekosLiveStatus\"/>\n"
"    <property access=\"read\" type=\"i\" name=\"extensionStatus\"/>\n"
"    <property access=\"read\" type=\"as\" name=\"logText\"/>\n"
"    <method name=\"connectDevices\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"    </method>\n"
"    <method name=\"disconnectDevices\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"    </method>\n"
"    <method name=\"start\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"    </method>\n"
"    <method name=\"stop\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"    </method>\n"
"    <method name=\"getProfiles\">\n"
"      <arg direction=\"out\" type=\"as\"/>\n"
"    </method>\n"
"    <method name=\"setProfile\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"profileName\"/>\n"
"      <arg direction=\"out\" type=\"b\"/>\n"
"    </method>\n"
"    <method name=\"addProfile\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"profileJSON\"/>\n"
"    </method>\n"
"    <method name=\"editProfile\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"profileJSON\"/>\n"
"    </method>\n"
"    <method name=\"deleteProfile\">\n"
"      <annotation value=\"true\" name=\"org.freedesktop.DBus.Method.NoReply\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"name\"/>\n"
"    </method>\n"
"    <method name=\"getProfile\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"name\"/>\n"
"      <arg direction=\"out\" type=\"s\"/>\n"
"    </method>\n"
"    <method name=\"setEkosLiveConnected\">\n"
"      <arg direction=\"in\" type=\"b\" name=\"enabled\"/>\n"
"    </method>\n"
"    <method name=\"setEkosLiveConfig\">\n"
"      <arg direction=\"in\" type=\"b\" name=\"rememberCredentials\"/>\n"
"      <arg direction=\"in\" type=\"b\" name=\"autoConnect\"/>\n"
"    </method>\n"
"    <method name=\"setEkosLiveUser\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"username\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"password\"/>\n"
"    </method>\n"
"    <method name=\"setEkosLoggingEnabled\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"name\"/>\n"
"      <arg direction=\"in\" type=\"b\" name=\"enabled\"/>\n"
"    </method>\n"
"    <method name=\"setFITSfromFile\">\n"
"      <arg direction=\"in\" type=\"b\" name=\"previewFromFile\"/>\n"
"    </method>\n"
"    <method name=\"previewFile\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"filePath\"/>\n"
"    </method>\n"
"    <signal name=\"indiStatusChanged\">\n"
"      <arg direction=\"out\" type=\"(i)\" name=\"status\"/>\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName.Out0\"/>\n"
"    </signal>\n"
"    <signal name=\"ekosStatusChanged\">\n"
"      <arg direction=\"out\" type=\"(i)\" name=\"status\"/>\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName.Out0\"/>\n"
"    </signal>\n"
"    <signal name=\"settleStatusChanged\">\n"
"      <arg direction=\"out\" type=\"(i)\" name=\"status\"/>\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
"      <annotation value=\"Ekos::CommunicationStatus\" name=\"org.qtproject.QtDBus.QtTypeName.Out0\"/>\n"
"    </signal>\n"
"    <signal name=\"ekosLiveStatusChanged\">\n"
"      <arg direction=\"out\" type=\"b\" name=\"status\"/>\n"
"    </signal>\n"
"    <signal name=\"extensionStatusChanged\">\n"
"      <arg direction=\"out\" type=\"b\" name=\"status\"/>\n"
"    </signal>\n"
"    <signal name=\"newLog\">\n"
"      <arg direction=\"out\" type=\"s\" name=\"text\"/>\n"
"    </signal>\n"
"    <signal name=\"newModule\">\n"
"      <arg direction=\"out\" type=\"s\" name=\"name\"/>\n"
"    </signal>\n"
"    <signal name=\"newDevice\">\n"
"      <arg direction=\"out\" type=\"s\" name=\"name\"/>\n"
"      <arg direction=\"out\" type=\"i\" name=\"interface\"/>\n"
"    </signal>\n"
"  </interface>\n"
        "")
public:
    EkosAdaptor(Ekos::Manager *parent);
    ~EkosAdaptor() override;

    inline Ekos::Manager *parent() const
    { return static_cast<Ekos::Manager *>(QObject::parent()); }

public: // PROPERTIES
    Q_PROPERTY(bool ekosLiveStatus READ ekosLiveStatus)
    bool ekosLiveStatus() const;

    Q_PROPERTY(int ekosStatus READ ekosStatus)
    int ekosStatus() const;

    Q_PROPERTY(int extensionStatus READ extensionStatus)
    int extensionStatus() const;

    Q_PROPERTY(int indiStatus READ indiStatus)
    int indiStatus() const;

    Q_PROPERTY(QStringList logText READ logText)
    QStringList logText() const;

    Q_PROPERTY(uint settleStatus READ settleStatus)
    uint settleStatus() const;

public Q_SLOTS: // METHODS
    Q_NOREPLY void addProfile(const QString &profileJSON);
    Q_NOREPLY void connectDevices();
    Q_NOREPLY void deleteProfile(const QString &name);
    Q_NOREPLY void disconnectDevices();
    Q_NOREPLY void editProfile(const QString &profileJSON);
    QString getProfile(const QString &name);
    QStringList getProfiles();
    void previewFile(const QString &filePath);
    void setEkosLiveConfig(bool rememberCredentials, bool autoConnect);
    void setEkosLiveConnected(bool enabled);
    void setEkosLiveUser(const QString &username, const QString &password);
    void setEkosLoggingEnabled(const QString &name, bool enabled);
    void setFITSfromFile(bool previewFromFile);
    bool setProfile(const QString &profileName);
    Q_NOREPLY void start();
    Q_NOREPLY void stop();
Q_SIGNALS: // SIGNALS
    void ekosLiveStatusChanged(bool status);
    void ekosStatusChanged(Ekos::CommunicationStatus status);
    void extensionStatusChanged(bool status);
    void indiStatusChanged(Ekos::CommunicationStatus status);
    void newDevice(const QString &name, int interface);
    void newLog(const QString &text);
    void newModule(const QString &name);
    void settleStatusChanged(Ekos::CommunicationStatus status);
};

#endif
