Commit Graph

133 Commits

Author SHA1 Message Date
Bill Somerville e602def8b1 Qt 5 Audio replaces PortAudio.
Currently only Qt5 or above is known to work with this code. It may be
possible to backport it to Qt4 if required.

Audio output goes back to a separate thread to try and minimize
stutters in streaming on Windows particularly.

A crash on Linux due to mishandling of stereo audio output has been
fixed and both left and right channels are now correctly synthesised
with identical contents.

Rigs are enumerated directly from hamlib API rather than running a sub
process reading output of rigctl -l. This was initially done to get
rid of some GUI thread blocking in the configuration dialog, but is
generally a better way of doing it anyway.

Some refactoring in MainWindow to accomodate the audio streaming,
modulation and detecting classes.

Exit handling for application refactored to use signals rather than
brute force event loop exit. This was required to get correct thread
shutdown semantics.

The GUI update timer is now stopped during application shutdown which
is necessary to stop crashes when shutting down gracefully with
signals and window close() calls.

There is an outstanding issue with Linux audio streams; the QAudio
Input/Output classes create a new stream name each time a stream is
started. This doesn't play well with PulseAudio utilities such as
pavucontrol to set stream volume as settings are lost every tx
period. I have tried to keep a single stream for all output but there
are problems restarting it that haven't been resolved yet.

The QtCreator project file has been rearranged a little because it
passes all the object files to the linker rather than using an archive
library. Since the GNU linker is single pass; the object files need to
be in a logical order with definitions appearing afer references to
them. This was required to avoid a linking error.

The lib/Makefile.linux has been enhanced to use the fortran compiler
to locate the correct version of the Fortran library to use. This is
necessary on the latest Linux distros because the unversioned symlink
to compiler support libraries is no longer provided. This only an
issue with mixed programming language links where the linker driver
for one language has to link support libraraies for another language.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3532 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-08-07 23:09:13 +00:00
Joe Taylor 016245e80e New flexibility for defining and selecting the waterfall palette.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3528 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-08-07 14:49:45 +00:00
Joe Taylor 87ad45188f Most of these changes are thanks to G4WJS. Audio I/O is now done using
Qt's built-in QAudio calls rather than PortAudio.  Also includes some
refactoring of the arrangement for these calls, and more use of C++ style.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3523 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-08-05 13:57:55 +00:00
Joe Taylor c5b46973f2 Thanks to G4WJS: SoundOut functions have been moved into the GUI thread.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3517 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-08-01 00:49:58 +00:00
Murray Curtis 99256a6da5 First version of DXCC entity and worked B4 status
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3512 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-31 11:29:42 +00:00
Joe Taylor 3fcb73b107 1. Refactoring of code so as to move audio input from a separate thread to
the main GUI thread (thanks to G4WJS).

2.. Also, for the record, some example code for using QAudioInput instead 
of PortAudio.  This code is not presently active, and will need to be 
changed to accommodate the changes in #1, above.  But the basic ideas 
are here...


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3509 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-30 00:51:42 +00:00
Joe Taylor 1d166faa23 Add another waterfall palette, "Gray1".
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3504 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-25 19:25:39 +00:00
Joe Taylor 88c73582a0 Implement a user option to set font sizes.
Updates to User's Guide.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3501 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-24 19:07:57 +00:00
Joe Taylor cbed84e0c7 1. Full control of DTR and RTS on serial port used for CAT control -- patch
submitted by G4WJS.
2. Improved(???) means of multiple tries when polling radio for frequency.
3. Minor tweaks to widget sizes on devsetup screen.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3500 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-23 17:32:59 +00:00
Murray Curtis cc1c17cd64 Band settings with multiple antenna descriptions for PSK reporter
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3499 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-23 10:28:22 +00:00
Joe Taylor a8fc9a2131 Full activation of "Multiple Instances", thanks to some code by
Josh Rovero, KK1D.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3495 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-19 00:23:40 +00:00
Edson W. R. Pereira 94b80c4b0d Added new meter widget.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3489 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-16 21:16:57 +00:00
Joe Taylor e7d5347020 Add a "+ 2 kHz" checkbox under the Band selector.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3480 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-11 20:41:46 +00:00
Joe Taylor da7a8ebd15 Remove qDebug() statements.
Use ptt_() function included in getfile.cpp.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3465 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-08 23:32:20 +00:00
Joe Taylor 8fb483a200 Merging code for v1.1 back into the main wsjtx branch.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3462 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-07-08 13:17:22 +00:00
Joe Taylor d3a8a54fba Add optional antenna description for PSK Reporter. (Presently implemented
only for Windows.)


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3344 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-06-06 17:40:09 +00:00
Joe Taylor 4fe7578f89 1. Added Tx Power to ADIF log information, with option to retain between QSOs.
2. Added option to retain between QSOs the Comments field for ADIF and
   wsjtx logs.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3343 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-06-06 16:17:58 +00:00
