#ifndef CONFIG_H #define CONFIG_H #include #include #include #include #include #include #include #include #include #include #include "structs.h" #include #include "usb_thingy.h" #include "a811.h" #define CONF_FILE "conf.bin" class Conf : public QObject { Q_OBJECT Q_PROPERTY(ssize_t deviceConfig READ deviceConfig WRITE setDeviceConfig NOTIFY deviceConfigChanged) Q_PROPERTY(int lightMode READ lightMode WRITE setLightMode NOTIFY lightModeChanged) Q_PROPERTY(ssize_t batteryStatus READ batteryStatus WRITE setBatteryStatus NOTIFY batteryStatusChanged) public: explicit Conf(QObject *parent = nullptr); ssize_t deviceConfig(); Q_INVOKABLE void setDeviceConfig(ssize_t stat); Q_SIGNAL void deviceConfigChanged(); int lightMode(); Q_INVOKABLE void setLightMode(int mode); Q_SIGNAL void lightModeChanged(); Q_INVOKABLE ssize_t restoreConfigs(); Q_INVOKABLE ssize_t writeConfigToFile(); ssize_t writeConfigToFile(const char *filePath); Q_INVOKABLE ssize_t readConfigFromFile(); ssize_t readConfigFromFile(const char *filePath); ssize_t getIdleStatus(); // all the config should be in a single file ssize_t writeConfigToFile(conf_1 *conf, const char *filePath); ssize_t writeConfigToFile(conf_2 *conf, const char *filePath); ssize_t readConfigFromFile(const char *filePath, conf_1 *conf); ssize_t readConfigFromFile(const char *filePath, conf_2 *conf); ssize_t writeConfigToDevice(conf_1 *conf); ssize_t writeConfigToDevice(conf_2 *conf); ssize_t readConfigFromDevice(conf_1 *conf); ssize_t readConfigFromDevice(conf_2 *conf); Q_INVOKABLE ssize_t readAssignedMacrosFromDevice(); Q_INVOKABLE ssize_t readMacrosFromDevice(macro **¯os, int cnt); Q_INVOKABLE ssize_t readMacroFromDevice(macro *_macro, int id); Q_INVOKABLE ssize_t writeMacroToDevice(macro *_macro); Q_INVOKABLE ssize_t appendMacroToFile(macro *_macro, const char *filePath); Q_INVOKABLE ssize_t deleteMacroFromFile(macro *_macro, const char *filePath); ssize_t batteryStatus(); Q_INVOKABLE void setBatteryStatus(ssize_t bat); Q_SIGNAL void batteryStatusChanged(); Q_INVOKABLE void testFunc(); Q_SIGNALS: private: macro **m_macros; ssize_t m_stat; ssize_t m_bat; int m_lightMode; conf_1 *m_conf1; conf_2 *m_conf2; QString m_fileName; Connection *connection; }; #endif