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

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

class QQmlEngine;
class QJSEngine;

class PlaybackSettings : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

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

    /**
      Set RestoreFilePosition
    */
    static
    void setRestoreFilePosition( bool v )
    {
      if (v != self()->mRestoreFilePosition && !self()->isRestoreFilePositionImmutable()) {
        self()->mRestoreFilePosition = v;
        Q_EMIT self()->RestoreFilePositionChanged();
      }
    }

    Q_PROPERTY(bool restoreFilePosition READ restoreFilePosition WRITE setRestoreFilePosition NOTIFY RestoreFilePositionChanged)
    Q_PROPERTY(bool isRestoreFilePositionImmutable READ isRestoreFilePositionImmutable CONSTANT)
    Q_PROPERTY(bool defaultRestoreFilePositionValue READ defaultRestoreFilePositionValue CONSTANT)
    /**
      Get RestoreFilePosition
    */
    static
    bool restoreFilePosition()
    {
      return self()->mRestoreFilePosition;
    }

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

    /**
      Get RestoreFilePosition default value
    */
    static
    bool defaultRestoreFilePositionValue()
    {
        return defaultRestoreFilePositionValue_helper();
    }

    /**
      Set MinDurationToSavePosition
    */
    static
    void setMinDurationToSavePosition( int v )
    {
      if (v != self()->mMinDurationToSavePosition && !self()->isMinDurationToSavePositionImmutable()) {
        self()->mMinDurationToSavePosition = v;
        Q_EMIT self()->MinDurationToSavePositionChanged();
      }
    }

    Q_PROPERTY(int minDurationToSavePosition READ minDurationToSavePosition WRITE setMinDurationToSavePosition NOTIFY MinDurationToSavePositionChanged)
    Q_PROPERTY(bool isMinDurationToSavePositionImmutable READ isMinDurationToSavePositionImmutable CONSTANT)
    Q_PROPERTY(int defaultMinDurationToSavePositionValue READ defaultMinDurationToSavePositionValue CONSTANT)
    /**
      Get MinDurationToSavePosition
    */
    static
    int minDurationToSavePosition()
    {
      return self()->mMinDurationToSavePosition;
    }

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

    /**
      Get MinDurationToSavePosition default value
    */
    static
    int defaultMinDurationToSavePositionValue()
    {
        return defaultMinDurationToSavePositionValue_helper();
    }

    /**
      Set SavePositionInterval
    */
    static
    void setSavePositionInterval( int v )
    {
      if (v != self()->mSavePositionInterval && !self()->isSavePositionIntervalImmutable()) {
        self()->mSavePositionInterval = v;
        Q_EMIT self()->SavePositionIntervalChanged();
      }
    }

    Q_PROPERTY(int savePositionInterval READ savePositionInterval WRITE setSavePositionInterval NOTIFY SavePositionIntervalChanged)
    Q_PROPERTY(bool isSavePositionIntervalImmutable READ isSavePositionIntervalImmutable CONSTANT)
    Q_PROPERTY(int defaultSavePositionIntervalValue READ defaultSavePositionIntervalValue CONSTANT)
    /**
      Get SavePositionInterval
    */
    static
    int savePositionInterval()
    {
      return self()->mSavePositionInterval;
    }

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

    /**
      Get SavePositionInterval default value
    */
    static
    int defaultSavePositionIntervalValue()
    {
        return defaultSavePositionIntervalValue_helper();
    }

    /**
      Set SkipChapters
    */
    static
    void setSkipChapters( bool v )
    {
      if (v != self()->mSkipChapters && !self()->isSkipChaptersImmutable()) {
        self()->mSkipChapters = v;
        Q_EMIT self()->SkipChaptersChanged();
      }
    }

    Q_PROPERTY(bool skipChapters READ skipChapters WRITE setSkipChapters NOTIFY SkipChaptersChanged)
    Q_PROPERTY(bool isSkipChaptersImmutable READ isSkipChaptersImmutable CONSTANT)
    Q_PROPERTY(bool defaultSkipChaptersValue READ defaultSkipChaptersValue CONSTANT)
    /**
      Get SkipChapters
    */
    static
    bool skipChapters()
    {
      return self()->mSkipChapters;
    }

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

    /**
      Get SkipChapters default value
    */
    static
    bool defaultSkipChaptersValue()
    {
        return defaultSkipChaptersValue_helper();
    }

    /**
      Set ChaptersToSkip
    */
    static
    void setChaptersToSkip( const QString & v )
    {
      if (v != self()->mChaptersToSkip && !self()->isChaptersToSkipImmutable()) {
        self()->mChaptersToSkip = v;
        Q_EMIT self()->ChaptersToSkipChanged();
      }
    }

    Q_PROPERTY(QString chaptersToSkip READ chaptersToSkip WRITE setChaptersToSkip NOTIFY ChaptersToSkipChanged)
    Q_PROPERTY(bool isChaptersToSkipImmutable READ isChaptersToSkipImmutable CONSTANT)
    /**
      Get ChaptersToSkip
    */
    static
    QString chaptersToSkip()
    {
      return self()->mChaptersToSkip;
    }

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

    /**
      Set ShowOsdOnSkipChapters
    */
    static
    void setShowOsdOnSkipChapters( bool v )
    {
      if (v != self()->mShowOsdOnSkipChapters && !self()->isShowOsdOnSkipChaptersImmutable()) {
        self()->mShowOsdOnSkipChapters = v;
        Q_EMIT self()->ShowOsdOnSkipChaptersChanged();
      }
    }

    Q_PROPERTY(bool showOsdOnSkipChapters READ showOsdOnSkipChapters WRITE setShowOsdOnSkipChapters NOTIFY ShowOsdOnSkipChaptersChanged)
    Q_PROPERTY(bool isShowOsdOnSkipChaptersImmutable READ isShowOsdOnSkipChaptersImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowOsdOnSkipChaptersValue READ defaultShowOsdOnSkipChaptersValue CONSTANT)
    /**
      Get ShowOsdOnSkipChapters
    */
    static
    bool showOsdOnSkipChapters()
    {
      return self()->mShowOsdOnSkipChapters;
    }

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

    /**
      Get ShowOsdOnSkipChapters default value
    */
    static
    bool defaultShowOsdOnSkipChaptersValue()
    {
        return defaultShowOsdOnSkipChaptersValue_helper();
    }

    /**
      Set YtdlFormat
    */
    static
    void setYtdlFormat( const QString & v )
    {
      if (v != self()->mYtdlFormat && !self()->isYtdlFormatImmutable()) {
        self()->mYtdlFormat = v;
        Q_EMIT self()->YtdlFormatChanged();
      }
    }

    Q_PROPERTY(QString ytdlFormat READ ytdlFormat WRITE setYtdlFormat NOTIFY YtdlFormatChanged)
    Q_PROPERTY(bool isYtdlFormatImmutable READ isYtdlFormatImmutable CONSTANT)
    /**
      Get YtdlFormat
    */
    static
    QString ytdlFormat()
    {
      return self()->mYtdlFormat;
    }

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

    /**
      Set YtdlFormatCustom
    */
    static
    void setYtdlFormatCustom( const QString & v )
    {
      if (v != self()->mYtdlFormatCustom && !self()->isYtdlFormatCustomImmutable()) {
        self()->mYtdlFormatCustom = v;
        Q_EMIT self()->YtdlFormatCustomChanged();
      }
    }

    Q_PROPERTY(QString ytdlFormatCustom READ ytdlFormatCustom WRITE setYtdlFormatCustom NOTIFY YtdlFormatCustomChanged)
    Q_PROPERTY(bool isYtdlFormatCustomImmutable READ isYtdlFormatCustomImmutable CONSTANT)
    /**
      Get YtdlFormatCustom
    */
    static
    QString ytdlFormatCustom()
    {
      return self()->mYtdlFormatCustom;
    }

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

    /**
      Set HWDecoding
    */
    static
    void setHWDecoding( const QString & v )
    {
      if (v != self()->mHWDecoding && !self()->isHWDecodingImmutable()) {
        self()->mHWDecoding = v;
        Q_EMIT self()->HWDecodingChanged();
      }
    }

    Q_PROPERTY(QString hWDecoding READ hWDecoding WRITE setHWDecoding NOTIFY HWDecodingChanged)
    Q_PROPERTY(bool isHWDecodingImmutable READ isHWDecodingImmutable CONSTANT)
    Q_PROPERTY(QString defaultHWDecodingValue READ defaultHWDecodingValue CONSTANT)
    /**
      Get HWDecoding
    */
    static
    QString hWDecoding()
    {
      return self()->mHWDecoding;
    }

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

    /**
      Get HWDecoding default value
    */
    static
    QString defaultHWDecodingValue()
    {
        return defaultHWDecodingValue_helper();
    }

    /**
      Set SeekSmallStep
    */
    static
    void setSeekSmallStep( int v )
    {
      if (v != self()->mSeekSmallStep && !self()->isSeekSmallStepImmutable()) {
        self()->mSeekSmallStep = v;
        Q_EMIT self()->SeekSmallStepChanged();
      }
    }

    Q_PROPERTY(int seekSmallStep READ seekSmallStep WRITE setSeekSmallStep NOTIFY SeekSmallStepChanged)
    Q_PROPERTY(bool isSeekSmallStepImmutable READ isSeekSmallStepImmutable CONSTANT)
    Q_PROPERTY(int defaultSeekSmallStepValue READ defaultSeekSmallStepValue CONSTANT)
    /**
      Get SeekSmallStep
    */
    static
    int seekSmallStep()
    {
      return self()->mSeekSmallStep;
    }

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

    /**
      Get SeekSmallStep default value
    */
    static
    int defaultSeekSmallStepValue()
    {
        return defaultSeekSmallStepValue_helper();
    }

    /**
      Set SeekMediumStep
    */
    static
    void setSeekMediumStep( int v )
    {
      if (v != self()->mSeekMediumStep && !self()->isSeekMediumStepImmutable()) {
        self()->mSeekMediumStep = v;
        Q_EMIT self()->SeekMediumStepChanged();
      }
    }

    Q_PROPERTY(int seekMediumStep READ seekMediumStep WRITE setSeekMediumStep NOTIFY SeekMediumStepChanged)
    Q_PROPERTY(bool isSeekMediumStepImmutable READ isSeekMediumStepImmutable CONSTANT)
    Q_PROPERTY(int defaultSeekMediumStepValue READ defaultSeekMediumStepValue CONSTANT)
    /**
      Get SeekMediumStep
    */
    static
    int seekMediumStep()
    {
      return self()->mSeekMediumStep;
    }

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

    /**
      Get SeekMediumStep default value
    */
    static
    int defaultSeekMediumStepValue()
    {
        return defaultSeekMediumStepValue_helper();
    }

    /**
      Set SeekBigStep
    */
    static
    void setSeekBigStep( int v )
    {
      if (v != self()->mSeekBigStep && !self()->isSeekBigStepImmutable()) {
        self()->mSeekBigStep = v;
        Q_EMIT self()->SeekBigStepChanged();
      }
    }

    Q_PROPERTY(int seekBigStep READ seekBigStep WRITE setSeekBigStep NOTIFY SeekBigStepChanged)
    Q_PROPERTY(bool isSeekBigStepImmutable READ isSeekBigStepImmutable CONSTANT)
    Q_PROPERTY(int defaultSeekBigStepValue READ defaultSeekBigStepValue CONSTANT)
    /**
      Get SeekBigStep
    */
    static
    int seekBigStep()
    {
      return self()->mSeekBigStep;
    }

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

    /**
      Get SeekBigStep default value
    */
    static
    int defaultSeekBigStepValue()
    {
        return defaultSeekBigStepValue_helper();
    }

    /**
      Set OpenLastPlayedFile
    */
    static
    void setOpenLastPlayedFile( bool v )
    {
      if (v != self()->mOpenLastPlayedFile && !self()->isOpenLastPlayedFileImmutable()) {
        self()->mOpenLastPlayedFile = v;
        Q_EMIT self()->OpenLastPlayedFileChanged();
      }
    }

    Q_PROPERTY(bool openLastPlayedFile READ openLastPlayedFile WRITE setOpenLastPlayedFile NOTIFY OpenLastPlayedFileChanged)
    Q_PROPERTY(bool isOpenLastPlayedFileImmutable READ isOpenLastPlayedFileImmutable CONSTANT)
    Q_PROPERTY(bool defaultOpenLastPlayedFileValue READ defaultOpenLastPlayedFileValue CONSTANT)
    /**
      Get OpenLastPlayedFile
    */
    static
    bool openLastPlayedFile()
    {
      return self()->mOpenLastPlayedFile;
    }

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

    /**
      Get OpenLastPlayedFile default value
    */
    static
    bool defaultOpenLastPlayedFileValue()
    {
        return defaultOpenLastPlayedFileValue_helper();
    }

    /**
      Set PauseWhileMinimized
    */
    static
    void setPauseWhileMinimized( bool v )
    {
      if (v != self()->mPauseWhileMinimized && !self()->isPauseWhileMinimizedImmutable()) {
        self()->mPauseWhileMinimized = v;
        Q_EMIT self()->PauseWhileMinimizedChanged();
      }
    }

    Q_PROPERTY(bool pauseWhileMinimized READ pauseWhileMinimized WRITE setPauseWhileMinimized NOTIFY PauseWhileMinimizedChanged)
    Q_PROPERTY(bool isPauseWhileMinimizedImmutable READ isPauseWhileMinimizedImmutable CONSTANT)
    Q_PROPERTY(bool defaultPauseWhileMinimizedValue READ defaultPauseWhileMinimizedValue CONSTANT)
    /**
      Get PauseWhileMinimized
    */
    static
    bool pauseWhileMinimized()
    {
      return self()->mPauseWhileMinimized;
    }

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

    /**
      Get PauseWhileMinimized default value
    */
    static
    bool defaultPauseWhileMinimizedValue()
    {
        return defaultPauseWhileMinimizedValue_helper();
    }

    /**
      Set PlayOnResume
    */
    static
    void setPlayOnResume( bool v )
    {
      if (v != self()->mPlayOnResume && !self()->isPlayOnResumeImmutable()) {
        self()->mPlayOnResume = v;
        Q_EMIT self()->PlayOnResumeChanged();
      }
    }

    Q_PROPERTY(bool playOnResume READ playOnResume WRITE setPlayOnResume NOTIFY PlayOnResumeChanged)
    Q_PROPERTY(bool isPlayOnResumeImmutable READ isPlayOnResumeImmutable CONSTANT)
    Q_PROPERTY(bool defaultPlayOnResumeValue READ defaultPlayOnResumeValue CONSTANT)
    /**
      Get PlayOnResume
    */
    static
    bool playOnResume()
    {
      return self()->mPlayOnResume;
    }

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

    /**
      Get PlayOnResume default value
    */
    static
    bool defaultPlayOnResumeValue()
    {
        return defaultPlayOnResumeValue_helper();
    }


    enum {
      signalRestoreFilePositionChanged = 1,
      signalMinDurationToSavePositionChanged = 2,
      signalSavePositionIntervalChanged = 3,
      signalSkipChaptersChanged = 4,
      signalChaptersToSkipChanged = 5,
      signalShowOsdOnSkipChaptersChanged = 6,
      signalYtdlFormatChanged = 7,
      signalYtdlFormatCustomChanged = 8,
      signalHWDecodingChanged = 9,
      signalSeekSmallStepChanged = 10,
      signalSeekMediumStepChanged = 11,
      signalSeekBigStepChanged = 12,
      signalOpenLastPlayedFileChanged = 13,
      signalPauseWhileMinimizedChanged = 14,
      signalPlayOnResumeChanged = 15
    };

  Q_SIGNALS:
    void RestoreFilePositionChanged();

    void MinDurationToSavePositionChanged();

    void SavePositionIntervalChanged();

    void SkipChaptersChanged();

    void ChaptersToSkipChanged();

    void ShowOsdOnSkipChaptersChanged();

    void YtdlFormatChanged();

    void YtdlFormatCustomChanged();

    void HWDecodingChanged();

    void SeekSmallStepChanged();

    void SeekMediumStepChanged();

    void SeekBigStepChanged();

    void OpenLastPlayedFileChanged();

    void PauseWhileMinimizedChanged();

    void PlayOnResumeChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    PlaybackSettings(QObject *parent = nullptr);
    friend class PlaybackSettingsHelper;


    // Playback
    bool mRestoreFilePosition;
    static bool defaultRestoreFilePositionValue_helper();
    int mMinDurationToSavePosition;
    static int defaultMinDurationToSavePositionValue_helper();
    int mSavePositionInterval;
    static int defaultSavePositionIntervalValue_helper();
    bool mSkipChapters;
    static bool defaultSkipChaptersValue_helper();
    QString mChaptersToSkip;
    static QString defaultChaptersToSkipValue_helper();
    bool mShowOsdOnSkipChapters;
    static bool defaultShowOsdOnSkipChaptersValue_helper();
    QString mYtdlFormat;
    static QString defaultYtdlFormatValue_helper();
    QString mYtdlFormatCustom;
    static QString defaultYtdlFormatCustomValue_helper();
    QString mHWDecoding;
    static QString defaultHWDecodingValue_helper();
    int mSeekSmallStep;
    static int defaultSeekSmallStepValue_helper();
    int mSeekMediumStep;
    static int defaultSeekMediumStepValue_helper();
    int mSeekBigStep;
    static int defaultSeekBigStepValue_helper();
    bool mOpenLastPlayedFile;
    static bool defaultOpenLastPlayedFileValue_helper();
    bool mPauseWhileMinimized;
    static bool defaultPauseWhileMinimizedValue_helper();
    bool mPlayOnResume;
    static bool defaultPlayOnResumeValue_helper();
};

#endif

