]> git.defcon.no Git - joysticktest/blob - joystickview.cpp
Working test with Qt GUI. Threaded, with no thread safety.
[joysticktest] / joystickview.cpp
1 #include "joystickview.h"
2 #include "ui_joystickview.h"
3 #include "joystickdata.h"
4 #include "joystickthread.h"
5 #include <QCheckBox>
6 #include <QSlider>
7
8 QSlider *sliders[6];
9 QCheckBox *btns[10];
10
11 JoystickView::JoystickView(QWidget *parent)
12 : QMainWindow(parent), ui(new Ui::JoystickView)
13 {
14 this->jd = new JoystickData();
15 this->jthread = new JoystickThread(jd, "/dev/input/js0");
16
17 ui->setupUi(this);
18 ui->textbox->setPlainText("Starting");
19
20 QObject::connect(this, SIGNAL(forceupdate()), this, SLOT(updateValues()));
21 QObject::connect(jd, SIGNAL(valuechanged()), this, SLOT(updateValues()));
22 jthread->start();
23
24 sliders[0] = ui->axis1;
25 sliders[1] = ui->axis2;
26 sliders[2] = ui->axis3;
27 sliders[3] = ui->axis4;
28 sliders[4] = ui->axis5;
29 sliders[5] = ui->axis6;
30
31 btns[0] = ui->button1;
32 btns[1] = ui->button2;
33 btns[2] = ui->button3;
34 btns[3] = ui->button4;
35 btns[4] = ui->button5;
36 btns[5] = ui->button6;
37 btns[6] = ui->button7;
38 btns[7] = ui->button8;
39 btns[8] = ui->button9;
40 btns[9] = ui->button10;
41 this->update();
42 }
43
44 JoystickView::~JoystickView()
45 {
46 delete ui;
47 }
48
49 void JoystickView::updateValues(void)
50 {
51 QString output("");
52
53 output.append("Axis> ");
54 //ui->textbox->appendPlainText("Update\n");
55 for ( int i = 0; i < 6; i++ )
56 {
57 sliders[i]->setValue( jd->getAxis(i) );
58 output.append(QString::number(i) + ":" + QString::number(jd->getAxis(i)) + " " );
59 }
60 output.append("\nButtons>");
61 for ( int i = 0; i < 10; i++ )
62 {
63 btns[i]->setChecked( jd->getButton(i) );
64 output.append(QString::number(i) + ":" + QString::number(jd->getButton(i)) + " " );
65 }
66 ui->textbox->appendPlainText(output + "\n");
67 }
68
69 void JoystickView::on_pushButton_clicked()
70 {
71 jthread->stop();
72 QApplication::quit();
73 }