Commit Graph

81 Commits

Author SHA1 Message Date
Bill Currie f8ffb12713 [audio] Clean up jack and alsa dependencies
I had forgotten to test with shared libs and it turns out jack and alsa
were directly accessing symbols in the renderer (and in jack's case,
linking in a duplicate of the renderer).

Fixes #16.
2021-06-27 01:57:59 +09:00
Bill Currie fc907e232f [audio] Rework alsa to use a pull model
This brings the alsa driver in line with the jack render (progress
towards #16), but breaks most of the other drivers (for now: one step at
a time). The idea is that once the pull model is working for at least
one other target, the jack renderer can become just another target like
it should have been in the first place (but I needed to get the pull
model working first, then forgot about it).

Correct state checking is not done yet, but testsound does produce what
seems to be fairly good sound when it starts up correctly (part of the
state checking (or lack thereof), I imagine).
2021-06-24 00:08:05 +09:00
Bill Currie 5f93c115ff [util] Make developer flag names easier to manage
They're now an enum, and the flag part of the name is all lowercase, but
now the flag definitions and names list will never get out of sync.
2021-03-29 22:38:47 +09:00
Bill Currie 3efb0c538f Separate file search from loading.
QFS_LoadFile (and its wrappers) now  take a file handle rather than a
path. This will make vpath usage a little cleaner to implement.
2014-01-28 16:22:05 +09:00
Bill Currie 25a060f369 Remove the foundname param from _QFS_FOpenFile.
It's now obsolete with qfs_foundfile.
2014-01-28 16:22:05 +09:00
Bill Currie bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie 9a91aff93c Move the ambient level check out of the sound renderer.
Instead, the client gets the current leaf and passes ambient_sound_level
from the leaf to S_Update.
2012-02-13 13:44:29 +09:00
Bill Currie f75b0a611b Some compile fixes for OpenBSD 2011-08-25 22:35:20 +09:00
Bill Currie efa0105748 Rename some headers to fix doxygen warnings. 2011-07-23 15:58:45 +09:00
Bill Currie 8c4fe2f844 Rename Sys_DPrintf to Sys_MaskPrintf.
We now have finer runtime control over what gets printed. Need to do a
SYS_DEV audit, creating new masks as apropriate.
2010-11-26 16:19:26 +09:00
Bill Currie 54fc922f6c better error checking while reading streamed data 2010-08-13 01:48:20 +00:00
Bill Currie 22e8698827 resampling now works
However, no fallback for when libsamplerate is missing.
2010-08-11 23:47:03 +00:00
Bill Currie 1c985bc925 bah, forgot these 2010-08-11 23:46:28 +00:00
Bill Currie 7502cd9ec5 making slow progress on sound quality
streamed oggs playback cleaning when not resampling, but flacs are still crap
2010-08-11 23:45:09 +00:00
Bill Currie 65a748fc3c floating point mixer now working
the resampler is being badly abused for streams, and it's not yet properly
autoconfiscated, but things are working. Better yet, at the correct pitch and
speed.
2010-08-11 23:44:34 +00:00
Bill Currie 46a067b2f6 Do proper error handling when loading sound files.
This fixes the segfault grg got when trying to play a 5.1 channel file.
2010-08-08 03:02:55 +00:00
Bill Currie 0af43cf016 make the resampling state a little more self-contained. this should make 2009-01-08 07:48:08 +00:00
Bill Currie d93670df3b cleanup some cruft 2007-06-09 07:48:44 +00:00
Bill Currie 253795ca7f better handling of missing sound files. fixes the seg when the cd track isn't available. 2007-05-21 21:40:59 +00:00
Bill Currie 7af2378e03 turn on graph generation in the doxygen output. very slow, but the diagrams are worth it. Also make the data member of sfx_t a union rather than void so doxygen can see the relationships (and gets rid of a bunch of casts that I never liked anyway). 2007-05-07 05:20:24 +00:00
Bill Currie 2ee461fc24 this seems to fix the sound cutouts. I /think/ this is the correct fix as cached sfxs are shared and thus nulling the buffer pointer isn't a particularly good idea for every release. 2007-05-06 08:35:28 +00:00
Bill Currie 72a1aeb74b d'oh 2007-03-27 03:43:52 +00:00
Bill Currie e994e622b5 I'm getting pretty annoyed with this cache-release bug :P 2007-03-27 03:42:11 +00:00
Bill Currie 54139a1742 don't try to release an sfx when the cache has been flushed: our held sfx gets ripped out from underneath us. 2007-03-24 08:37:04 +00:00
Bill Currie 81a57bb3fa patch from phrosty for vc2005 support. includes fixes for a bunch of gcc-isms that crept in over the years. 2007-03-22 23:20:57 +00:00
Bill Currie 5a0e2460a3 whee, lockless channel management. still have a problem with unbalanced retain/release, though. 2007-03-18 10:32:01 +00:00
Bill Currie 9691afb782 connects to jack server and auto-wires the ports 2007-03-17 06:20:52 +00:00
Bill Currie d8f6d8a5fb split out the resample code from the memory code 2007-03-10 06:38:24 +00:00
Bill Currie d4719db021 a bunch of docs for snd_render.h and a some cleanup of namepace and old cruft 2007-03-10 04:21:32 +00:00
Bill Currie 3fb03fc2be hah, should have been using __attribute__((used)) all that time (rather
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie bcb45a7958 oops, messed up HAVE_VORBIS and HAVE_FLAC (cut&paste error:) 2005-06-19 05:24:19 +00:00
Bill Currie dff68bfed0 beginnings of flac support. compiles but untested. if this doesn't crash,
I'll be surprised :)
2005-06-15 10:02:50 +00:00
Ragnvald Maartmann-Moe IV d2a2ac036e Slightly ugly fix for an optimization bug. 2004-03-01 21:09:56 +00:00
Ragnvald Maartmann-Moe IV 2342dfcd8f A couple of small optimizations. If you are exiting early, avoid some stuff
only needed later. And reduce worst-case number of if tests in a few places.
2004-03-01 11:51:01 +00:00
Bill Currie d5a33c9545 extend the sound api slightly to ease things like cd_file and make cd_file
work as intended :)
2004-01-21 02:52:12 +00:00
Chris Ison 392902f5af added SND_NoResampleStereo so that streams that don't need resampling aren't forced to, also added midi support via libWildMidi, MIDI FILES RULE 2003-09-10 05:20:51 +00:00
Bill Currie 89833cb4d7 support streams that don't want any resampling 2003-09-09 22:20:10 +00:00
Bill Currie 855fc53709 handle alloca properly 2003-07-09 06:28:09 +00:00
Bill Currie 4a73d5dc45 this seems to fix the "end of file" issues on streams 2003-04-26 04:30:07 +00:00
Bill Currie 848bb891b3 win32 compile fix 2003-04-21 17:28:56 +00:00
Bill Currie 714bd341fc 'copy' streams on openning. fixes the shared stream issues, though other
problems might arrise (eg, running out of file handles or memory)
2003-04-20 07:19:51 +00:00
Bill Currie 52f41f8095 make streams work in chunks of 256 samples (won't work so well for non power
of 2 resample rates :/)
2003-04-20 03:42:19 +00:00
Bill Currie 49571b257d crystal clear playback on resampled streams :) (still borked when shared,
though :/)
2003-04-17 17:43:21 +00:00
Bill Currie 51f7b934d1 more headpos resetage 2003-04-17 03:58:16 +00:00
Bill Currie 28cc2e24ef headpos needs resetting too at sfx end 2003-04-17 03:53:54 +00:00
Bill Currie 87025a4598 get sound (generally) working again 2003-04-17 02:40:17 +00:00
Bill Currie eb099ae0d3 make qf gcc 3.3 clean 2003-04-17 00:01:48 +00:00
Bill Currie 63e6ae2869 report the name of the stream if reading is truncated 2003-04-15 21:11:41 +00:00
Bill Currie 5505aba316 minor cleanups 2003-04-15 04:03:02 +00:00
Bill Currie da44c783fb get the new sound system mostly working. just getting a bogus read count
in the stream reader at the moment, otherwise it's working wonderfully :)
2003-04-15 02:34:17 +00:00