diff --git a/usbcontroller.h b/usbcontroller.h
index 80f0c68..e005b6c 100644
--- a/usbcontroller.h
+++ b/usbcontroller.h
@@ -37,17 +37,15 @@ using namespace std;
#define HIDDATALENGTH 64
#define MAX_STR 255
-enum commandType {normalCommand,bandswitch,modeswitch};
-
struct COMMAND {
COMMAND() {}
COMMAND(int index, QString text, int command, char suffix) :
- index(index), text(text), command(command), suffix(suffix), type(normalCommand){}
+ index(index), text(text), command(command), suffix(suffix) {}
COMMAND(int index, QString text, int command, bandType band) :
- index(index), text(text), command(command), band(band), type(bandswitch) {}
+ index(index), text(text), command(command), band(band) {}
COMMAND(int index, QString text, int command, mode_kind mode) :
- index(index), text(text), command(command), mode(mode), type(modeswitch) {}
+ index(index), text(text), command(command), mode(mode) {}
int index;
QString text;
@@ -55,7 +53,6 @@ struct COMMAND {
unsigned char suffix;
bandType band;
mode_kind mode;
- commandType type;
};
struct BUTTON {
diff --git a/wfmain.cpp b/wfmain.cpp
index 228e5e2..7f70213 100644
--- a/wfmain.cpp
+++ b/wfmain.cpp
@@ -1686,20 +1686,46 @@ void wfmain::doShuttle(bool up, unsigned char level)
void wfmain::buttonControl(const COMMAND* cmd)
{
-
- if (cmd->type==normalCommand) {
- //qDebug() << "Other command";
- issueCmdUniquePriority((cmds)cmd->command, cmd->suffix);
- }
- else if (cmd->type == bandswitch)
- {
- //qDebug() << "Bandswitch";
- //issueCmd((cmds)cmd->command, cmd->band); // Needs fixing!
- }
- else if (cmd->type == modeswitch)
- {
- //qDebug() << "Bandswitch";
+ switch (cmd->command) {
+ case cmdGetBandStackReg:
+ issueCmd((cmds)cmd->command, cmd->band.band);
+ break;
+ case cmdSetBandUp:
+ break;
+ case cmdSetBandDown:
+ break;
+ case cmdSetMode:
changeMode(cmd->mode);
+ break;
+ case cmdSetModeUp:
+ for (int i = 0; i < rigCaps.modes.size(); i++) {
+ if (rigCaps.modes[i].mk == currentModeInfo.mk)
+ {
+ if (i + 1 < rigCaps.modes.size()) {
+ changeMode(rigCaps.modes[i + 1].mk);
+ }
+ else {
+ changeMode(rigCaps.modes[0].mk);
+ }
+ }
+ }
+ break;
+ case cmdSetModeDown:
+ for (int i = 0; i < rigCaps.modes.size(); i++) {
+ if (rigCaps.modes[i].mk == currentModeInfo.mk)
+ {
+ if (i>0) {
+ changeMode(rigCaps.modes[i - 1].mk);
+ }
+ else {
+ changeMode(rigCaps.modes[rigCaps.modes.size()-1].mk);
+ }
+ }
+ }
+ break;
+ default:
+ issueCmdUniquePriority((cmds)cmd->command, cmd->suffix);
+ break;
}
}
@@ -2314,10 +2340,10 @@ void wfmain::loadSettings()
usbCommands.append(COMMAND(4, "Tune", cmdNone, 0x0));
usbCommands.append(COMMAND(5, "Step+", cmdNone, 0x0));
usbCommands.append(COMMAND(6, "Step-", cmdNone, 0x0));
- usbCommands.append(COMMAND(7, "Mode+", cmdNone, 0x0));
- usbCommands.append(COMMAND(8, "Mode-", cmdNone, 0x0));
- usbCommands.append(COMMAND(9, "Band+", cmdNone, 0x0));
- usbCommands.append(COMMAND(10, "Band-", cmdNone, 0x0));
+ usbCommands.append(COMMAND(7, "Mode+", cmdSetModeUp, 0x0));
+ usbCommands.append(COMMAND(8, "Mode-", cmdSetModeDown, 0x0));
+ usbCommands.append(COMMAND(9, "Band+", cmdSetBandUp, 0x0));
+ usbCommands.append(COMMAND(10, "Band-", cmdSetBandDown, 0x0));
usbCommands.append(COMMAND(11, "NR", cmdNone, 0x0));
usbCommands.append(COMMAND(12, "NB", cmdNone, 0x0));
usbCommands.append(COMMAND(13, "AGC", cmdNone, 0x0));
diff --git a/wfview.vcxproj.user b/wfview.vcxproj.user
index e6fe3c4..55b6057 100644
--- a/wfview.vcxproj.user
+++ b/wfview.vcxproj.user
@@ -45,10 +45,10 @@
2022-08-21T18:58:23.4329764Z
- 2023-01-12T19:02:11.7122024Z
+ 2023-01-29T11:49:00.1257696Z
- 2023-01-12T19:02:11.0783744Z
+ 2023-01-29T11:48:59.4191765Z
2022-08-22T10:47:49.1255783Z
@@ -60,9 +60,9 @@
2022-08-20T19:06:43.4553894Z
- 2023-01-12T19:02:13.6556090Z
+ 2023-01-29T11:49:01.5629425Z
- 2023-01-12T19:02:12.4064183Z
+ 2023-01-29T11:49:00.7644018Z
\ No newline at end of file
diff --git a/wfviewtypes.h b/wfviewtypes.h
index ea4f282..fd019e4 100644
--- a/wfviewtypes.h
+++ b/wfviewtypes.h
@@ -157,7 +157,8 @@ enum cmds {
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS,
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
- cmdSetTime, cmdSetDate, cmdSetUTCOffset
+ cmdSetTime, cmdSetDate, cmdSetUTCOffset,
+ cmdSetBandUp, cmdSetBandDown, cmdSetModeUp, cmdSetModeDown // Only used for USB Controller at the moment.
};
struct commandtype {