/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c SinkInput -p generated/com_deepin_daemon_audio_sinkinput /build/deepin-qt-dbus-factory/src/dde-qt-dbus-factory-0.4.0/xml/com.deepin.daemon.Audio.SinkInput.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_AUDIO_SINKINPUT_H
#define COM_DEEPIN_DAEMON_AUDIO_SINKINPUT_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>


/*
 * Proxy class for interface com.deepin.daemon.Audio.SinkInput
 */
class __SinkInput : public DBusExtendedAbstractInterface
{
    Q_OBJECT

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

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

    ~__SinkInput();

    Q_PROPERTY(double Balance READ balance NOTIFY BalanceChanged)
    inline double balance()
    { return qvariant_cast< double >(internalPropGet("Balance", &m_Balance)); }

    Q_PROPERTY(double Fade READ fade NOTIFY FadeChanged)
    inline double fade()
    { return qvariant_cast< double >(internalPropGet("Fade", &m_Fade)); }

    Q_PROPERTY(QString Icon READ icon NOTIFY IconChanged)
    inline QString icon()
    { return qvariant_cast< QString >(internalPropGet("Icon", &m_Icon)); }

    Q_PROPERTY(bool Mute READ mute NOTIFY MuteChanged)
    inline bool mute()
    { return qvariant_cast< bool >(internalPropGet("Mute", &m_Mute)); }

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

    Q_PROPERTY(bool SupportBalance READ supportBalance NOTIFY SupportBalanceChanged)
    inline bool supportBalance()
    { return qvariant_cast< bool >(internalPropGet("SupportBalance", &m_SupportBalance)); }

    Q_PROPERTY(bool SupportFade READ supportFade NOTIFY SupportFadeChanged)
    inline bool supportFade()
    { return qvariant_cast< bool >(internalPropGet("SupportFade", &m_SupportFade)); }

    Q_PROPERTY(double Volume READ volume NOTIFY VolumeChanged)
    inline double volume()
    { return qvariant_cast< double >(internalPropGet("Volume", &m_Volume)); }

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

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

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

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

Q_SIGNALS: // SIGNALS
// begin property changed signals
    void BalanceChanged(double  value) const;
    void FadeChanged(double  value) const;
    void IconChanged(const QString & value) const;
    void MuteChanged(bool  value) const;
    void NameChanged(const QString & value) const;
    void SupportBalanceChanged(bool  value) const;
    void SupportFadeChanged(bool  value) const;
    void VolumeChanged(double  value) const;

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

// begin private member vaiables
private:
    double m_Balance;
    double m_Fade;
    QString m_Icon;
    bool m_Mute;
    QString m_Name;
    bool m_SupportBalance;
    bool m_SupportFade;
    double m_Volume;
};

namespace com {
  namespace deepin {
    namespace daemon {
      namespace audio {
        typedef ::__SinkInput SinkInput;
      }
    }
  }
}
#endif
