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

#include "kconfig_base_ee.hpp"

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

class DbPitch : public KConfigBaseEE
{
  Q_OBJECT
  QML_ELEMENT
  QML_UNCREATABLE("")
  public:

    DbPitch( const QString & masterGroup, const QString & instanceIndex );
    ~DbPitch() override;

    /**
      Set bypass
    */
    void setBypass( bool v )
    {
      if (v != mBypass && !isBypassImmutable()) {
        mBypass = v;
        Q_EMIT bypassChanged();
      }
    }

    Q_PROPERTY(bool bypass READ bypass WRITE setBypass NOTIFY bypassChanged)
    Q_PROPERTY(bool isBypassImmutable READ isBypassImmutable CONSTANT)
    Q_PROPERTY(bool defaultBypassValue READ defaultBypassValue CONSTANT)
    /**
      Get bypass
    */
    bool bypass() const
    {
      return mBypass;
    }

    /**
      Is bypass Immutable
    */
    bool isBypassImmutable() const
    {
      return isImmutable( QStringLiteral( "bypass" ) );
    }

    /**
      Get bypass default value
    */
    bool defaultBypassValue() const
    {
        return defaultBypassValue_helper();
    }

    /**
      Set inputGain
    */
    void setInputGain( double v )
    {
      if (v < -36)
      {
        qDebug() << "setInputGain: value " << v << " is less than the minimum value of -36";
        v = -36;
      }

      if (v > 36)
      {
        qDebug() << "setInputGain: value " << v << " is greater than the maximum value of 36";
        v = 36;
      }

      if (v != mInputGain && !isInputGainImmutable()) {
        mInputGain = v;
        Q_EMIT inputGainChanged();
      }
    }

    Q_PROPERTY(double inputGain READ inputGain WRITE setInputGain NOTIFY inputGainChanged)
    Q_PROPERTY(bool isInputGainImmutable READ isInputGainImmutable CONSTANT)
    Q_PROPERTY(double defaultInputGainValue READ defaultInputGainValue CONSTANT)
    /**
      Get inputGain
    */
    double inputGain() const
    {
      return mInputGain;
    }

    /**
      Is inputGain Immutable
    */
    bool isInputGainImmutable() const
    {
      return isImmutable( QStringLiteral( "inputGain" ) );
    }

    /**
      Get inputGain default value
    */
    double defaultInputGainValue() const
    {
        return defaultInputGainValue_helper();
    }

    /**
      Set outputGain
    */
    void setOutputGain( double v )
    {
      if (v < -36)
      {
        qDebug() << "setOutputGain: value " << v << " is less than the minimum value of -36";
        v = -36;
      }

      if (v > 36)
      {
        qDebug() << "setOutputGain: value " << v << " is greater than the maximum value of 36";
        v = 36;
      }

      if (v != mOutputGain && !isOutputGainImmutable()) {
        mOutputGain = v;
        Q_EMIT outputGainChanged();
      }
    }

    Q_PROPERTY(double outputGain READ outputGain WRITE setOutputGain NOTIFY outputGainChanged)
    Q_PROPERTY(bool isOutputGainImmutable READ isOutputGainImmutable CONSTANT)
    Q_PROPERTY(double defaultOutputGainValue READ defaultOutputGainValue CONSTANT)
    /**
      Get outputGain
    */
    double outputGain() const
    {
      return mOutputGain;
    }

    /**
      Is outputGain Immutable
    */
    bool isOutputGainImmutable() const
    {
      return isImmutable( QStringLiteral( "outputGain" ) );
    }

    /**
      Get outputGain default value
    */
    double defaultOutputGainValue() const
    {
        return defaultOutputGainValue_helper();
    }

    /**
      Set dry
    */
    void setDry( double v )
    {
      if (v < -100)
      {
        qDebug() << "setDry: value " << v << " is less than the minimum value of -100";
        v = -100;
      }

      if (v > 20)
      {
        qDebug() << "setDry: value " << v << " is greater than the maximum value of 20";
        v = 20;
      }

      if (v != mDry && !isDryImmutable()) {
        mDry = v;
        Q_EMIT dryChanged();
      }
    }

