143 lines
2.6 KiB
C++
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
|