Commit Graph

554 Commits

Author SHA1 Message Date
Annaliese McDermond 91d5b90e2a Fix transmit failures when using virtual devices
Direwolf does not send a continuous stream to the audio device.
It merely sends samples when it has a transmission to accomplish.
This seems to work okay on hardware devices, but is causing an
issue when working against a virtual device like plug or dmix
because the vitual device seems to get into a weird state while
direwolf is not sending samples.  This causes it to error out
with -EBADFD on every transmission after the first.

Direwolf tries to recover from this error by running
snd_pcm_recover() on the output device.  Inspecting the code of
this function revealed that it was a noop on any errors other
than -EPIPE or -ESTRPIPE, so it had no hope of fixing any issues
other than a buffer underrun or a suspended device.

This patch breaks things out so that we only run snd_pcm_recover()
on -EPIPE or -ESTRPIPE, and for any other error we go ahead and
just try to prepare the device again.  This appears to work to
make transmissions subsequent to the first work correctly on
virtual devices.  We handle -EBADFD differently merely so that
we don't print the error message for a quasi-expected condition.

This problem could also possibly be solved by unprotecting the
snd_pcm_prepare() on line 1174 of audio.c and just preparing the
device whether it apparently needs it or not, but I'm wary of the
unintended consequences of doing so in cases where the code is
currently working.  Much more testing would be necessary for that
solution.  This solution should only touch cases that are not working
currently regardless.
2018-12-02 19:59:03 -05:00
wb2osz a200f3da7e Add link to separate repository with presentations. 2018-11-25 15:41:04 -05:00
wb2osz b915842c9f Add link to separate repository with presentations. 2018-11-25 15:36:26 -05:00
wb2osz 9eaf9e361c Merge branch 'jedahan-macOS' into dev 2018-11-24 17:52:08 -05:00
wb2osz 20f9e15b8b Merge branch 'macOS' of git://github.com/jedahan/direwolf into jedahan-macOS 2018-11-24 17:51:28 -05:00
wb2osz 79df808d5d Issue 151 - Add support for Multi-GNSS NMEA sentences. 2018-11-24 17:20:45 -05:00
wb2osz c5526524b6 Begin version 1.6 development. 2018-11-24 16:57:05 -05:00
wb2osz 4590e21934 Include errno.h rather than sys/errno.h 2018-11-23 16:33:45 -05:00
wb2osz c0abb4b216 Release 1.5. 2018-10-08 10:15:21 -04:00
wb2osz da0a33ef2a Version 1.5 2018-10-08 09:49:18 -04:00
Jonathan Dahan e0fcdb8835 macOS: default to latest macOS if version string isnt found 2018-10-01 14:26:22 -04:00
Jonathan Dahan 9a98aed96e macOS: use INSTALLDIR in makefile to find libraries 2018-10-01 14:26:22 -04:00
Jonathan Dahan 9665fa845b macOS: use march=native in build 2018-10-01 14:26:22 -04:00
Jonathan Dahan 331b5774f9 macOS: remove -fslp-vectorize-aggressive as it is deprecated 2018-10-01 14:26:22 -04:00
wb2osz 11071bb06a Improve error message for audio output failure. 2018-09-12 06:31:42 -04:00
wb2osz be705987e2 Merge branch 'joshbuhler-jb_macBuildFixes' into dev
Mac build fixes - Pull request 140
2018-08-05 21:20:12 -04:00
wb2osz f864874771 Merge branch 'jb_macBuildFixes' of git://github.com/joshbuhler/direwolf into joshbuhler-jb_macBuildFixes
Mac build fixes - Pull request 140
2018-08-05 21:14:48 -04:00
wb2osz 220e7dd1c4 Issue 132 continued. If a client app tried to send connected data when
the transmitter was already on, the packet would get stuck in the outgoing
data queue.
2018-08-05 11:20:27 -04:00
wb2osz 4ecaf478cf Issue 132 - Sometimes, when outgoing frames would exceeed the "window" size
(MAXFRAME or EMAXFRAME) they would get stuck in a queue and not be released later.
2018-07-02 14:17:02 -04:00
wb2osz 38ab57afa4 New NOXID option to avoid wasting time to listed station(s)
which understand SABME but not XID.
2018-07-02 12:18:23 -04:00
wb2osz 22f645756d Add 100 baud AFSK default tones. 2018-07-02 12:02:28 -04:00
wb2osz e51002ac0c Add block diagram to README. 2018-05-23 11:47:00 -04:00
wb2osz 6874a5d897 Minor documentation updates. 2018-05-23 11:21:44 -04:00
wb2osz 8280971f55 Minor documentation updates. 2018-05-23 11:20:48 -04:00
wb2osz 4814011498 Minor documentation updates. 2018-05-23 11:18:34 -04:00
Josh Buhler b40d3fa134 ignore file tweaks 2018-04-03 19:56:45 -06:00
Josh Buhler 49ea703af1 Makefile tweaks
Uses the changes from pull request #71 by schuyler from the main direwolf repo
2018-04-03 19:56:02 -06:00
Josh Buhler 09a984a790 MSG_NOSIGNAL is not available on macOS 2018-04-03 19:54:34 -06:00
Josh Buhler 995fc89866 Fixes path used to find SDK 2018-04-03 16:49:38 -06:00
wb2osz 182713f423 Minor documentation updates. 2018-02-11 19:51:43 -05:00
wb2osz 4c6babebd0 1.5 beta test 2. Fixes for TCP KISS on Linux. 2018-02-11 19:48:28 -05:00
wb2osz 99d4d904b2 KISS over TCP behaved strangely with multiple client apps attached. 2018-02-11 19:45:44 -05:00
wb2osz 2328ecdf55 Minor documentation updates. 2018-02-06 22:33:17 -05:00
wb2osz 5e9d67834b Better error messages. 2018-02-06 22:30:44 -05:00
wb2osz 95c302566a Time stamps in wrong place. 2018-02-01 19:48:08 -05:00
wb2osz db4c07a2b1 1.5 beta test version. 2018-01-07 15:58:04 -05:00
wb2osz fa7d3bce47 Missing else resulted in incorrect and confusing error message. 2018-01-03 22:43:38 -05:00
wb2osz 26599ec771 Use standard DESTDIR, rather than INSTALLDIR, and allow it to be set on the make command line. 2018-01-03 22:40:21 -05:00
wb2osz c41841e859 New -T command line option for timestamps. 2018-01-03 21:04:33 -05:00
wb2osz d8e9273403 Clean up Linux install locations. 2018-01-03 20:57:56 -05:00
wb2osz 34aa3f84ea Latest tocalls.txt 2018-01-02 23:22:12 -05:00
wb2osz 2ac99a33dd Minor ocumentation updates. 2018-01-02 22:47:29 -05:00
wb2osz 9febac9696 Clean up Linux install locations. 2018-01-02 21:54:13 -05:00
wb2osz 78283e1991 Potential issues found by static analysis. 2018-01-01 21:38:50 -05:00
wb2osz 6ffef6ed52 Recognize channel number at start of command line. More error checking. 2018-01-01 20:08:59 -05:00
wb2osz 9cd305950f More efficient and reliable connected mode lost frame recovery. 2018-01-01 16:38:43 -05:00
wb2osz 3611971fe7 Remove misc.a from kissutil dependencies. 2017-12-18 19:10:57 -05:00
wb2osz 37179479ca Mac OS X patches. 2017-12-16 17:00:56 -05:00
wb2osz 50c5542f78 Use new "i" filter for messages. 2017-12-16 10:14:10 -05:00
wb2osz 5b00875549 Accumulate DC average for audio signal. 2017-12-16 10:10:36 -05:00