    Q_PROPERTY(double dry READ dry WRITE setDry NOTIFY dryChanged)
    Q_PROPERTY(bool isDryImmutable READ isDryImmutable CONSTANT)
    Q_PROPERTY(double defaultDryValue READ defaultDryValue CONSTANT)
    /**
      Get dry
    */
    double dry() const
    {
      return mDry;
    }

    /**
      Is dry Immutable
    */
    bool isDryImmutable() const
    {
      return isImmutable( QStringLiteral( "dry" ) );
    }

    /**
      Get dry default value
    */
    double defaultDryValue() const
    {
        return defaultDryValue_helper();
    }

    /**
      Set wet
    */
    void setWet( double v )
    {
      if (v < -100)
      {
        qDebug() << "setWet: value " << v << " is less than the minimum value of -100";
        v = -100;
      }

      if (v > 20)
      {
        qDebug() << "setWet: value " << v << " is greater than the maximum value of 20";
        v = 20;
      }

      if (v != mWet && !isWetImmutable()) {
        mWet = v;
        Q_EMIT wetChanged();
      }
    }

    Q_PROPERTY(double wet READ wet WRITE setWet NOTIFY wetChanged)
    Q_PROPERTY(bool isWetImmutable READ isWetImmutable CONSTANT)
    Q_PROPERTY(double defaultWetValue READ defaultWetValue CONSTANT)
    /**
      Get wet
    */
    double wet() const
    {
      return mWet;
    }

    /**
      Is wet Immutable
    */
    bool isWetImmutable() const
    {
      return isImmutable( QStringLiteral( "wet" ) );
    }

    /**
      Get wet default value
    */
    double defaultWetValue() const
    {
        return defaultWetValue_helper();
    }

    /**
      Set cents
    */
    void setCents( double v )
    {
      if (v < -100.0)
      {
        qDebug() << "setCents: value " << v << " is less than the minimum value of -100.0";
        v = -100.0;
      }

      if (v > 100.0)
      {
        qDebug() << "setCents: value " << v << " is greater than the maximum value of 100.0";
        v = 100.0;
      }

      if (v != mCents && !isCentsImmutable()) {
        mCents = v;
        Q_EMIT centsChanged();
      }
    }

    Q_PROPERTY(double cents READ cents WRITE setCents NOTIFY centsChanged)
    Q_PROPERTY(bool isCentsImmutable READ isCentsImmutable CONSTANT)
    Q_PROPERTY(double defaultCentsValue READ defaultCentsValue CONSTANT)
    /**
      Get cents
    */
    double cents() const
    {
      return mCents;
    }

    /**
      Is cents Immutable
    */
    bool isCentsImmutable() const
    {
      return isImmutable( QStringLiteral( "cents" ) );
    }

    /**
      Get cents default value
    */
    double defaultCentsValue() const
    {
        return defaultCentsValue_helper();
    }

    /**
      Set semitones
    */
    void setSemitones( double v )
    {
      if (v < -12.0)
      {
        qDebug() << "setSemitones: value " << v << " is less than the minimum value of -12.0";
        v = -12.0;
      }

      if (v > 12.0)
      {
        qDebug() << "setSemitones: value " << v << " is greater than the maximum value of 12.0";
        v = 12.0;
      }

      if (v != mSemitones && !isSemitonesImmutable()) {
        mSemitones = v;
        Q_EMIT semitonesChanged();
      }
    }

    Q_PROPERTY(double semitones READ semitones WRITE setSemitones NOTIFY semitonesChanged)
    Q_PROPERTY(bool isSemitonesImmutable READ isSemitonesImmutable CONSTANT)
    Q_PROPERTY(double defaultSemitonesValue READ defaultSemitonesValue CONSTANT)
    /**
      Get semitones
    */
    double semitones() const
    {
      return mSemitones;
    }

