Merge branch 'master' into ms-reporter-cpu-usage

ms-reporter-cpu-usage
Mooneer Salem 2025-06-10 08:53:33 -07:00 committed by GitHub
commit e82ce1cb3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 33 additions and 16 deletions

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

View File

@ -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)
{