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

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

class Settings : public KConfigSkeleton
{
  public:

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

    /**
      Set If true, the main menu bar is shown.
    */
    static
    void setShowMenuBar( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "ShowMenuBar" ) ))
        self()->mShowMenuBar = v;
    }

    /**
      Get If true, the main menu bar is shown.
    */
    static
    bool showMenuBar()
    {
      return self()->mShowMenuBar;
    }

    /**
      Set If enabled, course files are only read from the local contributor repository
    */
    static
    void setUseCourseRepository( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "UseCourseRepository" ) ))
        self()->mUseCourseRepository = v;
    }

    /**
      Get If enabled, course files are only read from the local contributor repository
    */
    static
    bool useCourseRepository()
    {
      return self()->mUseCourseRepository;
    }

    /**
      Set Path to local contributor repository
    */
    static
    void setCourseRepositoryPath( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "CourseRepositoryPath" ) ))
        self()->mCourseRepositoryPath = v;
    }

    /**
      Get Path to local contributor repository
    */
    static
    QString courseRepositoryPath()
    {
      return self()->mCourseRepositoryPath;
    }

    /**
      Set Name of audio input device
    */
    static
    void setAudioInputDevice( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "AudioInputDevice" ) ))
        self()->mAudioInputDevice = v;
    }

    /**
      Get Name of audio input device
    */
    static
    QString audioInputDevice()
    {
      return self()->mAudioInputDevice;
    }

    /**
      Set Audio input volume
    */
    static
    void setAudioInputVolume( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "AudioInputVolume" ) ))
        self()->mAudioInputVolume = v;
    }

    /**
      Get Audio input volume
    */
    static
    int audioInputVolume()
    {
      return self()->mAudioInputVolume;
    }

    /**
      Set Audio output volume
    */
    static
    void setAudioOutputVolume( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "AudioOutputVolume" ) ))
        self()->mAudioOutputVolume = v;
    }

    /**
      Get Audio output volume
    */
    static
    int audioOutputVolume()
    {
      return self()->mAudioOutputVolume;
    }

    /**
      Set Font
    */
    static
    void setTrainingPhraseFont( const QFont & v )
    {
      if (!self()->isImmutable( QStringLiteral( "TrainingPhraseFont" ) ))
        self()->mTrainingPhraseFont = v;
    }

    /**
      Get Font
    */
    static
    QFont trainingPhraseFont()
    {
      return self()->mTrainingPhraseFont;
    }

    /**
      Set Set either to 'qtmultimediabackend' or 'qtgstreamerbackend', selected on runtime if available.
    */
    static
    void setRecordingBackend( const QString & v )
    {
      if (!self()->isImmutable( QStringLiteral( "RecordingBackend" ) ))
        self()->mRecordingBackend = v;
    }

    /**
      Get Set either to 'qtmultimediabackend' or 'qtgstreamerbackend', selected on runtime if available.
    */
    static
    QString recordingBackend()
    {
      return self()->mRecordingBackend;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // artikulate
    bool mShowMenuBar;
    bool mUseCourseRepository;
    QString mCourseRepositoryPath;
    QString mAudioInputDevice;
    int mAudioInputVolume;
    int mAudioOutputVolume;
    QFont mTrainingPhraseFont;
    QString mRecordingBackend;

  private:
};

#endif

