* Observed on OS X, fldigi cannot work on audio cards with mono output
- it requests 2 channels from PortAudio no matter what and portaudio
will complain if the audio output is only mono.
- modified SoundPort::init_stream to make sure that if max_channels < 2
sd[1].params.channelCount is updated to max_channels
* Script Generate should save PA device index vice menu index.
* PSK: Possible segment fault. Tighter control on string lengths
* Util.cxx add comment block to each functions and remove
trim_white_spaces() function.
* Add menu item "Scripts" and callback function.
* Add scripting engine.
* Update script engine for localization strings/messages.
* Add hierarchy syntax
* New file run_script.h
* Hierarchy integration completed
* Add command set
* Add 'int find_index(char *)' to combo.cxx
* Add menu item 'Generate Script' and code for generating a default
config script file.
* Add void loadRigXmlFile(void) to rigxml.cxx to support scripting calls.
- Trim leading/trailing white spaces from portaudio device names.
* Remove duplicate calling functions/method members.
* Move command parameter specific verification to run_script.cxx
basic testing remains in script_parsing.cxx
* First Document Draft - Script commands
- Add Misc NBEMS config commands
- Add Notice - Program restart required.
- Update Documentation with new commands
* Removed Unused Variables (multiple locations)
* Change behavior of floating point output for script generate.
* Remove function qsy() use restriction on rig control availability.
* Add strnlen, strncmp and strncpy checks to configure.ac
* Add trim_white_spaces, strnlen, strncmp and strncpy routines to util.cxx
* Add pa_set_dev() to soundconf.cxx for updating pa device names.
* Add code to save macro(s) with content only.
* Add config_script files to POTFILES.in for localization processing.
* Flag command types.
* Limit generate script output based on configure content.
* Change script error dialog box to warning.
* Change default rig.xml to rig-unassigned.xml. For testing purposes.
(script generation)
* Update Documents with Notes about script generation and executing.
* Correct \ref and \section name duplicates in doxygen doc source
* Add script commands for ID->RSID/Video/CW panel.
* Move Script/Execute/Generate Menu Items to File Menu.
- Move repetitive code into general functions.
* Rename "Scripts" menu item to "Config Scripts"
* Fix error introduced in last mods. Port Audio Gen Config
* Changed all instances of Fl_Choice and Fl_Input_Choice
to Fl_ListBox.
- old Fl_Choice objects renamed to listbox_xxx
- old Fl_Input_Choice objects renamed to i_listbox_xxx
- Note that i_listbox_xxx objects need indexing offset
to maintain compatability with progdefaults definitions.
- New objects should use listbox_xxx naming convention.
- This removes a rather ugly Fltk widget. Fltk does not
have a native ComboBox or ListBox widget.
* Increased size of portaudio ring buffer.
Problem reported by Simon Gander, "I recently found
out that the THROB1 and THROBX1 modes don't work
correctly under certain circumstances. The pulses are
too short and get cut off at the end, which in turn also
causes the baudrate to be too high. I found out that I
could fix the problem by increasing the size of the ring
buffer in the SoundPort class.
* Changed all instances of Fl_Choice and Fl_Input_Choice
to Fl_ListBox.
- old Fl_Choice objects renamed to listbox_xxx
- old Fl_Input_Choice objects renamed to i_listbox_xxx
- Note that i_listbox_xxx objects need indexing offset
to maintain compatability with progdefaults definitions.
- New objects should use listbox_xxx naming convention.
- This removes a rather ugly Fltk widget. Fltk does not
have a native ComboBox or ListBox widget.
* Increased size of portaudio ring buffer.
Problem reported by Simon Gander, "I recently found
out that the THROB1 and THROBX1 modes don't work
correctly under certain circumstances. The pulses are
too short and get cut off at the end, which in turn also
causes the baudrate to be too high. I found out that I
could fix the problem by increasing the size of the ring
buffer in the SoundPort class.
* read timing factors for string transmission by external
program using new xmlrpc query
- main.get_tx_timing
respone - #samples: samplerate: transmit_time (secs)
* read char rate table using external xmlrpc query
- main.get_char_rates
table structure
char, ascii-rep', #samples, samplerate, transmit_time (secs)
* added hidden macro <CPS_TEST> which simulates transmission
of test string and measures the character per second rate
for the modem in use.
- <CPS_TEST> uses internal "Jabberwocky" string
- <CPS_FILE:[full pathname to file]> uses external text file
- <CPS_STRING:ascii text string...>
- produces report similar to:
CPS test
text: /home/dave/dev.git/all.git/pskr-tests/paris.txt
mode: PSK-500R
# chars: 2400
xmt time: 56.580000
data time: 52.480000
data samples: 419840
sample rate: 8000
chars/sec: 45.731707
~WPM: 457.317073
* Allow writing wav file during timing test
* High Speed WAV
- Add macros to enable writing WAV file in at maximum
character throughput.
- disables codec output
- use this for creating wav test files
* Suppress waterfall display for CPS and WAV tests
* Remove PSK printf debug statements
* Fix MFSK xmt 0x05 --> 0x04 during CPS testing
* read timing factors for string transmission by external
program using new xmlrpc query
- main.get_tx_timing
respone - #samples: samplerate: transmit_time (secs)
* read char rate table using external xmlrpc query
- main.get_char_rates
table structure
char, ascii-rep', #samples, samplerate, transmit_time (secs)
* added hidden macro <CPS_TEST> which simulates transmission
of test string and measures the character per second rate
for the modem in use.
- <CPS_TEST> uses internal "Jabberwocky" string
- <CPS_FILE:[full pathname to file]> uses external text file
- <CPS_STRING:ascii text string...>
- produces report similar to:
CPS test
text: /home/dave/dev.git/all.git/pskr-tests/paris.txt
mode: PSK-500R
# chars: 2400
xmt time: 56.580000
data time: 52.480000
data samples: 419840
sample rate: 8000
chars/sec: 45.731707
~WPM: 457.317073
* Allow writing wav file during timing test
* High Speed WAV
- Add macros to enable writing WAV file in at maximum
character throughput.
- disables codec output
- use this for creating wav test files
* Suppress waterfall display for CPS and WAV tests
* Remove PSK printf debug statements
* Fix MFSK xmt 0x05 --> 0x04 during CPS testing
* 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
* 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
* Changes to insure that array boundaries are not exceeded
* Moved large array from stack to static store.
* Added cmd line parameter --debug-audio to enable audio
debug events. default is off.
* Added throw exception statement and loop test to PortAudio
Read and Write while blocks
* Potentially cause of reported faults and unresponsive behavior
by both Linux and Windows users.
* Changes to insure that array boundaries are not exceeded
* Moved large array from stack to static store.
* Added cmd line parameter --debug-audio to enable audio
debug events. default is off.
* Added throw exception statement and loop test to PortAudio
Read and Write while blocks
* Potentially cause of reported faults and unresponsive behavior
by both Linux and Windows users.
* high speed playback of wav file
* on/off/toggle control is provided with an
undocumented macro tag
- <HS:on|off|t(oggle)>
* Start wav playback at normal speed and allow
decoding to begin. Then change to high speed mode.
Waterfall & scope are disabled during high speed
playback. Rx text display remains active.
* Added ability to playback sound file as single pass
or continuous loop. If in single pass then high speed
if toggled off at end of file.
* high speed playback of wav file
* on/off/toggle control is provided with an
undocumented macro tag
- <HS:on|off|t(oggle)>
* Start wav playback at normal speed and allow
decoding to begin. Then change to high speed mode.
Waterfall & scope are disabled during high speed
playback. Rx text display remains active.
* Added ability to playback sound file as single pass
or continuous loop. If in single pass then high speed
if toggled off at end of file.
Protect MixerOSS:: routines from trying to access uninitialized tables, as
happens when no OSS mixer support is present. Specifically, if openMixer()
or initMask() error out for whatever reason, then InputSourceNbr() and other
routines will crash becasue num_rec and num_out never get set to zero.
BugLink: https://bugs.launchpad.net/ubuntu/+source/fldigi/+bug/1058298
Protect MixerOSS:: routines from trying to access uninitialized tables, as
happens when no OSS mixer support is present. Specifically, if openMixer()
or initMask() error out for whatever reason, then InputSourceNbr() and other
routines will crash becasue num_rec and num_out never get set to zero.
BugLink: https://bugs.launchpad.net/ubuntu/+source/fldigi/+bug/1058298