1
0
Fork 0
forked from denis/a811

Somethings working

This commit is contained in:
Denis Manherz 2024-08-29 22:23:25 +02:00
parent de6ce3178f
commit 1808515221
6 changed files with 57 additions and 24 deletions

BIN
conf1.bin

Binary file not shown.

BIN
conf2.bin

Binary file not shown.

View file

@ -13,7 +13,7 @@ Kirigami.ApplicationWindow {
width: 400 width: 400
height: 300 height: 300
property var devices: Conf.deviceList property var devices: Conf.stat
// Window title // Window title
// i18nc() makes a string translatable // i18nc() makes a string translatable
@ -23,7 +23,14 @@ Kirigami.ApplicationWindow {
globalDrawer: Kirigami.GlobalDrawer { globalDrawer: Kirigami.GlobalDrawer {
id: drawer id: drawer
isMenu: true isMenu: true
actions: devices actions: [
Kirigami.Action {
text: "fff"
icon.name: "gtk-quit"
shortcut: StandardKey.Quit
onTriggered: Conf.deviceConfig()
}
]
} }
// Set the first page that will be loaded when the app opens // Set the first page that will be loaded when the app opens
@ -35,6 +42,9 @@ Kirigami.ApplicationWindow {
anchors.centerIn: parent anchors.centerIn: parent
text: i18n("Hello World!") text: i18n("Hello World!")
} }
Controls.TextField {
placeholderText: qsTr("Enter name")
}
Component { Component {
id: nameDelegate id: nameDelegate
Text { Text {
@ -42,6 +52,8 @@ Kirigami.ApplicationWindow {
font.pixelSize: 32 font.pixelSize: 32
} }
} }
actions: [
]
} }
} }

View file

@ -4,6 +4,9 @@
Conf::Conf(QObject *parent) : QObject(parent) Conf::Conf(QObject *parent) : QObject(parent)
{ {
m_conf1 = (conf_1 *)malloc(sizeof(conf_1));
m_conf2 = (conf_2 *)malloc(sizeof(conf_2));
int r = libusb_init(&m_ctx); int r = libusb_init(&m_ctx);
if (r < 0) if (r < 0)
{ {
@ -17,8 +20,6 @@ Conf::Conf(QObject *parent) : QObject(parent)
{ {
libusb_device *device = list[i]; libusb_device *device = list[i];
m_device = device; m_device = device;
uint8_t addr = libusb_get_device_address(m_device);
uint8_t bus = libusb_get_bus_number(m_device);
libusb_device_descriptor desc; libusb_device_descriptor desc;
libusb_get_device_descriptor(m_device, &desc); libusb_get_device_descriptor(m_device, &desc);
if (desc.idProduct == 0x2f && desc.idVendor == 0x258a) if (desc.idProduct == 0x2f && desc.idVendor == 0x258a)
@ -26,19 +27,38 @@ Conf::Conf(QObject *parent) : QObject(parent)
break; break;
} }
} }
//read initial config from device
readConfigFromDevice(m_conf1);
readConfigFromDevice(m_conf2);
libusb_free_device_list(list, 1); libusb_free_device_list(list, 1);
} }
QList<QObject *> Conf::deviceList()
ssize_t Conf::lightMode(){
return m_conf1->light_mode;
}
void Conf::setLightMode(ssize_t mode){
m_conf1->light_mode = mode;
Q_EMIT lightModeChanged();
}
ssize_t Conf::deviceConfig()
{ {
conf_1 *conf = (conf_1 *)malloc(sizeof(conf_1)); conf_1 *conf = (conf_1 *)malloc(sizeof(conf_1));
conf_2 *conf2 = (conf_2 *)malloc(sizeof(conf_2)); conf_2 *conf2 = (conf_2 *)malloc(sizeof(conf_2));
writeConfigToDevice(m_conf1);
// readConfigFromDevice(conf); // readConfigFromDevice(conf);
readConfigFromFile("conf1.bin", conf); readConfigFromFile("conf1.bin", conf);
readConfigFromDevice(conf2); readConfigFromDevice(conf2);
// edit data // edit data
// conf->light_mode = 0x2; conf->light_mode = 0x1;
conf->req_type = 0x92; conf->req_type = 0x92;
conf->st_brightness_colnr = {0x16}; conf->st_brightness_colnr = {0x16};
conf->col_steady[18] = 0x00; conf->col_steady[18] = 0x00;
@ -54,20 +74,12 @@ QList<QObject *> Conf::deviceList()
writeConfigToFile(conf, "conf1.bin"); writeConfigToFile(conf, "conf1.bin");
writeConfigToFile(conf2, "conf2.bin"); writeConfigToFile(conf2, "conf2.bin");
QQmlEngine engine; return 0;
QList<QObject *> asd;
QQmlComponent component(&engine,
QUrl::fromLocalFile(QString::fromStdString("/home/denis/repos/a811/src/action.qml")));
QObject *object = component.create();
asd.append(object);
return asd;
} }
void Conf::setDeviceList(QList<QObject *> deviceList) void Conf::setDeviceConfig(ssize_t stat)
{ {
Q_EMIT deviceListChanged(); Q_EMIT deviceConfigChanged();
} }
ssize_t Conf::writeConfigToDevice(conf_2 *conf) ssize_t Conf::writeConfigToDevice(conf_2 *conf)

View file

@ -19,13 +19,19 @@
class Conf : public QObject class Conf : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QList<QObject *> deviceList READ deviceList WRITE setDeviceList NOTIFY deviceListChanged) Q_PROPERTY(ssize_t deviceConfig READ deviceConfig WRITE setDeviceConfig NOTIFY deviceConfigChanged)
Q_PROPERTY(ssize_t lightMode READ lightMode WRITE setLightMode NOTIFY lightModeChanged)
public: public:
explicit Conf(QObject *parent = nullptr); explicit Conf(QObject *parent = nullptr);
QList<QObject *> deviceList(); ssize_t deviceConfig();
Q_INVOKABLE void setDeviceList(QList<QObject *> deviceList); Q_INVOKABLE void setDeviceConfig(ssize_t stat);
Q_SIGNAL void deviceListChanged(); Q_SIGNAL void deviceConfigChanged();
ssize_t lightMode();
Q_INVOKABLE void setLightMode(ssize_t mode);
Q_SIGNAL void lightModeChanged();
ssize_t writeConfigToFile(conf_1 *conf, const char *filePath); ssize_t writeConfigToFile(conf_1 *conf, const char *filePath);
ssize_t writeConfigToFile(conf_2 *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_1 *conf);
@ -38,7 +44,10 @@ public:
Q_SIGNALS: Q_SIGNALS:
private: private:
QList<QObject *> m_deviceList; ssize_t m_stat;
ssize_t m_lightMode;
conf_1* m_conf1;
conf_2* m_conf2;
libusb_device* m_device = NULL; libusb_device* m_device = NULL;
libusb_context* m_ctx = NULL; libusb_context* m_ctx = NULL;
}; };

View file

@ -18,7 +18,7 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
KIconTheme::initTheme(); // this is not available in nixpkgs version of KIconTheme::initTheme(); // this is not available in nixpkgs version of
// KiconTheme // KiconTheme // how did i fix this??????
QApplication app(argc, argv); QApplication app(argc, argv);
KLocalizedString::setApplicationDomain("tutorial"); KLocalizedString::setApplicationDomain("tutorial");
QApplication::setOrganizationName(QStringLiteral("KDE")); QApplication::setOrganizationName(QStringLiteral("KDE"));