Joe Taylor 593e05337d Cleaning up the "Log QSO" function. (Not finished, yet...)
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3342 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-06-06 15:09:49 +00:00
Joe Taylor 0b6205d455 1. Oops, inadvertently I clobbered a Win32-only line while editing unix
code.  
2. Add a Setup option "Tx freq locked to Rx freq."  Needs testing!


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3318 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-28 19:34:18 +00:00
Joe Taylor 8ab7c01e16 1. Added Tool Tips for most on-screen controls.
2. Removed all vestiges of NB code and controls.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3314 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-24 15:41:33 +00:00
Joe Taylor c4e6f89b0b This code now compiles OK in either Qt4 or Qt5. To run in Qt5 we'll need
a Qt5-compatible "thermo" widget.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3310 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-23 20:21:47 +00:00
Joe Taylor 70d9a21584 Forgot to update calling sequence of symspec() in its declaration.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3302 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-23 13:35:47 +00:00
Joe Taylor 5307e65ae7 Revert to ComboBox for selecting PTT Port. (Straightened out the bizarre
ordering of items on the drop-down list.)


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3285 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-20 18:33:06 +00:00
Joe Taylor 921ec1e158 Change PTT Port from a QComboBox to a QlineEdit.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3284 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-20 15:43:56 +00:00
Joe Taylor 1ada32a81e 1. De-activate submodes JT9-5, JT9-10, and JT9-30. (This makes the shared
memory region smaller by some 150 MB.)
2. Some code cleanup (removing unused lstrong, etc.)...


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3283 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-20 14:09:02 +00:00
Joe Taylor f2543ad008 1. Remove the "color highlight left window" option.
2. Re-establish the pxdb measurement for Thermo.
3. Double-click on decoded line copies it to QSO window (unless it's 
   already there).


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3276 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-16 23:52:04 +00:00
Joe Taylor 623c560e12 Red/Orange indicator between "Band" spinner and Dial Frequency readout
is now a button.  It is enabled only when Orange, which means CAT
control is essentially Program to Radio only.  Clicking the button
causes a one-time read of the radio's dial frequency.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3256 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-05-04 00:12:27 +00:00
Joe Taylor c9e20f6f9d This is test code!!
I have changed the declarations of the Rig class functions we use:

open()
setConf()
getFreq()
setFreq()
setPTT()
close()

... so that each one returns the (negative) error code returned by 
hamlib.  These functions no longer throw exceptions.

Initial tests seem to show things working well.  I have found one
condition that causes a crash.  The rig is initially opened and is
running OK (in this case, with the Polling interval set to 1 s).  Then
the radio is turned off.  The next call to getFreq() never returns.

Probably we need to set a timeout limit?

