/***************************************************************************
 * settings.h
 *
 * This file is part of KTabEdit, a KDE tabulature editor
 *
 * copyright (C) 2007- the KTabEdit development team <mrgwen@gmail.com>
 ***************************************************************************/

/***************************************************************************
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * See the file COPYING for more information.
 ***************************************************************************/

#ifndef SETTINGS_H
#define SETTINGS_H

#include <QFont>
#include <QSettings>

class Settings {
public:
	static Settings* getInstance();
	
	QString noteName(int);
	QString maj7Name();
	QString flatName();
	QString sharpName();
	
	QString midiName();
	QString midiPort();
	int midiPortNumber();
	bool midiReadable();
	bool midiWriteable();
	bool midiTimidity();
	
	int texTabSize();
	bool texShowBarNumber();
	bool texShowStr();
	bool texShowPageNumber();
	bool texExportMode();
	int printingStyle();
	
	int melodyEditorWood();
	int melodyEditorInlay();
	int melodyEditorAction(int num);
	bool melodyEditorAdvance(int num);
	
	QString timidityPath();
	int timidityBuffer();
	int timidityFragment();
	QString timidityOutput();
	QString timidityChorus();
	QString timidityDelay();
	QString timidityReverb();
	QString timidityVlpf();
	int timidityNoise();
	QString timidityResamp();
	int timidityFrequency();
	bool timidityRealTimeEnable();
	int timidityRealTime();
	
	bool assistant();
	
	QFont titleFont();
	QFont subTitleFont();
	QFont textAndTabFont();
	QFont timeSignatureFont();
	
private:
	Settings();
	Settings(const Settings& other);
	~Settings();
	
	Settings operator=(const Settings& other);
	
	static const QString noteNames[9][12];
	static Settings* SThis;
	
	QSettings* mSettings;
};

#endif
