* Some methods in waterfall are being called
before a modem has been instantiated. Possibly
due to threads being assigned to separate cpu
processors. This cannot happen on h/w with a
single cpu thread implementation.
* removed source files for Cfft, the original fast fourier
transform used in fldigi. Cfft has been replaced by
g_fft, the fast fourier transform C++ template based on
public domain code by
John Green <green_jt@vsdec.npt.nuwc.navy.mil>
* Changed fftfilt implementation to use g_fft class vice
Cfft class.
* Removed multi-channel decoding when not visible or configured
for decoding when not visible.
* Added macro tag for sending image. Similar to <File:xxx>
<IMAGE:[full pathname to image file]>
A file finder will open for image file selection when the
macro tag is selected from the pick list.
* re-scaled MFSK soft-bits: improved very-weak signal decode
* added CWI detection and avoidance
* removed "Hide", "Save", and "Abort" buttons from receive
pic dialog. Dialog remains open after changing modes.
Close using the system "X" close button.
* Added LOG_DEBUG statement to indicate when an
rsid code is not assigned to a modem type.
* Added code to disallow
<!MODEM:SSB> and <!MODEM:ANALYSIS>
macro tags.
* Added code to clear macro queue when T/R returns
to receive using the T/R button.
* Added assigned(trx_mode m) method to class cRsId
- used for testing whether Tx loop should invoke
the cRsID::send(...) method
* Corrected position of dtmf->send() in tx loop
* These changes are an attempt to catch and/or document start
up failures on Windows systems.
* Standardized the fatal exit process and message handling
* Changed system calls in util function create_directory(...)
* Changed name of DATA.files to "data" and placed directory in
the home directory for specific target OS.
- Added creation of data directory to main()
- This effects the location of Synop data files!
* Changes needed to improve double RsID detection
* Removed resample test and dependent code
* Reimplemented FFT bucket array
- removed array pointer arithmetic
- memory copy and initializers used to update
the bucket array
- modified search routine to insure that all elements
of FFT bucket array are tested.
* Deprecated use of hash tables for initial RsID search
- search sensitivity and hash table use were incompatible
* Changed recording to selectable
- 22050, 24000, 44100, 48000 samples / sec
* Change to allow playback at any sample rate
* Record and playback are monophonic
- left channel active
* initialize active_modem pointer to point to
an instance of NULLMODEM, before any other threads
or UI are started.
* eliminates active_modem pointing to a NULL pointer
and being accessed by a thread external from the
thread which initializes the active modem. This
segmentation fault seems associated with an OS
which manages threads over multiple cpu cores.
* Changed method of generating Farnsworth code
* Added Farnsworth specifier to WPM macro tag;
<WPM:WW:FF> WW = WPM, FF = Farnsworth WPM
* This entry is a missing commit from the 3.21
branch.
* Pre-process the xml text to remove all embedded comments
* LOG_ERROR all occurrences of mangled xml tags in the file
- <TAG> ... no </TAG>
- Tag not a member of the parent tag set
- Unknown tag
- Mismatched tags, <TAG>...</ATAG>; probably a typing error
or not using an xml editor to prepare the file.
* Changed thread close down process. Deprecated
use of pthread_mutex_lock during time when main
thread is blocking with a pthread_join on the same
mutex variable.
* Added scripts to generate Doxygen documentation from fldigi git repository / source
* Also executes "cppcheck" and includes those results on Doxygen page (if installed on system)
* Generates patches and log for the last 125 commits: includes links on Doxygen page
* Correct a Fl::focus error on OS X
- Fl::focus returns an erroneous pointer to a
window not owned by fldigi when the OS X
"About This Mac" dialog display in front of the
main fldigi dialog. The ATM dialog is forced to
front focus. Calls like w->window() then points
to memory outside of the application allocation.
- correct solution is to use named_window->contains(w)
where named_window is an existing fldigi widget and
w is the widget returned by Fl::focus().
- contains returns 1 if named_window or any of it's
child windows are in that window "group"