a811/src/conf.h

86 lines
2.5 KiB
C++

#ifndef CONFIG_H
#define CONFIG_H
#include <QObject>
#include <QtQml>
#include <QString>
#include <QStringList>
#include <QQuickView>
#include <QQmlComponent>
#include <QList>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include "structs.h"
#include <unistd.h>
#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 **&macros, 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