    /**
      Is semitones Immutable
    */
    bool isSemitonesImmutable() const
    {
      return isImmutable( QStringLiteral( "semitones" ) );
    }

    /**
      Get semitones default value
    */
    double defaultSemitonesValue() const
    {
        return defaultSemitonesValue_helper();
    }

    /**
      Set octaves
    */
    void setOctaves( double v )
    {
      if (v < -3.0)
      {
        qDebug() << "setOctaves: value " << v << " is less than the minimum value of -3.0";
        v = -3.0;
      }

      if (v > 3.0)
      {
        qDebug() << "setOctaves: value " << v << " is greater than the maximum value of 3.0";
        v = 3.0;
      }

      if (v != mOctaves && !isOctavesImmutable()) {
        mOctaves = v;
        Q_EMIT octavesChanged();
      }
    }

    Q_PROPERTY(double octaves READ octaves WRITE setOctaves NOTIFY octavesChanged)
    Q_PROPERTY(bool isOctavesImmutable READ isOctavesImmutable CONSTANT)
    Q_PROPERTY(double defaultOctavesValue READ defaultOctavesValue CONSTANT)
    /**
      Get octaves
    */
    double octaves() const
    {
      return mOctaves;
    }

    /**
      Is octaves Immutable
    */
    bool isOctavesImmutable() const
    {
      return isImmutable( QStringLiteral( "octaves" ) );
    }

    /**
      Get octaves default value
    */
    double defaultOctavesValue() const
    {
        return defaultOctavesValue_helper();
    }

    /**
      Set quickSeek
    */
    void setQuickSeek( bool v )
    {
      if (v != mQuickSeek && !isQuickSeekImmutable()) {
        mQuickSeek = v;
        Q_EMIT quickSeekChanged();
      }
    }

    Q_PROPERTY(bool quickSeek READ quickSeek WRITE setQuickSeek NOTIFY quickSeekChanged)
    Q_PROPERTY(bool isQuickSeekImmutable READ isQuickSeekImmutable CONSTANT)
    Q_PROPERTY(bool defaultQuickSeekValue READ defaultQuickSeekValue CONSTANT)
    /**
      Get quickSeek
    */
    bool quickSeek() const
    {
      return mQuickSeek;
    }

    /**
      Is quickSeek Immutable
    */
    bool isQuickSeekImmutable() const
    {
      return isImmutable( QStringLiteral( "quickSeek" ) );
    }

    /**
      Get quickSeek default value
    */
    bool defaultQuickSeekValue() const
    {
        return defaultQuickSeekValue_helper();
    }

    /**
      Set antiAlias
    */
    void setAntiAlias( bool v )
    {
      if (v != mAntiAlias && !isAntiAliasImmutable()) {
        mAntiAlias = v;
        Q_EMIT antiAliasChanged();
      }
    }

    Q_PROPERTY(bool antiAlias READ antiAlias WRITE setAntiAlias NOTIFY antiAliasChanged)
    Q_PROPERTY(bool isAntiAliasImmutable READ isAntiAliasImmutable CONSTANT)
    Q_PROPERTY(bool defaultAntiAliasValue READ defaultAntiAliasValue CONSTANT)
    /**
      Get antiAlias
    */
    bool antiAlias() const
    {
      return mAntiAlias;
    }

    /**
      Is antiAlias Immutable
    */
    bool isAntiAliasImmutable() const
    {
      return isImmutable( QStringLiteral( "antiAlias" ) );
    }

    /**
      Get antiAlias default value
    */
    bool defaultAntiAliasValue() const
    {
        return defaultAntiAliasValue_helper();
    }