The code is kinda on the quick-and-dirty side.  Improvements will be 
welcom!



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3246 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-30 18:54:11 +00:00
Joe Taylor d62a045e27 Starting to implement a "polling interval" option. More to come!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3245 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-30 14:34:45 +00:00
Joe Taylor bcb74260af Execute the "band changed" routine when the Band combobox is activated,
even if selected band has not changed.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3244 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-29 23:53:23 +00:00
Joe Taylor 833376db3d Save/restore geometry of LogQSO window over program invocations.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3240 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-28 20:23:14 +00:00
Joe Taylor c1995c44ff Save and restore geometry of the "LogQSO" dialog.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3238 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-28 18:58:03 +00:00
Joe Taylor 342dd64cd5 Make the LogQSO dialog non-modal.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3236 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-28 13:35:01 +00:00
Joe Taylor a75f2e0f10 1. Diasble any irrelevant widgets on Configuration screen.
2. Rationalize tab-order on main window.
3. Tweak the GUI appearance around DxCall, DxGrid.  (Hope it's still OK 
   in Linux!
4. Add helpful displays of Keyboard Shortcuts (F3) and Special Mouse
   Commands (F4).
5. Bump version number to 0.95.
6. Update the Windows packaging script.
7. Update ChangeLog in preparation for possible release of v0.95 r3226.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3226 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-26 16:23:18 +00:00
Joe Taylor b954f1d85d "Data" and "Mic" options for PTT via CAT control.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3223 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-25 22:57:08 +00:00
Joe Taylor a83d4e48a4 Corrected a startup problem: m_band was used before being defined.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3213 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-25 14:41:06 +00:00
Joe Taylor 1ceba579ff Add a setup checkbox "RTS/DTR Off", to enable proper CAT control of
Elecraft K2 (and possibly other rigs?).


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3209 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-24 19:41:58 +00:00
Joe Taylor 513927e041 1. New buttons to set Txfreq=RxFreq and RxFreq=TxFreq.
2. Don't change Tx5 message when rpt spinner is activated.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3207 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-24 16:05:04 +00:00
Joe Taylor dab1519ad8 Option to allow multiple instances of WSJT-X to run simultaneously.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3206 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-24 15:00:30 +00:00
Joe Taylor 4ba1f7d932 Clicking the "Report" spinner up/down should not change the Tx message number.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3205 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-24 00:45:01 +00:00
Joe Taylor d95e900636 1. Removed all vestiges of rigctl use. Now using calls to hamlib
functions.  

2. Restored "Test CAT Control" and "Test PTT" buttons on the 
Setup | Configuration screen.

These features need thorough testing!



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3204 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-23 20:46:04 +00:00
Joe Taylor 24f7952819 Once again, working to implement direct calls to basic hamlib functiions.
*** This code is not finished, and may not work correctly! ***


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3200 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-23 00:52:51 +00:00
Joe Taylor 0efd7824f0 Don't post a spot to PSKreporter if band was changed in the past 50 s.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3196 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-18 10:35:58 +00:00
Joe Taylor 51265e1adf Temporary updates... must still improve the Tune-button logic.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3194 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-17 15:53:43 +00:00
Joe Taylor 8feedd22a2 Removed the bi-directional CAT control: an unsuccessful experiment.
Removed an unhelpful change to decoder().


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3193 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-17 14:53:58 +00:00
Joe Taylor 7d416a1fe5 Highlight freq readout if radio is on wrong band.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3187 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-16 20:18:50 +00:00
Edson W. R. Pereira 0f3f82b770 Initial tests with new PSK Reporter interface. Only on UNIX for now.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3186 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-16 20:15:25 +00:00
Joe Taylor 3ed5f2ec35 Backed out the changes from r3171 to r3172 -- too buggy at present.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3173 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-15 21:13:31 +00:00
Joe Taylor b02d298518 1. CAT control now working with calls to hamlib functions.
Needs testing!!!
2. Added "Test CAT Control" and "Test PTT" buttons on 
   Setup | Configuration screen.  (Must fix flaky behavior of calls to ptt().)


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3172 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-15 20:20:06 +00:00
Joe Taylor 7bc09300eb Add instructional labels to Tab 2.
Reset m_repeatMsg=0 on Tx Halt, etc.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3171 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-04-15 16:06:22 +00:00