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

#include <kmixcore_export.h>

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

#include <qglobal.h>

class KMIXCORE_EXPORT Settings : public KConfigSkeleton
{
  public:

    static Settings *self();
    ~Settings() override;

    /**
      Set Tickmarks
    */
    static
    void setShowTicks( bool v )
    {
      if (!self()->isShowTicksImmutable())
        self()->mShowTicks = v;
    }

    /**
      Get Tickmarks
    */
    static
    bool showTicks()
    {
      return self()->mShowTicks;
    }

    /**
      Is Tickmarks Immutable
    */
    static
    bool isShowTicksImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowTicks" ) );
    }

    /**
      Get Item object corresponding to ShowTicks()
    */
    ItemBool *showTicksItem()
    {
      return mShowTicksItem;
    }

    /**
      Set Labels
    */
    static
    void setShowLabels( bool v )
    {
      if (!self()->isShowLabelsImmutable())
        self()->mShowLabels = v;
    }

    /**
      Get Labels
    */
    static
    bool showLabels()
    {
      return self()->mShowLabels;
    }

    /**
      Is Labels Immutable
    */
    static
    bool isShowLabelsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowLabels" ) );
    }

    /**
      Get Item object corresponding to ShowLabels()
    */
    ItemBool *showLabelsItem()
    {
      return mShowLabelsItem;
    }

    /**
      Set VolumeOverdrive
    */
    static
    void setVolumeOverdrive( bool v )
    {
      if (!self()->isVolumeOverdriveImmutable())
        self()->mVolumeOverdrive = v;
    }

    /**
      Get VolumeOverdrive
    */
    static
    bool volumeOverdrive()
    {
      return self()->mVolumeOverdrive;
    }

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

    /**
      Get Item object corresponding to VolumeOverdrive()
    */
    ItemBool *volumeOverdriveItem()
    {
      return mVolumeOverdriveItem;
    }

    /**
      Set VolumeFeedback
    */
    static
    void setBeepOnVolumeChange( bool v )
    {
      if (!self()->isBeepOnVolumeChangeImmutable())
        self()->mBeepOnVolumeChange = v;
    }

    /**
      Get VolumeFeedback
    */
    static
    bool beepOnVolumeChange()
    {
      return self()->mBeepOnVolumeChange;
    }

    /**
      Is VolumeFeedback Immutable
    */
    static
    bool isBeepOnVolumeChangeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BeepOnVolumeChange" ) );
    }

    /**
      Get Item object corresponding to BeepOnVolumeChange()
    */
    ItemBool *beepOnVolumeChangeItem()
    {
      return mBeepOnVolumeChangeItem;
    }

    /**
      Set VolumePercentageStep
    */
    static
    void setVolumePercentageStep( int v )
    {
      if (!self()->isVolumePercentageStepImmutable())
        self()->mVolumePercentageStep = v;
    }

    /**
      Get VolumePercentageStep
    */
    static
    int volumePercentageStep()
    {
      return self()->mVolumePercentageStep;
    }

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

    /**
      Get Item object corresponding to VolumePercentageStep()
    */
    ItemInt *volumePercentageStepItem()
    {
      return mVolumePercentageStepItem;
    }

    /**
      Set Orientation
    */
    static
    void setOrientationMainWindow( int v )
    {
      if (!self()->isOrientationMainWindowImmutable())
        self()->mOrientationMainWindow = v;
    }

    /**
      Get Orientation
    */
    static
    int orientationMainWindow()
    {
      return self()->mOrientationMainWindow;
    }

    /**
      Is Orientation Immutable
    */
    static
    bool isOrientationMainWindowImmutable()
    {
      return self()->isImmutable( QStringLiteral( "OrientationMainWindow" ) );
    }

    /**
      Get Item object corresponding to OrientationMainWindow()
    */
    ItemInt *orientationMainWindowItem()
    {
      return mOrientationMainWindowItem;
    }

    /**
      Set OrientationTrayPopup
    */
    static
    void setOrientationTrayPopup( int v )
    {
      if (!self()->isOrientationTrayPopupImmutable())
        self()->mOrientationTrayPopup = v;
    }

    /**
      Get OrientationTrayPopup
    */
    static
    int orientationTrayPopup()
    {
      return self()->mOrientationTrayPopup;
    }

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

    /**
      Get Item object corresponding to OrientationTrayPopup()
    */
    ItemInt *orientationTrayPopupItem()
    {
      return mOrientationTrayPopupItem;
    }

    /**
      Set showOSD
    */
    static
    void setShowOSD( bool v )
    {
      if (!self()->isShowOSDImmutable())
        self()->mShowOSD = v;
    }

    /**
      Get showOSD
    */
    static
    bool showOSD()
    {
      return self()->mShowOSD;
    }

    /**
      Is showOSD Immutable
    */
    static
    bool isShowOSDImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowOSD" ) );
    }

    /**
      Get Item object corresponding to ShowOSD()
    */
    ItemBool *showOSDItem()
    {
      return mShowOSDItem;
    }

    /**
      Set AllowDocking
    */
    static
    void setShowDockWidget( bool v )
    {
      if (!self()->isShowDockWidgetImmutable())
        self()->mShowDockWidget = v;
    }

    /**
      Get AllowDocking
    */
    static
    bool showDockWidget()
    {
      return self()->mShowDockWidget;
    }

    /**
      Is AllowDocking Immutable
    */
    static
    bool isShowDockWidgetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowDockWidget" ) );
    }

    /**
      Get Item object corresponding to ShowDockWidget()
    */
    ItemBool *showDockWidgetItem()
    {
      return mShowDockWidgetItem;
    }

    /**
      Set startkdeRestore
    */
    static
    void setStartRestore( bool v )
    {
      if (!self()->isStartRestoreImmutable())
        self()->mStartRestore = v;
    }

    /**
      Get startkdeRestore
    */
    static
    bool startRestore()
    {
      return self()->mStartRestore;
    }

    /**
      Is startkdeRestore Immutable
    */
    static
    bool isStartRestoreImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StartRestore" ) );
    }

    /**
      Get Item object corresponding to StartRestore()
    */
    ItemBool *startRestoreItem()
    {
      return mStartRestoreItem;
    }

    /**
      Set AutoStart
    */
    static
    void setAutoStart( bool v )
    {
      if (!self()->isAutoStartImmutable())
        self()->mAutoStart = v;
    }

    /**
      Get AutoStart
    */
    static
    bool autoStart()
    {
      return self()->mAutoStart;
    }

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

    /**
      Get Item object corresponding to AutoStart()
    */
    ItemBool *autoStartItem()
    {
      return mAutoStartItem;
    }

    /**
      Set ConfigVersion
    */
    static
    void setConfigVersion( int v )
    {
      if (!self()->isConfigVersionImmutable())
        self()->mConfigVersion = v;
    }

    /**
      Get ConfigVersion
    */
    static
    int configVersion()
    {
      return self()->mConfigVersion;
    }

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

    /**
      Get Item object corresponding to ConfigVersion()
    */
    ItemInt *configVersionItem()
    {
      return mConfigVersionItem;
    }

    /**
      Set Size
    */
    static
    void setSize( const QSize & v )
    {
      if (!self()->isSizeImmutable())
        self()->mSize = v;
    }

    /**
      Get Size
    */
    static
    QSize size()
    {
      return self()->mSize;
    }

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

    /**
      Get Item object corresponding to Size()
    */
    ItemSize *sizeItem()
    {
      return mSizeItem;
    }

    /**
      Set Position
    */
    static
    void setPosition( const QPoint & v )
    {
      if (!self()->isPositionImmutable())
        self()->mPosition = v;
    }

    /**
      Get Position
    */
    static
    QPoint position()
    {
      return self()->mPosition;
    }

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

    /**
      Get Item object corresponding to Position()
    */
    ItemPoint *positionItem()
    {
      return mPositionItem;
    }

    /**
      Set Visible
    */
    static
    void setVisible( bool v )
    {
      if (!self()->isVisibleImmutable())
        self()->mVisible = v;
    }

    /**
      Get Visible
    */
    static
    bool visible()
    {
      return self()->mVisible;
    }

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

    /**
      Get Item object corresponding to Visible()
    */
    ItemBool *visibleItem()
    {
      return mVisibleItem;
    }

    /**
      Set Menubar
    */
    static
    void setMenubar( bool v )
    {
      if (!self()->isMenubarImmutable())
        self()->mMenubar = v;
    }

    /**
      Get Menubar
    */
    static
    bool menubar()
    {
      return self()->mMenubar;
    }

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

    /**
      Get Item object corresponding to Menubar()
    */
    ItemBool *menubarItem()
    {
      return mMenubarItem;
    }

    /**
      Set Soundmenu.Mixers
    */
    static
    void setMixersForSoundMenu( const QStringList & v )
    {
      if (!self()->isMixersForSoundMenuImmutable())
        self()->mMixersForSoundMenu = v;
    }

    /**
      Get Soundmenu.Mixers
    */
    static
    QStringList mixersForSoundMenu()
    {
      return self()->mMixersForSoundMenu;
    }

    /**
      Is Soundmenu.Mixers Immutable
    */
    static
    bool isMixersForSoundMenuImmutable()
    {
      return self()->isImmutable( QStringLiteral( "MixersForSoundMenu" ) );
    }

    /**
      Get Item object corresponding to MixersForSoundMenu()
    */
    ItemStringList *mixersForSoundMenuItem()
    {
      return mMixersForSoundMenuItem;
    }

    /**
      Set DefaultCardOnStart
    */
    static
    void setDefaultCardOnStart( const QString & v )
    {
      if (!self()->isDefaultCardOnStartImmutable())
        self()->mDefaultCardOnStart = v;
    }

    /**
      Get DefaultCardOnStart
    */
    static
    QString defaultCardOnStart()
    {
      return self()->mDefaultCardOnStart;
    }

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

    /**
      Get Item object corresponding to DefaultCardOnStart()
    */
    ItemString *defaultCardOnStartItem()
    {
      return mDefaultCardOnStartItem;
    }

    /**
      Set AutoUseMultimediaKeys
    */
    static
    void setAutoUseMultimediaKeys( bool v )
    {
      if (!self()->isAutoUseMultimediaKeysImmutable())
        self()->mAutoUseMultimediaKeys = v;
    }

    /**
      Get AutoUseMultimediaKeys
    */
    static
    bool autoUseMultimediaKeys()
    {
      return self()->mAutoUseMultimediaKeys;
    }

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

    /**
      Get Item object corresponding to AutoUseMultimediaKeys()
    */
    ItemBool *autoUseMultimediaKeysItem()
    {
      return mAutoUseMultimediaKeysItem;
    }

    /**
      Set MasterMixer
    */
    static
    void setMasterMixer( const QString & v )
    {
      if (!self()->isMasterMixerImmutable())
        self()->mMasterMixer = v;
    }

    /**
      Get MasterMixer
    */
    static
    QString masterMixer()
    {
      return self()->mMasterMixer;
    }

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

    /**
      Get Item object corresponding to MasterMixer()
    */
    ItemString *masterMixerItem()
    {
      return mMasterMixerItem;
    }

    /**
      Set MasterMixerDevice
    */
    static
    void setMasterMixerDevice( const QString & v )
    {
      if (!self()->isMasterMixerDeviceImmutable())
        self()->mMasterMixerDevice = v;
    }

    /**
      Get MasterMixerDevice
    */
    static
    QString masterMixerDevice()
    {
      return self()->mMasterMixerDevice;
    }

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

    /**
      Get Item object corresponding to MasterMixerDevice()
    */
    ItemString *masterMixerDeviceItem()
    {
      return mMasterMixerDeviceItem;
    }

    /**
      Set MixerIgnoreExpression
    */
    static
    void setMixerIgnoreExpression( const QString & v )
    {
      if (!self()->isMixerIgnoreExpressionImmutable())
        self()->mMixerIgnoreExpression = v;
    }

    /**
      Get MixerIgnoreExpression
    */
    static
    QString mixerIgnoreExpression()
    {
      return self()->mMixerIgnoreExpression;
    }

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

    /**
      Get Item object corresponding to MixerIgnoreExpression()
    */
    ItemString *mixerIgnoreExpressionItem()
    {
      return mMixerIgnoreExpressionItem;
    }

    /**
      Set MultiDriver
    */
    static
    void setMultiDriver( bool v )
    {
      if (!self()->isMultiDriverImmutable())
        self()->mMultiDriver = v;
    }

    /**
      Get MultiDriver
    */
    static
    bool multiDriver()
    {
      return self()->mMultiDriver;
    }

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

    /**
      Get Item object corresponding to MultiDriver()
    */
    ItemBool *multiDriverItem()
    {
      return mMultiDriverItem;
    }

    /**
      Set Backends
    */
    static
    void setBackends( const QStringList & v )
    {
      if (!self()->isBackendsImmutable())
        self()->mBackends = v;
    }

    /**
      Get Backends
    */
    static
    QStringList backends()
    {
      return self()->mBackends;
    }

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

    /**
      Get Item object corresponding to Backends()
    */
    ItemStringList *backendsItem()
    {
      return mBackendsItem;
    }

    /**
      Set DebugControlManager
    */
    static
    void setDebugControlManager( bool v )
    {
      if (!self()->isDebugControlManagerImmutable())
        self()->mDebugControlManager = v;
    }

    /**
      Get DebugControlManager
    */
    static
    bool debugControlManager()
    {
      return self()->mDebugControlManager;
    }

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

    /**
      Get Item object corresponding to DebugControlManager()
    */
    ItemBool *debugControlManagerItem()
    {
      return mDebugControlManagerItem;
    }

    /**
      Set DebugGui
    */
    static
    void setDebugGui( bool v )
    {
      if (!self()->isDebugGuiImmutable())
        self()->mDebugGui = v;
    }

    /**
      Get DebugGui
    */
    static
    bool debugGui()
    {
      return self()->mDebugGui;
    }

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

    /**
      Get Item object corresponding to DebugGui()
    */
    ItemBool *debugGuiItem()
    {
      return mDebugGuiItem;
    }

    /**
      Set DebugVolume
    */
    static
    void setDebugVolume( bool v )
    {
      if (!self()->isDebugVolumeImmutable())
        self()->mDebugVolume = v;
    }

    /**
      Get DebugVolume
    */
    static
    bool debugVolume()
    {
      return self()->mDebugVolume;
    }

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

    /**
      Get Item object corresponding to DebugVolume()
    */
    ItemBool *debugVolumeItem()
    {
      return mDebugVolumeItem;
    }

    /**
      Set DebugConfig
    */
    static
    void setDebugConfig( bool v )
    {
      if (!self()->isDebugConfigImmutable())
        self()->mDebugConfig = v;
    }

    /**
      Get DebugConfig
    */
    static
    bool debugConfig()
    {
      return self()->mDebugConfig;
    }

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

    /**
      Get Item object corresponding to DebugConfig()
    */
    ItemBool *debugConfigItem()
    {
      return mDebugConfigItem;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Global
    bool mShowTicks;
    bool mShowLabels;
    bool mVolumeOverdrive;
    bool mBeepOnVolumeChange;
    int mVolumePercentageStep;
    int mOrientationMainWindow;
    int mOrientationTrayPopup;
    bool mShowOSD;
    bool mShowDockWidget;
    bool mStartRestore;
    bool mAutoStart;
    int mConfigVersion;
    QSize mSize;
    QPoint mPosition;
    bool mVisible;
    bool mMenubar;
    QStringList mMixersForSoundMenu;
    QString mDefaultCardOnStart;
    bool mAutoUseMultimediaKeys;
    QString mMasterMixer;
    QString mMasterMixerDevice;
    QString mMixerIgnoreExpression;
    bool mMultiDriver;
    QStringList mBackends;

    // Debug
    bool mDebugControlManager;
    bool mDebugGui;
    bool mDebugVolume;
    bool mDebugConfig;

  private:
    ItemBool *mShowTicksItem;
    ItemBool *mShowLabelsItem;
    ItemBool *mVolumeOverdriveItem;
    ItemBool *mBeepOnVolumeChangeItem;
    ItemInt *mVolumePercentageStepItem;
    ItemInt *mOrientationMainWindowItem;
    ItemInt *mOrientationTrayPopupItem;
    ItemBool *mShowOSDItem;
    ItemBool *mShowDockWidgetItem;
    ItemBool *mStartRestoreItem;
    ItemBool *mAutoStartItem;
    ItemInt *mConfigVersionItem;
    ItemSize *mSizeItem;
    ItemPoint *mPositionItem;
    ItemBool *mVisibleItem;
    ItemBool *mMenubarItem;
    ItemStringList *mMixersForSoundMenuItem;
    ItemString *mDefaultCardOnStartItem;
    ItemBool *mAutoUseMultimediaKeysItem;
    ItemString *mMasterMixerItem;
    ItemString *mMasterMixerDeviceItem;
    ItemString *mMixerIgnoreExpressionItem;
    ItemBool *mMultiDriverItem;
    ItemStringList *mBackendsItem;
    ItemBool *mDebugControlManagerItem;
    ItemBool *mDebugGuiItem;
    ItemBool *mDebugVolumeItem;
    ItemBool *mDebugConfigItem;
};

#endif

