#ifndef SETTINGS_H #define SETTINGS_H #include #include #include #include #include //#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 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 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 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 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