    /**
      Set sequenceLength
    */
    void setSequenceLength( int v )
    {
      if (v < 0)
      {
        qDebug() << "setSequenceLength: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 100)
      {
        qDebug() << "setSequenceLength: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (v != mSequenceLength && !isSequenceLengthImmutable()) {
        mSequenceLength = v;
        Q_EMIT sequenceLengthChanged();
      }
    }

    Q_PROPERTY(int sequenceLength READ sequenceLength WRITE setSequenceLength NOTIFY sequenceLengthChanged)
    Q_PROPERTY(bool isSequenceLengthImmutable READ isSequenceLengthImmutable CONSTANT)
    Q_PROPERTY(int defaultSequenceLengthValue READ defaultSequenceLengthValue CONSTANT)
    /**
      Get sequenceLength
    */
    int sequenceLength() const
    {
      return mSequenceLength;
    }

    /**
      Is sequenceLength Immutable
    */
    bool isSequenceLengthImmutable() const
    {
      return isImmutable( QStringLiteral( "sequenceLength" ) );
    }

    /**
      Get sequenceLength default value
    */
    int defaultSequenceLengthValue() const
    {
        return defaultSequenceLengthValue_helper();
    }

    /**
      Set seekWindow
    */
    void setSeekWindow( int v )
    {
      if (v < 0)
      {
        qDebug() << "setSeekWindow: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 100)
      {
        qDebug() << "setSeekWindow: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (v != mSeekWindow && !isSeekWindowImmutable()) {
        mSeekWindow = v;
        Q_EMIT seekWindowChanged();
      }
    }

    Q_PROPERTY(int seekWindow READ seekWindow WRITE setSeekWindow NOTIFY seekWindowChanged)
    Q_PROPERTY(bool isSeekWindowImmutable READ isSeekWindowImmutable CONSTANT)
    Q_PROPERTY(int defaultSeekWindowValue READ defaultSeekWindowValue CONSTANT)
    /**
      Get seekWindow
    */
    int seekWindow() const
    {
      return mSeekWindow;
    }

    /**
      Is seekWindow Immutable
    */
    bool isSeekWindowImmutable() const
    {
      return isImmutable( QStringLiteral( "seekWindow" ) );
    }

    /**
      Get seekWindow default value
    */
    int defaultSeekWindowValue() const
    {
        return defaultSeekWindowValue_helper();
    }

    /**
      Set overlapLength
    */
    void setOverlapLength( int v )
    {
      if (v < 0)
      {
        qDebug() << "setOverlapLength: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 100)
      {
        qDebug() << "setOverlapLength: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (v != mOverlapLength && !isOverlapLengthImmutable()) {
        mOverlapLength = v;
        Q_EMIT overlapLengthChanged();
      }
    }

    Q_PROPERTY(int overlapLength READ overlapLength WRITE setOverlapLength NOTIFY overlapLengthChanged)
    Q_PROPERTY(bool isOverlapLengthImmutable READ isOverlapLengthImmutable CONSTANT)
    Q_PROPERTY(int defaultOverlapLengthValue READ defaultOverlapLengthValue CONSTANT)
    /**
      Get overlapLength
    */
    int overlapLength() const
    {
      return mOverlapLength;
    }

    /**
      Is overlapLength Immutable
    */
    bool isOverlapLengthImmutable() const
    {
      return isImmutable( QStringLiteral( "overlapLength" ) );
    }

    /**
      Get overlapLength default value
    */
    int defaultOverlapLengthValue() const
    {
        return defaultOverlapLengthValue_helper();
    }

    /**
      Set tempoDifference
    */
    void setTempoDifference( double v )
    {
      if (v < -50)
      {
        qDebug() << "setTempoDifference: value " << v << " is less than the minimum value of -50";
        v = -50;
      }

      if (v > 100)
      {
        qDebug() << "setTempoDifference: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (v != mTempoDifference && !isTempoDifferenceImmutable()) {
        mTempoDifference = v;
        Q_EMIT tempoDifferenceChanged();
      }
    }

    Q_PROPERTY(double tempoDifference READ tempoDifference WRITE setTempoDifference NOTIFY tempoDifferenceChanged)
    Q_PROPERTY(bool isTempoDifferenceImmutable READ isTempoDifferenceImmutable CONSTANT)
    Q_PROPERTY(double defaultTempoDifferenceValue READ defaultTempoDifferenceValue CONSTANT)
    /**
      Get tempoDifference
    */
    double tempoDifference() const
    {
      return mTempoDifference;
    }

    /**
      Is tempoDifference Immutable
    */
    bool isTempoDifferenceImmutable() const
    {
      return isImmutable( QStringLiteral( "tempoDifference" ) );
    }

    /**
      Get tempoDifference default value
    */
    double defaultTempoDifferenceValue() const
    {
        return defaultTempoDifferenceValue_helper();
    }

    /**
      Set rateDifference
    */
    void setRateDifference( double v )
    {
      if (v < -50)
      {
        qDebug() << "setRateDifference: value " << v << " is less than the minimum value of -50";
        v = -50;
      }

      if (v > 100)
      {
        qDebug() << "setRateDifference: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (v != mRateDifference && !isRateDifferenceImmutable()) {
        mRateDifference = v;
        Q_EMIT rateDifferenceChanged();
      }
    }

    Q_PROPERTY(double rateDifference READ rateDifference WRITE setRateDifference NOTIFY rateDifferenceChanged)
    Q_PROPERTY(bool isRateDifferenceImmutable READ isRateDifferenceImmutable CONSTANT)
    Q_PROPERTY(double defaultRateDifferenceValue READ defaultRateDifferenceValue CONSTANT)
    /**
      Get rateDifference
    */
    double rateDifference() const
    {
      return mRateDifference;
    }

    /**
      Is rateDifference Immutable
    */
    bool isRateDifferenceImmutable() const
    {
      return isImmutable( QStringLiteral( "rateDifference" ) );
    }

    /**
      Get rateDifference default value
    */
    double defaultRateDifferenceValue() const
    {
        return defaultRateDifferenceValue_helper();
    }


    enum {
      signalBypassChanged = 1,
      signalInputGainChanged = 2,
      signalOutputGainChanged = 3,
      signalDryChanged = 4,
      signalWetChanged = 5,
      signalCentsChanged = 6,
      signalSemitonesChanged = 7,
      signalOctavesChanged = 8,
      signalQuickSeekChanged = 9,
      signalAntiAliasChanged = 10,
      signalSequenceLengthChanged = 11,
      signalSeekWindowChanged = 12,
      signalOverlapLengthChanged = 13,
      signalTempoDifferenceChanged = 14,
      signalRateDifferenceChanged = 15
    };

  Q_SIGNALS:
    void bypassChanged();

    void inputGainChanged();

    void outputGainChanged();

    void dryChanged();

    void wetChanged();

    void centsChanged();

    void semitonesChanged();

    void octavesChanged();

    void quickSeekChanged();

    void antiAliasChanged();

    void sequenceLengthChanged();

    void seekWindowChanged();

    void overlapLengthChanged();

    void tempoDifferenceChanged();

    void rateDifferenceChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    QString mParammasterGroup;
    QString mParaminstanceIndex;

    // Pitch#$(instanceIndex)
    bool mBypass;
    bool defaultBypassValue_helper() const;
    double mInputGain;
    double defaultInputGainValue_helper() const;
    double mOutputGain;
    double defaultOutputGainValue_helper() const;
    double mDry;
    double defaultDryValue_helper() const;
    double mWet;
    double defaultWetValue_helper() const;
    double mCents;
    double defaultCentsValue_helper() const;
    double mSemitones;
    double defaultSemitonesValue_helper() const;
    double mOctaves;
    double defaultOctavesValue_helper() const;
    bool mQuickSeek;
    bool defaultQuickSeekValue_helper() const;
    bool mAntiAlias;
    bool defaultAntiAliasValue_helper() const;
    int mSequenceLength;
    int defaultSequenceLengthValue_helper() const;
    int mSeekWindow;
    int defaultSeekWindowValue_helper() const;
    int mOverlapLength;
    int defaultOverlapLengthValue_helper() const;
    double mTempoDifference;
    double defaultTempoDifferenceValue_helper() const;
    double mRateDifference;
    double defaultRateDifferenceValue_helper() const;
};

#endif

