// This file is generated by kconfig_compiler_kf6 from audiosettings.kcfg.
// All changes you do to this file will be lost.
#ifndef AUDIOSETTINGS_H
#define AUDIOSETTINGS_H

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>
#include <qqmlintegration.h>

class QQmlEngine;
class QJSEngine;

class AudioSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

    static AudioSettings *self();
    static AudioSettings *create(QQmlEngine *, QJSEngine *);
    ~AudioSettings() override;

    /**
      Set PreferredLanguage
    */
    static
    void setPreferredLanguage( const QString & v )
    {
      if (v != self()->mPreferredLanguage && !self()->isPreferredLanguageImmutable()) {
        self()->mPreferredLanguage = v;
        Q_EMIT self()->PreferredLanguageChanged();
      }
    }

    Q_PROPERTY(QString preferredLanguage READ preferredLanguage WRITE setPreferredLanguage NOTIFY PreferredLanguageChanged)
    Q_PROPERTY(bool isPreferredLanguageImmutable READ isPreferredLanguageImmutable CONSTANT)
    /**
      Get PreferredLanguage
    */
    static
    QString preferredLanguage()
    {
      return self()->mPreferredLanguage;
    }

    /**
      Is PreferredLanguage Immutable
    */
    static
    bool isPreferredLanguageImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreferredLanguage" ) );
    }

    /**
      Set PreferredTrack
    */
    static
    void setPreferredTrack( int v )
    {
      if (v != self()->mPreferredTrack && !self()->isPreferredTrackImmutable()) {
        self()->mPreferredTrack = v;
        Q_EMIT self()->PreferredTrackChanged();
      }
    }

    Q_PROPERTY(int preferredTrack READ preferredTrack WRITE setPreferredTrack NOTIFY PreferredTrackChanged)
    Q_PROPERTY(bool isPreferredTrackImmutable READ isPreferredTrackImmutable CONSTANT)
    /**
      Get PreferredTrack
    */
    static
    int preferredTrack()
    {
      return self()->mPreferredTrack;
    }

    /**
      Is PreferredTrack Immutable
    */
    static
    bool isPreferredTrackImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreferredTrack" ) );
    }

    /**
      Set Volume
    */
    static
    void setVolume( int v )
    {
      if (v != self()->mVolume && !self()->isVolumeImmutable()) {
        self()->mVolume = v;
        Q_EMIT self()->VolumeChanged();
      }
    }

    Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY VolumeChanged)
    Q_PROPERTY(bool isVolumeImmutable READ isVolumeImmutable CONSTANT)
    Q_PROPERTY(int defaultVolumeValue READ defaultVolumeValue CONSTANT)
    /**
      Get Volume
    */
    static
    int volume()
    {
      return self()->mVolume;
    }

    /**
      Is Volume Immutable
    */
    static
    bool isVolumeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Volume" ) );
    }

    /**
      Get Volume default value
    */
    static
    int defaultVolumeValue()
    {
        return defaultVolumeValue_helper();
    }

    /**
      Set VolumeStep
    */
    static
    void setVolumeStep( int v )
    {
      if (v != self()->mVolumeStep && !self()->isVolumeStepImmutable()) {
        self()->mVolumeStep = v;
        Q_EMIT self()->VolumeStepChanged();
      }
    }

    Q_PROPERTY(int volumeStep READ volumeStep WRITE setVolumeStep NOTIFY VolumeStepChanged)
    Q_PROPERTY(bool isVolumeStepImmutable READ isVolumeStepImmutable CONSTANT)
    Q_PROPERTY(int defaultVolumeStepValue READ defaultVolumeStepValue CONSTANT)
    /**
      Get VolumeStep
    */
    static
    int volumeStep()
    {
      return self()->mVolumeStep;
    }

    /**
      Is VolumeStep Immutable
    */
    static
    bool isVolumeStepImmutable()
    {
      return self()->isImmutable( QStringLiteral( "VolumeStep" ) );
    }

    /**
      Get VolumeStep default value
    */
    static
    int defaultVolumeStepValue()
    {
        return defaultVolumeStepValue_helper();
    }

    /**
      Set ReplayGain
    */
    static
    void setReplayGain( const QString & v )
    {
      if (v != self()->mReplayGain && !self()->isReplayGainImmutable()) {
        self()->mReplayGain = v;
        Q_EMIT self()->ReplayGainChanged();
      }
    }

    Q_PROPERTY(QString replayGain READ replayGain WRITE setReplayGain NOTIFY ReplayGainChanged)
    Q_PROPERTY(bool isReplayGainImmutable READ isReplayGainImmutable CONSTANT)
    Q_PROPERTY(QString defaultReplayGainValue READ defaultReplayGainValue CONSTANT)
    /**
      Get ReplayGain
    */
    static
    QString replayGain()
    {
      return self()->mReplayGain;
    }

    /**
      Is ReplayGain Immutable
    */
    static
    bool isReplayGainImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplayGain" ) );
    }

    /**
      Get ReplayGain default value
    */
    static
    QString defaultReplayGainValue()
    {
        return defaultReplayGainValue_helper();
    }

    /**
      Set ReplayGainPreamp
    */
    static
    void setReplayGainPreamp( int v )
    {
      if (v != self()->mReplayGainPreamp && !self()->isReplayGainPreampImmutable()) {
        self()->mReplayGainPreamp = v;
        Q_EMIT self()->ReplayGainPreampChanged();
      }
    }

    Q_PROPERTY(int replayGainPreamp READ replayGainPreamp WRITE setReplayGainPreamp NOTIFY ReplayGainPreampChanged)
    Q_PROPERTY(bool isReplayGainPreampImmutable READ isReplayGainPreampImmutable CONSTANT)
    Q_PROPERTY(int defaultReplayGainPreampValue READ defaultReplayGainPreampValue CONSTANT)
    /**
      Get ReplayGainPreamp
    */
    static
    int replayGainPreamp()
    {
      return self()->mReplayGainPreamp;
    }

    /**
      Is ReplayGainPreamp Immutable
    */
    static
    bool isReplayGainPreampImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplayGainPreamp" ) );
    }

    /**
      Get ReplayGainPreamp default value
    */
    static
    int defaultReplayGainPreampValue()
    {
        return defaultReplayGainPreampValue_helper();
    }

    /**
      Set ReplayGainPreventClip
    */
    static
    void setReplayGainPreventClip( bool v )
    {
      if (v != self()->mReplayGainPreventClip && !self()->isReplayGainPreventClipImmutable()) {
        self()->mReplayGainPreventClip = v;
        Q_EMIT self()->ReplayGainPreventClipChanged();
      }
    }

    Q_PROPERTY(bool replayGainPreventClip READ replayGainPreventClip WRITE setReplayGainPreventClip NOTIFY ReplayGainPreventClipChanged)
    Q_PROPERTY(bool isReplayGainPreventClipImmutable READ isReplayGainPreventClipImmutable CONSTANT)
    Q_PROPERTY(bool defaultReplayGainPreventClipValue READ defaultReplayGainPreventClipValue CONSTANT)
    /**
      Get ReplayGainPreventClip
    */
    static
    bool replayGainPreventClip()
    {
      return self()->mReplayGainPreventClip;
    }

    /**
      Is ReplayGainPreventClip Immutable
    */
    static
    bool isReplayGainPreventClipImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplayGainPreventClip" ) );
    }

    /**
      Get ReplayGainPreventClip default value
    */
    static
    bool defaultReplayGainPreventClipValue()
    {
        return defaultReplayGainPreventClipValue_helper();
    }

    /**
      Set ReplayGainFallback
    */
    static
    void setReplayGainFallback( int v )
    {
      if (v != self()->mReplayGainFallback && !self()->isReplayGainFallbackImmutable()) {
        self()->mReplayGainFallback = v;
        Q_EMIT self()->ReplayGainFallbackChanged();
      }
    }

    Q_PROPERTY(int replayGainFallback READ replayGainFallback WRITE setReplayGainFallback NOTIFY ReplayGainFallbackChanged)
    Q_PROPERTY(bool isReplayGainFallbackImmutable READ isReplayGainFallbackImmutable CONSTANT)
    Q_PROPERTY(int defaultReplayGainFallbackValue READ defaultReplayGainFallbackValue CONSTANT)
    /**
      Get ReplayGainFallback
    */
    static
    int replayGainFallback()
    {
      return self()->mReplayGainFallback;
    }

    /**
      Is ReplayGainFallback Immutable
    */
    static
    bool isReplayGainFallbackImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ReplayGainFallback" ) );
    }

    /**
      Get ReplayGainFallback default value
    */
    static
    int defaultReplayGainFallbackValue()
    {
        return defaultReplayGainFallbackValue_helper();
    }


    enum {
      signalPreferredLanguageChanged = 1,
      signalPreferredTrackChanged = 2,
      signalVolumeChanged = 3,
      signalVolumeStepChanged = 4,
      signalReplayGainChanged = 5,
      signalReplayGainPreampChanged = 6,
      signalReplayGainPreventClipChanged = 7,
      signalReplayGainFallbackChanged = 8
    };

  Q_SIGNALS:
    void PreferredLanguageChanged();

    void PreferredTrackChanged();

    void VolumeChanged();

    void VolumeStepChanged();

    void ReplayGainChanged();

    void ReplayGainPreampChanged();

    void ReplayGainPreventClipChanged();

    void ReplayGainFallbackChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    AudioSettings(QObject *parent = nullptr);
    friend class AudioSettingsHelper;


    // Audio
    QString mPreferredLanguage;
    static QString defaultPreferredLanguageValue_helper();
    int mPreferredTrack;
    static int defaultPreferredTrackValue_helper();
    int mVolume;
    static int defaultVolumeValue_helper();
    int mVolumeStep;
    static int defaultVolumeStepValue_helper();
    QString mReplayGain;
    static QString defaultReplayGainValue_helper();
    int mReplayGainPreamp;
    static int defaultReplayGainPreampValue_helper();
    bool mReplayGainPreventClip;
    static bool defaultReplayGainPreventClipValue_helper();
    int mReplayGainFallback;
    static int defaultReplayGainFallbackValue_helper();
};

#endif

