* discover application executable location
* if the directory in which "fldigi" / "fldigi.exe" resides
contains a file named NBEMS.DIR then base all NBEMS file
locations to that drive-folder
* this allows a fully portble NBEMS installation
to a thumbdrive (or other portable drive)
* it also allows a very easy way to install multiple NBEMS suites
for different target uses on a single hard drive
* Refactor get_tx_char()
* Reset to stock version, call byte_at()
The class Fl_Text_Buffer_mod (borrowed from FLTK) contained a modified
version of the method char_at() that effectively made it behave as
byte_at(). Silently modifying a library-provided method not only disables
the access to a certain functionality of the library, but can also cause
other unforeseen consequences. The method was thus reverted to the stock
version and the code that previously called the modified version was
changed to call byte_at() instead.
* Remove unneeded code in FTextTX::nextChar()
* Libtiniconv
- Added libtiniconv (charset conversion library)
- Library Version 1.0.1 fetched from http://tiniconv.sf.net
A small fix made to change a misspelled macro name.
Build system adapted to fit into the fldigi build model.
* Added CharsetDistiller class
- Sanitize input data and convert it into UTF-8
- CharsetDistiller receives input data one byte at a time and converts this
data stream from a particular character set into UTF-8. Invalid input data
is treated as if it was encoded in CP1252. Character set conversion is
performed as soon as possible, i.e., when enough input is received to
constitute a valid character in the input character set, this character is
immediatly converted into UTF-8 and made available at the output.
* Make put_rx_char_flmain() use charsetDistiller
* Make put_echo_char() use CharsetDistiller
* Make pskBrowser use CharsetDistiller
* Added OutputEncoder class
- Used for encoding transmitted data
- OutputEncoder accepts UTF-8 strings at input, converts them to the
selected encoding and outputs them one byte at a time.
* TX character set conversion using OutputEncoder
* Fix backspace for >2byte UTF-8 characters
* Cleanup modem UTF-8 code
- PSK, Olivia, MT63 and MFSK modems:
cleanup of unneeded UTF-8 handling code
- Everything that deals with output character set conversion and data
sequencing is now done using OutputEncoder, so the modems can become
completely agnostic about the character set used. As far as they are
concerned, everything is just byte-sized data.
* Added an array of character set names and identifiers
* UTF-8 code cleanup
- Cleanup of unneeded UTF-8 handling code in add_rxtx_char() and family
* Character set selection menu
- Add menu button to select the active TX/RX charset to the colors-fonts
configure dialog. The setting defaults to UTF-8 (selected at program
startup). The selection is saved to the program defaults configuration
file when "Config/Save" is executed.
* added parsing of cmd line parameters when opening flmsg
upon completion of wrap file extraction
* added parsing of flamp text streams
* modified socket arq to separate socket i/o from both
signal processing and main thread.
*First ERROR message
- removed popup dialog messes on first encounter
of ERROR / WARN message
- fl_message dialog could be hidden behind other
open dialogs such as signal browser, logbook or
main dialog. Result was apparent loss of focus
for main dialog on Windows OS.
- moved debug::stop() to clean_exit function to
prevent leaving zombie debug window visible when
closing down application
* Added conditional compilation for
- Panel.cxx
- Fl_Text_Buffer.cxx
- Fl_Text_Display.cxx
- Fl_Text_Editor.cxx
- FTextView.cxx
- FTextRXTX.cxx
* Added code to support fast wrap
- Rx text buffer serviced as a non-wrap buffer
- new lines inserted into text stream when current line
length exceeds the panel width
- no attempt to recalculate word wrap if panel is
resized
- needed for slow cpu and OS X X implementation
* Added margin adjuster
* Removed horizontal scroll when word wrap enabled
* Set vertical scroll to always visible - prevents
unnecessary reformating of text when scroll bar
goes from hidden to visible
* Corrected faulty logic in handle_dnd for dragging file from
file manager view to editor widget
- SHIFT-dnd places object name into target widget
- dnd places object contents into target widget
- dnd multiple objects concatenates contents into target widget
* Test for bottom of text visibility when programmatically
adding characters to a text view or edit buffer (Rx/Tx)
* Implemented common FSEL methods for Fltk 1.3.0
- 1.3.0 used common calls for all supported OS
* Allow user to specify location of cty.dat file.
* Use specified cty.dat path to also locate
lotw1.txt and AGMemberList.txt
* Allow user to reload the file(s) if updated while fldigi
is running or the location is changed.
* This change allows multiple instances of fldigi to use a
single, manageable, installation of the files
- cty.dat
- lotw1.txt
- AGMemberList.txt
The three files must be co-located in a single folder.
* Main thread would deadlock during initial read of logbook. This
was reported and duplicated on Linux and OS X systems.
* Added timeout call to execute initialization routines that might
modify any UI element after Fl::run() is executed
* Allow user specification of FLMSG directory as a command
line argument --flmsg-dir "full-pathname-directory"
* Defaults
- Linux / OS-X $HOME/.nbems
- XP C:\Documents and Settings\<user>\NBEMS.files
- Vista/Win7 C:\Users\<user>\NBEMS.files
* Fix build on GNU/Hurd (or other platforms which do not define SA_NOCLDWAIT.
* Fix build on GNU/Hurd (or other platforms which do not define any PATH_MAX)
* Changed interface method to connect to DigiTalk
autostart no longer initiated unless so configured
* Changed Connect button on Misc tab to provide for
both connect and disconnect
* Added new macro tags to allow DigiTalk connect /
disconnect using function keys
- <TALK:on|off|t> start, stop, toggle
the connection to the DigiTalk socket server
Changed creation of NBEMS directory structure.
* Only created when required by program or elected by
operator when using the File/Folders/NBEMS files... menu item
* Changed NBEMS directory to ~/.nbems/ on Linux and friends
* NBEMS directory remains NBEMS.files on Windows
* Append text to main window title such that the title set with
-title is preserved as a prefix.
* Use the -title argument as the JACK or PulseAudio stream name.
* Remove deprecated options: --twoscopes, --experimental
* Add --wfall-only alias for --wo
* Rename --frames-per-buf to --frames-per-buffer. Old option name will
still work as it is an abbreviation.
* Add arg_error function to handle errors. Messages may be printed to
stderr or displayed in an error dialog depending on OS and whether
stderr is a terminal.
When copying configurations around among similar machines, a non-optimal
Sinc interpolator may have been selected. Provide the user with the
information even when fldigi has already been configured.
Add menus to select
* modes that will be switched to on RSID reception
* modes for which to transmit RSID / VideoID / CWID
The defaults are:
* Receive RSID: all modes
* Transmit RSID & VideoID: all except CW, PSK31, RTTY
* CWID: all except CW
Also add option to choose which modes are shown in the main OpMode
menu.
The Intel Atom N270 and N280 processors score about 17 in the speed test
and are placed in the slowest category, which uses the LINEAR sample
rate converter. However, they can easily handle the much better
SINC_FASTEST converter with some operator care. Lower the slowest
threshold to 15 and assume that the operator will know not to run too
many CPU-intensive programs at the same time as fldigi.
* Added Gaussian noise source with adjustable level in dB.
* Access requires command line switch --noise.
Controls appear on Configuration/Operator Tab.
* Not for use with transmitted signals, but for generating
an audio test file or testing with cross connected audio
cables between two computers.
* Modified modem decoders where necessary to level adjust
between transmit and receive s/n.
* Added a waterfall-only GUI to allow external applications to
use fldigi as a modem / waterfall application. External app
must provide the Rx / Tx / Logger services.
Command line switch --wo is used to obtain this minimalist
UI.
* Added limit controls on waterfall cursor movement/selection
* Added limit controls on modem AFC movement
* Limits imposed by LowFreqCutoff, HighFreqCutoff config items
Effect immediate to configuration item change
* Fixed bug which caused erroneous request to save log on exit
* Add flarq to build system and installers
* Modify test scripts
* Add flarq manual page
* Add flarq command line argument handling
* Improve flarq's windowing system support
* Add new asciidoc Beginners' Guide and manual pages. The guide and man
pages are built if asciidoc and a2x utilities are present on the build
system.
* Install man pages and fldigi-shell.
* Update build system to automatically copy the HTML version of the
guide to the source.
* Add missing config.h include.
* Change "invalid option" error message.