diff --git a/cwsender.cpp b/cwsender.cpp
index 3c66e83..eb08fcf 100644
--- a/cwsender.cpp
+++ b/cwsender.cpp
@@ -15,6 +15,7 @@ cwSender::cwSender(QWidget *parent) :
ui->textToSendEdit->setFocus();
ui->statusbar->setToolTipDuration(3000);
this->setToolTipDuration(3000);
+ connect(ui->textToSendEdit->lineEdit(), &QLineEdit::textEdited, this, &cwSender::textChanged);
}
cwSender::~cwSender()
@@ -26,13 +27,14 @@ cwSender::~cwSender()
void cwSender::showEvent(QShowEvent *event)
{
emit getCWSettings();
+ QMainWindow::showEvent(event);
(void)event;
}
void cwSender::handleKeySpeed(unsigned char wpm)
{
//qDebug(logCW()) << "Told that current WPM is" << wpm;
- if((wpm >= 6) && (wpm <=48))
+ if ((wpm >= 6) && (wpm <= 48))
{
//qDebug(logCW()) << "Setting WPM UI control to" << wpm;
ui->wpmSpin->blockSignals(true);
@@ -41,6 +43,16 @@ void cwSender::handleKeySpeed(unsigned char wpm)
}
}
+void cwSender::handleDashRatio(unsigned char ratio)
+{
+ if ((ratio >= 28) && (ratio <= 45))
+ {
+ ui->dashSpin->blockSignals(true);
+ ui->dashSpin->setValue(double(ratio/10));
+ ui->dashSpin->blockSignals(false);
+ }
+}
+
void cwSender::handlePitch(unsigned char pitch) {
quint16 cwPitch = round((((600.0 / 255.0) * pitch) + 300) / 5.0) * 5.0;
ui->pitchSpin->blockSignals(true);
@@ -68,6 +80,22 @@ void cwSender::handleCurrentModeUpdate(mode_kind mode)
}
}
+void cwSender::textChanged(QString text)
+{
+ if (ui->sendImmediateChk->isChecked())
+ {
+ if (text.back() == ' ')
+ {
+ int toSend = text.mid(0, 30).size();
+ if (toSend > 0) {
+ emit sendCW(text.mid(0, 30));
+ ui->transcriptText->appendPlainText(text.mid(0, 30));
+ ui->textToSendEdit->clearEditText();
+ }
+ }
+ }
+}
+
void cwSender::on_sendBtn_clicked()
{
if( (ui->textToSendEdit->currentText().length() > 0) &&
@@ -114,12 +142,16 @@ void cwSender::on_wpmSpin_valueChanged(int wpm)
emit setKeySpeed((unsigned char)wpm);
}
+void cwSender::on_dashSpin_valueChanged(double ratio)
+{
+ emit setDashRatio((unsigned char)double(ratio * 10));
+}
+
void cwSender::on_pitchSpin_valueChanged(int arg1)
{
// quint16 cwPitch = round((((600.0 / 255.0) * pitch) + 300) / 5.0) * 5.0;
unsigned char pitch = 0;
pitch = ceil((arg1 - 300) * (255.0 / 600.0));
- qDebug() << "Setting pitch" << pitch;
emit setPitch(pitch);
}
@@ -189,7 +221,7 @@ void cwSender::runMacroButton(int buttonNumber)
if(macroText[buttonNumber].isEmpty())
return;
QString outText;
- if(macroText[buttonNumber].contains("\%1"))
+ if(macroText[buttonNumber].contains("%1"))
{
outText = macroText[buttonNumber].arg(sequenceNumber, 3, 10, QChar('0'));
sequenceNumber++;
@@ -199,9 +231,20 @@ void cwSender::runMacroButton(int buttonNumber)
} else {
outText = macroText[buttonNumber];
}
- emit sendCW(outText);
+
+ if (ui->cutNumbersChk->isChecked())
+ {
+ outText.replace("0", "T");
+ outText.replace("9", "N");
+ }
+
+ for (int i = 0; i < outText.size(); i = i + 30) {
+ emit sendCW(outText.mid(i,30));
+ }
+
ui->transcriptText->appendPlainText(outText);
ui->textToSendEdit->setFocus();
+
if( (currentMode==modeCW) || (currentMode==modeCW_R) )
{
@@ -215,8 +258,8 @@ void cwSender::editMacroButton(int buttonNumber, QPushButton* btn)
{
bool ok;
QString promptFirst = QString("Please enter the text for macro %1,\n"
- "up to 30 characters.\n").arg(buttonNumber);
- QString promptSecond = QString("You may use \"\%1\" to insert a sequence number.");
+ "up to 60 characters.\n").arg(buttonNumber);
+ QString promptSecond = QString("You may use \"%1\" to insert a sequence number.");
QString prompt = promptFirst+promptSecond;
QString newMacroText = QInputDialog::getText(this, "Macro Edit",
@@ -225,12 +268,12 @@ void cwSender::editMacroButton(int buttonNumber, QPushButton* btn)
if(!ok)
return;
- if(newMacroText.length() > 30)
+ if (newMacroText.length() > 60)
{
QMessageBox msgBox;
msgBox.setText(QString("The text entered was too long \n"
- "(max length is 30 characters).\n"
- "Your input was %1 characters.").arg(newMacroText.length()));
+ "(max length is 60 characters).\n"
+ "Your input was %1 characters.").arg(newMacroText.length()));
msgBox.exec();
this->raise();
return;
diff --git a/cwsender.h b/cwsender.h
index e07ccf7..b767135 100644
--- a/cwsender.h
+++ b/cwsender.h
@@ -29,12 +29,14 @@ signals:
void sendCW(QString cwMessage);
void stopCW();
void setKeySpeed(unsigned char wpm);
+ void setDashRatio(unsigned char ratio);
void setPitch(unsigned char pitch);
void setBreakInMode(unsigned char b);
void getCWSettings();
public slots:
void handleKeySpeed(unsigned char wpm);
+ void handleDashRatio(unsigned char ratio);
void handlePitch(unsigned char pitch);
void handleBreakInMode(unsigned char b);
void handleCurrentModeUpdate(mode_kind mode);
@@ -47,10 +49,14 @@ private slots:
//void on_textToSendEdit_returnPressed();
+ void textChanged(QString text);
+
void on_breakinCombo_activated(int index);
void on_wpmSpin_valueChanged(int arg1);
+ void on_dashSpin_valueChanged(double arg1);
+
void on_pitchSpin_valueChanged(int arg1);
void on_macro1btn_clicked();
@@ -79,6 +85,7 @@ private:
Ui::cwSender *ui;
QString macroText[11];
int sequenceNumber = 1;
+ int lastSentPos = 0;
mode_kind currentMode;
void processMacroButton(int buttonNumber, QPushButton *btn);
void runMacroButton(int buttonNumber);
diff --git a/cwsender.ui b/cwsender.ui
index 3a9e358..20b8cc2 100644
--- a/cwsender.ui
+++ b/cwsender.ui
@@ -6,7 +6,7 @@
0
0
- 886
+ 822
451
@@ -177,115 +177,6 @@
- -
-
-
- QLayout::SetMinimumSize
-
-
-
-
-
-
- 0
- 0
-
-
-
- <html><head/><body><p>Set the desired break-in mode:</p><p>1. None: You must manually key and unkey the radio.</p><p>2. Semi: Transmit is automatic and switches to receive at the end of the text.</p><p>3. Full: Same as semi, but with breaks between characters when possible.</p></body></html>
-
-
-
-
- Off
-
-
- -
-
- Semi
-
-
- -
-
- Full
-
-
-
-
- -
-
-
- WPM:
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Set the Words Per Minute
-
-
- 6
-
-
- 48
-
-
- 20
-
-
-
- -
-
-
- Break In
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- 300
-
-
- 900
-
-
- 5
-
-
- 600
-
-
-
- -
-
-
- PITCH (Hz):
-
-
- Qt::AlignCenter
-
-
-
-
-
-
@@ -370,6 +261,152 @@
+ -
+
+
+ QLayout::SetMinimumSize
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ <html><head/><body><p>Set the desired break-in mode:</p><p>1. None: You must manually key and unkey the radio.</p><p>2. Semi: Transmit is automatic and switches to receive at the end of the text.</p><p>3. Full: Same as semi, but with breaks between characters when possible.</p></body></html>
+
+
-
+
+ Off
+
+
+ -
+
+ Semi
+
+
+ -
+
+ Full
+
+
+
+
+ -
+
+
+ PITCH (Hz):
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ WPM:
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 300
+
+
+ 900
+
+
+ 5
+
+
+ 600
+
+
+
+ -
+
+
+ Break In
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 2.800000000000000
+
+
+ 4.500000000000000
+
+
+ 0.100000000000000
+
+
+ 3.000000000000000
+
+
+
+ -
+
+
+ Dash Ratio
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Set the Words Per Minute
+
+
+ 6
+
+
+ 48
+
+
+ 20
+
+
+
+ -
+
+
+ Cut Num
+
+
+
+ -
+
+
+ Send Immed
+
+
+
+
+
diff --git a/repeatersetup.cpp b/repeatersetup.cpp
index 6af089f..f19d804 100644
--- a/repeatersetup.cpp
+++ b/repeatersetup.cpp
@@ -445,7 +445,7 @@ void repeaterSetup::showEvent(QShowEvent *event)
emit getSplitModeEnabled();
if(rig.hasRepeaterModes)
emit getRptDuplexOffset();
-
+ QMainWindow::showEvent(event);
(void)event;
}
diff --git a/rigcommander.cpp b/rigcommander.cpp
index b54acfe..3737ea4 100644
--- a/rigcommander.cpp
+++ b/rigcommander.cpp
@@ -1014,6 +1014,72 @@ void rigCommander::setCwPitch(unsigned char pitch)
prepDataAndSend(payload);
}
+void rigCommander::getDashRatio()
+{
+ QByteArray payload;
+ switch (rigCaps.model)
+ {
+ case model705:
+ payload.setRawData("\x1A\x05\x02\x52", 4);
+ break;
+ case model9700:
+ payload.setRawData("\x1A\x05\x02\x24", 4);
+ break;
+ case model7100:
+ payload.setRawData("\x1A\x05\x01\x35", 4);
+ break;
+ case model7300:
+ payload.setRawData("\x1A\x05\x01\x61", 4);
+ break;
+ case model7610:
+ payload.setRawData("\x1A\x05\x02\x28", 4);
+ break;
+ case model7700:
+ payload.setRawData("\x1A\x05\x01\x34", 4);
+ break;
+ case model7850:
+ payload.setRawData("\x1A\x05\x02\x51", 4);
+ break;
+ default:
+ break;
+ }
+ prepDataAndSend(payload);
+}
+
+void rigCommander::setDashRatio(unsigned char ratio)
+{
+ QByteArray payload;
+ switch (rigCaps.model)
+ {
+ case model705:
+ payload.setRawData("\x1A\x05\x02\x52", 4);
+ break;
+ case model9700:
+ payload.setRawData("\x1A\x05\x02\x24", 4);
+ break;
+ case model7100:
+ payload.setRawData("\x1A\x05\x01\x35", 4);
+ break;
+ case model7300:
+ payload.setRawData("\x1A\x05\x01\x61", 4);
+ break;
+ case model7610:
+ payload.setRawData("\x1A\x05\x02\x28", 4);
+ break;
+ case model7700:
+ payload.setRawData("\x1A\x05\x01\x34", 4);
+ break;
+ case model7850:
+ payload.setRawData("\x1A\x05\x02\x51", 4);
+ break;
+ default:
+ break;
+ }
+
+ payload.append(bcdEncodeInt(ratio).at(1)); // Discard first byte
+ prepDataAndSend(payload);
+}
+
void rigCommander::getPskTone()
{
QByteArray payload;
@@ -1796,7 +1862,7 @@ void rigCommander::parseLevels()
case '\x0C':
state.set(KEYSPD, level, false);
//qInfo(logRig()) << "Have received key speed in RC, raw level: " << level << ", WPM: " << (level/6.071)+6 << ", rounded: " << round((level/6.071)+6);
- emit haveKeySpeed(round((level/6.071)+6));
+ emit haveKeySpeed(round((level / 6.071) + 6));
break;
case '\x0D':
// Notch filder setting - ignore for now
@@ -3198,6 +3264,8 @@ void rigCommander::parseDetailedRegisters1A05()
case 90:
emit haveLANGain(level);
break;
+ case 228:
+ emit haveDashRatio(inputRaw);
default:
break;
}
diff --git a/rigcommander.h b/rigcommander.h
index 740fda3..bc40264 100644
--- a/rigcommander.h
+++ b/rigcommander.h
@@ -129,6 +129,8 @@ public slots:
void getPassband();
void getCwPitch();
void setCwPitch(unsigned char pitch);
+ void getDashRatio();
+ void setDashRatio(unsigned char ratio);
void getPskTone();
void setPskTone(unsigned char tone);
void getRttyMark();
@@ -363,6 +365,7 @@ signals:
// CW:
void haveKeySpeed(unsigned char wpm);
void haveCWBreakMode(unsigned char bmode);
+ void haveDashRatio(unsigned char ratio);
// Rig State
diff --git a/wfmain.cpp b/wfmain.cpp
index 41aed09..cf58a30 100644
--- a/wfmain.cpp
+++ b/wfmain.cpp
@@ -355,10 +355,13 @@ void wfmain::rigConnections()
connect(this, SIGNAL(setKeySpeed(unsigned char)), rig, SLOT(setKeySpeed(unsigned char)));
connect(this, SIGNAL(getKeySpeed()), rig, SLOT(getKeySpeed()));
connect(this, SIGNAL(setCwPitch(unsigned char)), rig, SLOT(setCwPitch(unsigned char)));
+ connect(this, SIGNAL(setDashRatio(unsigned char)), rig, SLOT(setDashRatio(unsigned char)));
connect(this, SIGNAL(setCWBreakMode(unsigned char)), rig, SLOT(setBreakIn(unsigned char)));
connect(this, SIGNAL(getCWBreakMode()), rig, SLOT(getBreakIn()));
connect(this->rig, &rigCommander::haveKeySpeed,
[=](const unsigned char& wpm) { cw->handleKeySpeed(wpm); });
+ connect(this->rig, &rigCommander::haveDashRatio,
+ [=](const unsigned char& ratio) { cw->handleDashRatio(ratio); });
connect(this->rig, &rigCommander::haveCwPitch,
[=](const unsigned char& speed) { cw->handlePitch(speed); });
connect(this->rig, &rigCommander::haveCWBreakMode,
@@ -469,6 +472,7 @@ void wfmain::rigConnections()
connect(this, SIGNAL(getPassband()), rig, SLOT(getPassband()));
connect(this, SIGNAL(setPassband(quint16)), rig, SLOT(setPassband(quint16)));
connect(this, SIGNAL(getCwPitch()), rig, SLOT(getCwPitch()));
+ connect(this, SIGNAL(getDashRatio()), rig, SLOT(getDashRatio()));
connect(this, SIGNAL(getPskTone()), rig, SLOT(getPskTone()));
connect(this, SIGNAL(getRttyMark()), rig, SLOT(getRttyMark()));
connect(this, SIGNAL(getTone()), rig, SLOT(getTone()));
@@ -1156,12 +1160,15 @@ void wfmain::setupMainUI()
[=](const unsigned char &bmode) { issueCmd(cmdSetBreakMode, bmode);});
connect(this->cw, &cwSender::setKeySpeed,
[=](const unsigned char& wpm) { issueCmd(cmdSetKeySpeed, wpm); });
+ connect(this->cw, &cwSender::setDashRatio,
+ [=](const unsigned char& ratio) { issueCmd(cmdSetDashRatio, ratio); });
connect(this->cw, &cwSender::setPitch,
[=](const unsigned char& pitch) { issueCmd(cmdSetCwPitch, pitch); });
connect(this->cw, &cwSender::getCWSettings,
- [=]() { issueDelayedCommand(cmdGetKeySpeed);
- issueDelayedCommand(cmdGetBreakMode);});
-
+ [=]() { issueDelayedCommand(cmdGetKeySpeed);
+ issueDelayedCommand(cmdGetBreakMode);
+ issueDelayedCommand(cmdGetCwPitch);
+ issueDelayedCommand(cmdGetDashRatio); });
}
void wfmain::prepareSettingsWindow()
@@ -3887,6 +3894,12 @@ void wfmain::doCmd(commandtype cmddata)
emit setCwPitch(pitch);
break;
}
+ case cmdSetDashRatio:
+ {
+ unsigned char ratio = (*std::static_pointer_cast(data));
+ emit setDashRatio(ratio);
+ break;
+ }
case cmdSetATU:
{
bool atuOn = (*std::static_pointer_cast(data));
@@ -4012,6 +4025,9 @@ void wfmain::doCmd(cmds cmd)
case cmdGetCwPitch:
emit getCwPitch();
break;
+ case cmdGetDashRatio:
+ emit getDashRatio();
+ break;
case cmdGetPskTone:
emit getPskTone();
break;
diff --git a/wfmain.h b/wfmain.h
index d305b55..e32a95c 100644
--- a/wfmain.h
+++ b/wfmain.h
@@ -141,6 +141,7 @@ signals:
void getMeters(meterKind meter);
void getPassband();
void getCwPitch();
+ void getDashRatio();
void getPskTone();
void getRttyMark();
@@ -190,6 +191,7 @@ signals:
void getKeySpeed();
void setKeySpeed(unsigned char wpm);
void setCwPitch(unsigned char pitch);
+ void setDashRatio(unsigned char ratio);
void setCWBreakMode(unsigned char breakMode);
void getCWBreakMode();
diff --git a/wfview.vcxproj b/wfview.vcxproj
index 658b730..df5a42e 100644
--- a/wfview.vcxproj
+++ b/wfview.vcxproj
@@ -111,7 +111,7 @@
$(SolutionDir)wfview-release\
- msvc2019_64_v62
+ msvc2016_64_v632
core;gui;network;widgets;multimedia;printsupport;serialport;xml
@@ -119,7 +119,7 @@
core;gui;network;widgets;multimedia;printsupport;serialport;xml
- msvc2019_64_v62
+ msvc2016_64_v632
core;gui;network;widgets;multimedia;printsupport;serialport;xml
@@ -131,7 +131,7 @@
- .;..\rtaudio;..\portaudio\include;..\qcustomplot;..\opus\include;..\eigen;..\r8brain-free-src;resampler;release;/include;%(AdditionalIncludeDirectories)
+ .;.\hidapi\hidapi;..\rtaudio;..\portaudio\include;..\qcustomplot;..\opus\include;..\eigen;..\r8brain-free-src;resampler;release;/include;%(AdditionalIncludeDirectories)
-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -utf-8 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)
release\
false
@@ -152,8 +152,8 @@
true
- ..\portaudio\msvc\X64\Release\portaudio_x64.lib;..\qcustomplot\x64\qcustomplot2.lib;..\opus\win32\VS2015\x64\Release\opus.lib;$(QTDIR)\lib\Qt6Multimedia.lib;$(QTDIR)\lib\Qt6PrintSupport.lib;$(QTDIR)\lib\Qt6Widgets.lib;$(QTDIR)\lib\Qt6Gui.lib;$(QTDIR)\lib\Qt6SerialPort.lib;$(QTDIR)\lib\Qt6Network.lib;$(QTDIR)\lib\Qt6Core.lib;$(QTDIR)\lib\Qt6EntryPoint.lib;shell32.lib;%(AdditionalDependencies)
- ..\opus\win32\VS2015\x64\Release;..\qcustomplot\x64;..\portaudio\msvc\X64\Release;%(AdditionalLibraryDirectories)
+ ..\hidapi\windows\x64\Release\hidapi.lib;..\portaudio\msvc\X64\Release\portaudio_x64.lib;..\qcustomplot\x64\qcustomplot2.lib;..\opus\win32\VS2015\x64\Release\opus.lib;$(QTDIR)\lib\Qt6Multimedia.lib;$(QTDIR)\lib\Qt6PrintSupport.lib;$(QTDIR)\lib\Qt6Widgets.lib;$(QTDIR)\lib\Qt6Gui.lib;$(QTDIR)\lib\Qt6SerialPort.lib;$(QTDIR)\lib\Qt6Network.lib;$(QTDIR)\lib\Qt6Core.lib;$(QTDIR)\lib\Qt6EntryPoint.lib;shell32.lib;%(AdditionalDependencies)
+ ..\hidapi\windows\x64\Release;..\opus\win32\VS2015\x64\Release;..\qcustomplot\x64;..\portaudio\msvc\X64\Release;%(AdditionalLibraryDirectories)
"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)
true
true
@@ -275,7 +275,7 @@ cmd /c copy /y ..\portaudio\msvc\Win32\Release\portaudio_x86.dll wfview-release\
- .;..\rtaudio;..\portaudio\include;..\qcustomplot;..\opus\include;..\eigen;..\r8brain-free-src;resampler;debug;/include;%(AdditionalIncludeDirectories)
+ .;.\hidapi\hidapi;..\rtaudio;..\portaudio\include;..\qcustomplot;..\opus\include;..\eigen;..\r8brain-free-src;resampler;debug;/include;%(AdditionalIncludeDirectories)
-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -utf-8 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 %(AdditionalOptions)
debug\
false
@@ -295,8 +295,8 @@ cmd /c copy /y ..\portaudio\msvc\Win32\Release\portaudio_x86.dll wfview-release\
stdc17
- ..\portaudio\msvc\X64\Debug\portaudio_x64.lib;..\qcustomplot\x64\qcustomplotd2.lib;..\opus\win32\VS2015\x64\Debug\opus.lib;$(QTDIR)\lib\Qt6Multimediad.lib;$(QTDIR)\lib\Qt6PrintSupportd.lib;$(QTDIR)\lib\Qt6Widgetsd.lib;$(QTDIR)\lib\Qt6Guid.lib;$(QTDIR)\lib\Qt6SerialPortd.lib;$(QTDIR)\lib\Qt6Networkd.lib;$(QTDIR)\lib\Qt6Cored.lib;$(QTDIR)\lib\Qt6EntryPointd.lib;shell32.lib;%(AdditionalDependencies)
- ..\opus\win32\VS2015\x64\Debug;..\qcustomplot\x64;..\portaudio\msvc\X64\Debug;%(AdditionalLibraryDirectories)
+ ..\hidapi\windows\x64\Debug\hidapi.lib;..\portaudio\msvc\X64\Debug\portaudio_x64.lib;..\qcustomplot\x64\qcustomplotd2.lib;..\opus\win32\VS2015\x64\Debug\opus.lib;$(QTDIR)\lib\Qt6Multimediad.lib;$(QTDIR)\lib\Qt6PrintSupportd.lib;$(QTDIR)\lib\Qt6Widgetsd.lib;$(QTDIR)\lib\Qt6Guid.lib;$(QTDIR)\lib\Qt6SerialPortd.lib;$(QTDIR)\lib\Qt6Networkd.lib;$(QTDIR)\lib\Qt6Cored.lib;$(QTDIR)\lib\Qt6EntryPointd.lib;shell32.lib;%(AdditionalDependencies)
+ ..\hidapi\windows\x64\Debug;..\opus\win32\VS2015\x64\Debug;..\qcustomplot\x64;..\portaudio\msvc\X64\Debug;%(AdditionalLibraryDirectories)
"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)
true
true
@@ -415,6 +415,7 @@ cmd /c copy /y ..\portaudio\msvc\Win32\Debug\portaudio_x86.dll wfview-debug
+
@@ -443,6 +444,7 @@ cmd /c copy /y ..\portaudio\msvc\Win32\Debug\portaudio_x86.dll wfview-debug
+
@@ -450,6 +452,7 @@ cmd /c copy /y ..\portaudio\msvc\Win32\Debug\portaudio_x86.dll wfview-debug
+
@@ -538,6 +541,7 @@ cmd /c copy /y ..\portaudio\msvc\Win32\Debug\portaudio_x86.dll wfview-debug
+
diff --git a/wfview.vcxproj.filters b/wfview.vcxproj.filters
index 04a65b6..2f52d05 100644
--- a/wfview.vcxproj.filters
+++ b/wfview.vcxproj.filters
@@ -149,6 +149,9 @@
Source Files
+
+ Source Files
+
@@ -262,6 +265,9 @@
Header Files
+
+ Header Files
+
@@ -299,6 +305,9 @@
Form Files
+
+ Form Files
+
@@ -441,5 +450,8 @@
Header Files
+
+ Header Files
+
\ No newline at end of file
diff --git a/wfview.vcxproj.user b/wfview.vcxproj.user
index 55b6057..7c2d6bc 100644
--- a/wfview.vcxproj.user
+++ b/wfview.vcxproj.user
@@ -45,10 +45,10 @@
2022-08-21T18:58:23.4329764Z
- 2023-01-29T11:49:00.1257696Z
+ 2023-02-14T17:48:26.0594274Z
- 2023-01-29T11:48:59.4191765Z
+ 2023-02-14T17:48:25.7629768Z
2022-08-22T10:47:49.1255783Z
@@ -60,9 +60,9 @@
2022-08-20T19:06:43.4553894Z
- 2023-01-29T11:49:01.5629425Z
+ 2023-02-14T17:48:27.5731249Z
- 2023-01-29T11:49:00.7644018Z
+ 2023-02-14T17:48:27.1219605Z
\ No newline at end of file
diff --git a/wfviewtypes.h b/wfviewtypes.h
index b86e131..a331a5f 100644
--- a/wfviewtypes.h
+++ b/wfviewtypes.h
@@ -166,7 +166,7 @@ enum cmds {
cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS, cmdSetQuickSplit,
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
- cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
+ cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW, cmdGetDashRatio, cmdSetDashRatio,
cmdSetTime, cmdSetDate, cmdSetUTCOffset,
// Below Only used for USB Controller at the moment.
cmdSetBandUp, cmdSetBandDown, cmdSetModeUp, cmdSetModeDown, cmdSetStepUp, cmdSetStepDown, cmdSetSpanUp, cmdSetSpanDown, cmdIFFilterUp, cmdIFFilterDown