kopia lustrzana https://gitlab.com/eliggett/wfview
Add sensitivity control to USB controllers.
rodzic
b619be3e2a
commit
0e28f288ff
|
@ -187,5 +187,16 @@ void controllerSetup::newDevice(unsigned char devType, QVector<BUTTON>* but, QVe
|
||||||
ui->graphicsView->resize(ui->graphicsView->sizeHint());
|
ui->graphicsView->resize(ui->graphicsView->sizeHint());
|
||||||
//this->resize(this->sizeHint());
|
//this->resize(this->sizeHint());
|
||||||
this->adjustSize();
|
this->adjustSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void controllerSetup::receiveSensitivity(int val)
|
||||||
|
{
|
||||||
|
ui->sensitivitySlider->blockSignals(true);
|
||||||
|
ui->sensitivitySlider->setValue(val);
|
||||||
|
ui->sensitivitySlider->blockSignals(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void controllerSetup::on_sensitivitySlider_valueChanged(int val)
|
||||||
|
{
|
||||||
|
emit sendSensitivity(val);
|
||||||
}
|
}
|
|
@ -35,13 +35,15 @@ public:
|
||||||
~controllerSetup();
|
~controllerSetup();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
void sendSensitivity(int val);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void newDevice(unsigned char devType, QVector<BUTTON>* but, QVector<COMMAND>* cmd);
|
void newDevice(unsigned char devType, QVector<BUTTON>* but, QVector<COMMAND>* cmd);
|
||||||
void mousePressed(QPoint p);
|
void mousePressed(QPoint p);
|
||||||
void onEventIndexChanged(int index);
|
void onEventIndexChanged(int index);
|
||||||
void offEventIndexChanged(int index);
|
void offEventIndexChanged(int index);
|
||||||
|
void receiveSensitivity(int val);
|
||||||
|
void on_sensitivitySlider_valueChanged(int val);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
|
@ -14,31 +14,7 @@
|
||||||
<string>Controller setup</string>
|
<string>Controller setup</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="4" column="0">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QGraphicsView" name="graphicsView"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string><html><head/><body><p align="center"><span style=" font-weight:700;">Button configuration: </span>Right-click on each button to configure it.</p><p align="center">Top selection is command to send when button is pressed and bottom is (optional) command to send when button is released.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<layout class="QHBoxLayout">
|
<layout class="QHBoxLayout">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
|
@ -84,6 +60,57 @@
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Sensitivity</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSlider" name="sensitivitySlider">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>21</number>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="invertedAppearance">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string><html><head/><body><p align="center"><span style=" font-weight:700;">Button configuration: </span>Right-click on each button to configure it.</p><p align="center">Top selection is command to send when button is pressed and bottom is (optional) command to send when button is released.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QGraphicsView" name="graphicsView"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
1
prefs.h
1
prefs.h
|
@ -46,6 +46,7 @@ struct preferences {
|
||||||
bool niceTS;
|
bool niceTS;
|
||||||
bool automaticSidebandSwitching = true;
|
bool automaticSidebandSwitching = true;
|
||||||
bool enableUSBControllers;
|
bool enableUSBControllers;
|
||||||
|
int usbSensitivity;
|
||||||
|
|
||||||
// LAN:
|
// LAN:
|
||||||
bool enableLAN;
|
bool enableLAN;
|
||||||
|
|
|
@ -440,6 +440,7 @@ void servermain::setDefPrefs()
|
||||||
udpDefPrefs.username = QString("");
|
udpDefPrefs.username = QString("");
|
||||||
udpDefPrefs.password = QString("");
|
udpDefPrefs.password = QString("");
|
||||||
udpDefPrefs.clientName = QHostInfo::localHostName();
|
udpDefPrefs.clientName = QHostInfo::localHostName();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void servermain::loadSettings()
|
void servermain::loadSettings()
|
||||||
|
|
|
@ -38,8 +38,11 @@ usbController::~usbController()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void usbController::init()
|
void usbController::init(int sens)
|
||||||
{
|
{
|
||||||
|
sensitivity = sens;
|
||||||
|
emit sendSensitivity(sensitivity);
|
||||||
|
|
||||||
if (HID_API_VERSION == HID_API_MAKE_VERSION(hid_version()->major, hid_version()->minor, hid_version()->patch)) {
|
if (HID_API_VERSION == HID_API_MAKE_VERSION(hid_version()->major, hid_version()->minor, hid_version()->patch)) {
|
||||||
qInfo(logUsbControl) << QString("Compile-time version matches runtime version of hidapi: %0.%1.%2")
|
qInfo(logUsbControl) << QString("Compile-time version matches runtime version of hidapi: %0.%1.%2")
|
||||||
.arg(hid_version()->major)
|
.arg(hid_version()->major)
|
||||||
|
@ -503,7 +506,7 @@ void usbController::runTimer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (jogCounter != 0) {
|
if (jogCounter != 0) {
|
||||||
emit sendJog(jogCounter);
|
emit sendJog(jogCounter/sensitivity);
|
||||||
qDebug(logUsbControl()) << "Change Frequency by" << jogCounter << "hz";
|
qDebug(logUsbControl()) << "Change Frequency by" << jogCounter << "hz";
|
||||||
jogCounter = 0;
|
jogCounter = 0;
|
||||||
}
|
}
|
||||||
|
@ -591,4 +594,10 @@ void usbController::buttonState(QString name, double val)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void usbController::receiveSensitivity(int val)
|
||||||
|
{
|
||||||
|
sensitivity = val;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -103,13 +103,14 @@ public:
|
||||||
~usbController();
|
~usbController();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void init();
|
void init(int sens);
|
||||||
void run();
|
void run();
|
||||||
void runTimer();
|
void runTimer();
|
||||||
void ledControl(bool on, unsigned char num);
|
void ledControl(bool on, unsigned char num);
|
||||||
void receiveCommands(QVector<COMMAND>*);
|
void receiveCommands(QVector<COMMAND>*);
|
||||||
void receiveButtons(QVector<BUTTON>*);
|
void receiveButtons(QVector<BUTTON>*);
|
||||||
void getVersion();
|
void getVersion();
|
||||||
|
void receiveSensitivity(int val);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void jogPlus();
|
void jogPlus();
|
||||||
|
@ -119,6 +120,7 @@ signals:
|
||||||
void setBand(int band);
|
void setBand(int band);
|
||||||
void button(const COMMAND* cmd);
|
void button(const COMMAND* cmd);
|
||||||
void newDevice(unsigned char devType, QVector<BUTTON>* but,QVector<COMMAND>* cmd);
|
void newDevice(unsigned char devType, QVector<BUTTON>* but,QVector<COMMAND>* cmd);
|
||||||
|
void sendSensitivity(int val);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
hid_device* handle=NULL;
|
hid_device* handle=NULL;
|
||||||
|
@ -138,6 +140,7 @@ private:
|
||||||
QString manufacturer="";
|
QString manufacturer="";
|
||||||
QString serial="<none>";
|
QString serial="<none>";
|
||||||
QString path = "";
|
QString path = "";
|
||||||
|
int sensitivity = 1;
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
|
||||||
QGamepad* gamepad=Q_NULLPTR;
|
QGamepad* gamepad=Q_NULLPTR;
|
||||||
#endif
|
#endif
|
||||||
|
|
14
wfmain.cpp
14
wfmain.cpp
|
@ -1675,8 +1675,10 @@ void wfmain::setupUsbControllerDevice()
|
||||||
|
|
||||||
connect(this, SIGNAL(sendUsbControllerCommands(QVector<COMMAND>*)), usbControllerDev, SLOT(receiveCommands(QVector<COMMAND>*)));
|
connect(this, SIGNAL(sendUsbControllerCommands(QVector<COMMAND>*)), usbControllerDev, SLOT(receiveCommands(QVector<COMMAND>*)));
|
||||||
connect(this, SIGNAL(sendUsbControllerButtons(QVector<BUTTON>*)), usbControllerDev, SLOT(receiveButtons(QVector<BUTTON>*)));
|
connect(this, SIGNAL(sendUsbControllerButtons(QVector<BUTTON>*)), usbControllerDev, SLOT(receiveButtons(QVector<BUTTON>*)));
|
||||||
connect(this, SIGNAL(initUsbController()), usbControllerDev, SLOT(init()));
|
connect(shut, SIGNAL(sendSensitivity(int)), usbControllerDev, SLOT(receiveSensitivity(int)));
|
||||||
emit initUsbController();
|
connect(shut, SIGNAL(sendSensitivity(int)), this, SLOT(receiveUsbSensitivity(int)));
|
||||||
|
connect(usbControllerDev, SIGNAL(sendSensitivity(int)), shut, SLOT(receiveSensitivity(int)));
|
||||||
|
connect(this, SIGNAL(initUsbController(int)), usbControllerDev, SLOT(init(int)));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1882,6 +1884,7 @@ void wfmain::setDefPrefs()
|
||||||
defPrefs.waterfallFormat = 0;
|
defPrefs.waterfallFormat = 0;
|
||||||
defPrefs.audioSystem = qtAudio;
|
defPrefs.audioSystem = qtAudio;
|
||||||
defPrefs.enableUSBControllers = false;
|
defPrefs.enableUSBControllers = false;
|
||||||
|
defPrefs.usbSensitivity = 1;
|
||||||
|
|
||||||
udpDefPrefs.ipAddress = QString("");
|
udpDefPrefs.ipAddress = QString("");
|
||||||
udpDefPrefs.controlLANPort = 50001;
|
udpDefPrefs.controlLANPort = 50001;
|
||||||
|
@ -2427,6 +2430,7 @@ void wfmain::loadSettings()
|
||||||
settings->beginGroup("USB");
|
settings->beginGroup("USB");
|
||||||
/* Load USB buttons*/
|
/* Load USB buttons*/
|
||||||
prefs.enableUSBControllers = settings->value("EnableUSBControllers", defPrefs.enableUSBControllers).toBool();
|
prefs.enableUSBControllers = settings->value("EnableUSBControllers", defPrefs.enableUSBControllers).toBool();
|
||||||
|
prefs.usbSensitivity = settings->value("USBSensitivity", defPrefs.usbSensitivity).toInt();
|
||||||
ui->enableUsbChk->blockSignals(true);
|
ui->enableUsbChk->blockSignals(true);
|
||||||
ui->enableUsbChk->setChecked(prefs.enableUSBControllers);
|
ui->enableUsbChk->setChecked(prefs.enableUSBControllers);
|
||||||
ui->enableUsbChk->blockSignals(false);
|
ui->enableUsbChk->blockSignals(false);
|
||||||
|
@ -2438,6 +2442,7 @@ void wfmain::loadSettings()
|
||||||
if (prefs.enableUSBControllers) {
|
if (prefs.enableUSBControllers) {
|
||||||
// Setup USB Controller
|
// Setup USB Controller
|
||||||
setupUsbControllerDevice();
|
setupUsbControllerDevice();
|
||||||
|
emit initUsbController(prefs.usbSensitivity);
|
||||||
emit sendUsbControllerCommands(&usbCommands);
|
emit sendUsbControllerCommands(&usbCommands);
|
||||||
emit sendUsbControllerButtons(&usbButtons);
|
emit sendUsbControllerButtons(&usbButtons);
|
||||||
}
|
}
|
||||||
|
@ -2904,6 +2909,7 @@ void wfmain::saveSettings()
|
||||||
settings->beginGroup("USB");
|
settings->beginGroup("USB");
|
||||||
// Store USB Controller
|
// Store USB Controller
|
||||||
settings->setValue("EnableUSBControllers", prefs.enableUSBControllers);
|
settings->setValue("EnableUSBControllers", prefs.enableUSBControllers);
|
||||||
|
settings->setValue("USBSensitivity", prefs.usbSensitivity);
|
||||||
|
|
||||||
settings->beginWriteArray("Buttons");
|
settings->beginWriteArray("Buttons");
|
||||||
for (int nb = 0; nb < usbButtons.count(); nb++)
|
for (int nb = 0; nb < usbButtons.count(); nb++)
|
||||||
|
@ -9050,6 +9056,7 @@ void wfmain::on_enableUsbChk_clicked(bool checked)
|
||||||
if (checked) {
|
if (checked) {
|
||||||
// Setup USB Controller
|
// Setup USB Controller
|
||||||
setupUsbControllerDevice();
|
setupUsbControllerDevice();
|
||||||
|
emit initUsbController(prefs.usbSensitivity);
|
||||||
emit sendUsbControllerCommands(&usbCommands);
|
emit sendUsbControllerCommands(&usbCommands);
|
||||||
emit sendUsbControllerButtons(&usbButtons);
|
emit sendUsbControllerButtons(&usbButtons);
|
||||||
}
|
}
|
||||||
|
@ -9299,3 +9306,6 @@ void wfmain::resetUsbCommands()
|
||||||
emit sendUsbControllerCommands(&usbCommands);
|
emit sendUsbControllerCommands(&usbCommands);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wfmain::receiveUsbSensitivity(int val) {
|
||||||
|
prefs.usbSensitivity = val;
|
||||||
|
}
|
3
wfmain.h
3
wfmain.h
|
@ -223,7 +223,7 @@ signals:
|
||||||
void openShuttle();
|
void openShuttle();
|
||||||
void requestRigState();
|
void requestRigState();
|
||||||
void stateUpdated();
|
void stateUpdated();
|
||||||
void initUsbController();
|
void initUsbController(int sens);
|
||||||
void sendUsbControllerCommands(QVector<COMMAND>* cmds);
|
void sendUsbControllerCommands(QVector<COMMAND>* cmds);
|
||||||
void sendUsbControllerButtons(QVector<BUTTON>* buts);
|
void sendUsbControllerButtons(QVector<BUTTON>* buts);
|
||||||
void setClusterUdpPort(int port);
|
void setClusterUdpPort(int port);
|
||||||
|
@ -350,6 +350,7 @@ private slots:
|
||||||
void showStatusBarText(QString text);
|
void showStatusBarText(QString text);
|
||||||
void receiveBaudRate(quint32 baudrate);
|
void receiveBaudRate(quint32 baudrate);
|
||||||
void radioSelection(QList<radio_cap_packet> radios);
|
void radioSelection(QList<radio_cap_packet> radios);
|
||||||
|
void receiveUsbSensitivity(int val);
|
||||||
|
|
||||||
// Added for RC28/Shuttle support
|
// Added for RC28/Shuttle support
|
||||||
void pttToggle(bool);
|
void pttToggle(bool);
|
||||||
|
|
Ładowanie…
Reference in New Issue