lms-audio/src/settings.h
2014-10-17 18:34:47 +02:00

143 lines
2.6 KiB
C++

#ifndef SETTINGS_H
#define SETTINGS_H
#include <QObject>
#include <QXmlStreamReader>
#include <QFile>
#include <QMessageBox>
#include <QSet>
//#include "olathread.h"
#include "medialibrary.h"
#include "defines.h"
/**
* This class stores the settings on lms.
* Is a singleton with set and get methods to manage the settings
* Also writes and reads the settings files.
*/
class Settings : public QObject
{
Q_OBJECT
public:
static Settings *getInstance(); //Singleton
/**
* @brief getUniverses
* @return
*/
inline QSet<int> getUniverses() { return m_universe; }
/**
* @brief getPathMedia
* @return
*/
inline QString getPathMedia() { return m_pathmedia; }
/**
* @brief setPathMedia
* @param path
*/
void setPathMedia(QString path);
/**
* @brief getDmxSettings
* @return
*/
inline QList<dmxSetting> getDmxSettings() { return m_settings; }
/**
* @brief Get the number of layer currently used
* @return
*/
inline int getLayersNumber() { return m_layersNumber; }
/**
* @brief Get the number of universes registered
* @return
*/
inline int getUniverseNumber() { return m_universe.size(); }
/**
* @brief Read the default xml configuration file at startup
*/
void readFile();
private:
static Settings *_instance;
/** Constructor
*
*/
explicit Settings(QObject *parent = 0);
QSet<int> m_universe; // Registered universes.
int m_layersNumber; // Number of layers in wich divide the dmx frame. Each layer, one source.
/**
* @brief olaThread::setLayersNumber
* @param layersNumber
*
*/
inline void setLayersNumber(int layersNumber)
{
if (layersNumber <= LAYERS_NUMBER)
m_layersNumber = layersNumber;
else
m_layersNumber = LAYERS_NUMBER;
}
// The list where we store the settings by layer
QList<dmxSetting> m_settings;
// The path to media library
QString m_pathmedia;
/**
* @brief readFromFile
* @param file
*/
void readFromFile(QString file);
/**
* @brief writeFile
* @param filename
*/
// void writeFile(QString filename); // Not implemented yet
/**
* @brief writeFile
* overload
*/
// void writeFile(); // Not implemented yet
signals:
/**
* @brief pathChanged
* @param path
*/
void pathChanged(QString path);
/**
* @brief layersNumber
* @param number
*/
void layersNumber(int number);
/**
* @brief DMXConf
* @param universe
*/
void registerUniverse(int universe);
public slots:
};
#endif // SETTINGS_H