Merge branch 'master' into ms-reporter-cpu-usage
commit
e82ce1cb3b
|
@ -79,9 +79,14 @@ This document describes how to build the FreeDV GUI program for various operatin
|
|||
```
|
||||
(rade-venv) $ pwd
|
||||
/home/<user>/freedv-gui/build_linux
|
||||
(rade-venv) $ export GDK_BACKEND=x11 # optional, see (*) below
|
||||
(rade-venv) $ PYTHONPATH="$(pwd)/rade_src:$PYTHONPATH" src/freedv
|
||||
```
|
||||
|
||||
(*) If your Linux distribution and/or desktop environment uses Wayland, FreeDV will always open in the middle
|
||||
of the screen, regardless of where you positioned it before. You can avoid this by having FreeDV run as an
|
||||
X11 application instead using XWayland (`GDK_BACKEND=x11`).
|
||||
|
||||
Alternatively, you can use [this script](https://github.com/barjac/freedv-rade-build) developed by
|
||||
Barry Jackson G4MKT to automate the above steps. While the FreeDV project thanks him for his contribution
|
||||
to helping Linux users more easily get on the air with FreeDV, the FreeDV development team will not provide
|
||||
|
@ -144,13 +149,13 @@ one to build FreeDV for ARM as well as for Intel Windows systems.
|
|||
Using MacPorts, most of the appropriate dependencies can be installed by:
|
||||
|
||||
```
|
||||
$ sudo port install automake git libtool sox +universal cmake
|
||||
$ sudo port install automake git libtool sox +universal cmake wget
|
||||
```
|
||||
|
||||
and on Homebrew:
|
||||
|
||||
```
|
||||
$ brew install automake libtool git sox cmake
|
||||
$ brew install automake libtool git sox cmake wget
|
||||
```
|
||||
|
||||
Once the dependencies are installed, you can then run the `build_osx.sh` script inside the source tree to build
|
||||
|
|
|
@ -1102,6 +1102,14 @@ macOS test failures. (PR #917)</li>
|
|||
<li>Fix typo causing RX radio device to remain open. (PR #918)</li>
|
||||
<li>Fix WASAPI errors on some machines by supporting audio mix formats
|
||||
other than 16-bit integer. (PR #919)</li>
|
||||
<li>FreeDV Reporter: Fix issue with first column not being aligned
|
||||
properly with other columns. (PR #922)</li>
|
||||
</ul></li>
|
||||
<li>Documentation:
|
||||
<ul>
|
||||
<li>Add missing dependency for macOS builds to README. (PR #925; thanks
|
||||
<span class="citation" data-cites="relistan">@relistan</span>!)</li>
|
||||
<li>Add note about using XWayland on Linux. (PR #926)</li>
|
||||
</ul></li>
|
||||
</ol>
|
||||
<h2 data-number="18.2" id="v2.0.0-june-2025"><span
|
||||
|
|
|
@ -801,6 +801,10 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
|
|||
* Fix typo causing RX radio device to remain open. (PR #918)
|
||||
* Fix WASAPI errors on some machines by supporting audio mix formats other than 16-bit integer. (PR #919)
|
||||
* Reduce CPU usage of FreeDV Reporter window by only re-sorting if we actually get new data from the server. (PR #915)
|
||||
* FreeDV Reporter: Fix issue with first column not being aligned properly with other columns. (PR #922)
|
||||
2. Documentation:
|
||||
* Add missing dependency for macOS builds to README. (PR #925; thanks @relistan!)
|
||||
* Add note about using XWayland on Linux. (PR #926)
|
||||
|
||||
## V2.0.0 June 2025
|
||||
|
||||
|
|
BIN
USER_MANUAL.pdf
BIN
USER_MANUAL.pdf
Binary file not shown.
|
@ -81,7 +81,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
m_listSpots->AssociateModel(spotsDataModel_.get());
|
||||
|
||||
auto colObj = m_listSpots->AppendTextColumn(wxT("Callsign"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->SetMinWidth(70);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
|
@ -91,7 +91,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Locator"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(65);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -100,7 +100,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("km"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_RIGHT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -109,7 +109,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Hdg"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_RIGHT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -118,7 +118,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Version"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(70);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -129,7 +129,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
wxGetApp().appConfiguration.reportingConfiguration.reportingFrequencyAsKhz ? wxT("kHz") : wxT("MHz"),
|
||||
col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_RIGHT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_RIGHT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -138,7 +138,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Mode"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(65);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -147,7 +147,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Status"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -162,7 +162,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
colObj = m_listSpots->AppendTextColumn(wxT("Msg"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_DEFAULT, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
#endif // defined(WIN32)
|
||||
colObj->GetRenderer()->EnableEllipsize(wxELLIPSIZE_END);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(130);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -172,7 +172,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Last TX"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -181,7 +181,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("RX Call"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(65);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -190,7 +190,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Mode"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -199,7 +199,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("SNR"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(60);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
@ -208,7 +208,7 @@ FreeDVReporterDialog::FreeDVReporterDialog(wxWindow* parent, wxWindowID id, cons
|
|||
|
||||
colObj = m_listSpots->AppendTextColumn(wxT("Last Update"), col++, wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE, wxALIGN_CENTER, wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE);
|
||||
colObj->GetRenderer()->DisableEllipsize();
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT);
|
||||
colObj->GetRenderer()->SetAlignment(wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL);
|
||||
colObj->SetMinWidth(100);
|
||||
if ((col - 1) == wxGetApp().appConfiguration.reporterWindowCurrentSort)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue