github wonderingStars/foxsdr v0.76.0
FoxSDR 0.76.0

latest releases: v0.99.84, v0.99.83, v0.99.82...
one month ago

Windows x64. Download foxsdr-setup-0.76.0.exe below. Linux builds and the test suite exist but are unfinished and unproven against real hardware — see the notice at the top of the README.

Opening the radar no longer looks like a crash

Opening the radar unit made FoxSDR disappear completely, and it was reported as a crash. It never was one.

The handover used glfwHideWindow, which clears WS_VISIBLE and so takes the window off the taskbar as well as off the screen — every trace of the application went at once. Measured against the released 0.75.0: the visible windows went from [Decoder output] [FoxSDR 0.75.0] to none the moment the radar opened, while the process stayed perfectly healthy, rendered 13,435 further frames and exited 0. There is no way to tell that apart from a crash by looking, and a user should not have to.

It now minimises. The screen is just as clear for the radar, and a minimised window keeps its taskbar button, so the application is visibly still running.

Clicking that button is an honoured take-back: it drops the hold, puts the torn-off windows back, and is remembered, so the radar's next four-second renewal cannot minimise them again — otherwise it would be a fight the user could not see and could not win. The hand-back lapses once the lease expires, so the next radar to open is a fresh request rather than one overruled by a decision made about a previous one.

Both radars are on the rail

Reported missing twice. This product ships two things called radar and neither was where you would look for one: the in-app Radar scope was buried in the Decoders section, and the radar unit — its own program — was reachable only from the Start menu.

Both now have a key in the FUNCTION SELECT rail. The unit's button is disabled and says so when foxsdr-radar.exe is not installed beside FoxSDR, and it names Web access as the switch that has to be on: the unit draws its aircraft, its map tiles and its signal reading through it, and would otherwise open and report no link, which reads as a broken program rather than a setting.

The panel survives the larger type

The typefaces went up two points on a report that captions were hard to read. Dear ImGui text does not wrap when it runs out of room — it clips, silently — so every hard-coded width was measured again against the real faces at the new sizes.

  • The rail's label was drawn unbounded. Every shipped label still fits today, so this was not a visible clip and is not claimed as one; but a map row's label is a plugin's own display name, which nothing constrains. Both rail rows now stop the word at a limit measured from the chip's own width.
  • The four master lamp words — RUN, DEC, MUTE, FAIL — were pinned at a literal 11 px while everything around them grew, leaving four state indicators set smaller than the caption above them. They now take the deck's caption size.
  • The row height was the literal 28 that the smaller type happened to fill. It is now derived from the label size: exactly 28 today, so nothing moves, and it grows rather than squeezes on the next raise.

One tone change, on the top deck only. MASTER, TUNED and VOLUME were lettered into the brass at about 2.1:1, the worst contrast on the window. The cut is now filled rather than repainted — which is what a paint-filled engraving on a 1960s panel actually is — measuring 3.19:1 and 3.93:1.

Tests

81, up from 76.

test_radar_handover.cpp pins the handover: the main window must never be hidden, it must be iconified and restored, and the take-back and its renewal guard must be present. It reads the source rather than driving a window — a test without a window cannot make three GLFW calls happen — and the file says so rather than dressing it up. It was verified red against the original defect.

The behaviour itself was verified separately against the built binary: while the radar holds the display the main window is minimised with WS_VISIBLE still set, and a restore survives ten seconds of the radar's renewals with both programs running.

Don't miss a new foxsdr release

NewReleases is sending notifications on new releases.