Commit graph

173 commits

Author SHA1 Message Date
Daniel Gibson
62d76b3d40 Fix segfault when s_openal=0 but USE_OPENAL=1
If the game was compiled with openal support (USE_OPENAL is defined),
but it's disabled via cvar (set s_openal 0) there could be segfaults
when calls to openal where done anyway, because the check
if(sound_started == SS_OAL) was forgotten.
This is fixed now.
2012-05-17 14:47:05 +02:00
Yamagi Burmeister
5bf1ee670d Fix s_show when OpenAL is used 2012-05-12 15:11:17 +02:00
Yamagi Burmeister
aff51633d0 Add a sanity check against buffer overflows to S_BuildSoundList 2012-05-12 14:46:13 +02:00
Yamagi Burmeister
4a414b588e Fix a buffer overflow in AL_AddLoopSounds
This fixes a crash in mine4.bsp and most likely some other problems.
The bug was reported by "mxmvasilyev0 [at] gmail [dot] com" and tracked
as Github issue #1.
2012-05-12 14:42:15 +02:00
Christoph Mallon
ab034114b4 Whitespace fixes. 2012-04-30 08:25:59 +02:00
Daniel Gibson
31f9af817f Last fixes and cleanups for OpenAL support
* New license header in snd_al.c
* README fixes
* Fix printing of used OpenAL device
* Cleanup in snd_al.c
2012-04-28 15:44:14 +00:00
Yamagi Burmeister
c62e5ac85b - Implement AL_UnqueueRawSamples() and use it to stop the Vorbis playback
imediatly
- Increase Vorbis buffers to 64. 24 were to few
2012-04-27 14:06:08 +00:00
Yamagi Burmeister
2b6389a471 Filter sound samples (not the music) when under water 2012-04-27 13:55:45 +00:00
Yamagi Burmeister
1a0b4ebad5 Do not set / enable / show the s_openal CVAR if the binary is build
without OpenAL support. OpenAL is enabled in the default Makefile and if
it's disabled, it's shown at startup.
2012-04-27 12:00:22 +00:00
Yamagi Burmeister
a388254252 Fix a missmerge 2012-04-25 10:09:16 +00:00
Yamagi Burmeister
2c3c203097 Merge out new options framework from the trunk 2012-04-25 09:57:17 +00:00
Yamagi Burmeister
03015a686b Hide music playback from CD behind CDA 2012-04-25 08:53:25 +00:00
Yamagi Burmeister
9d60a5de6a Hide OGG/Vorbis support under OGG 2012-04-25 08:24:38 +00:00
Yamagi Burmeister
f836cef4c4 Rename qal_api.c to unix/qal.c and qal_api.h to unix/header/qal.h.
Both files are platform dependend and won't work on non unixoid
platforms.
2012-04-24 14:20:01 +00:00
Yamagi Burmeister
bf6d491af3 - Refactor AL_SoundInfo() into the platform dependent
QAL_SoundInfo().
- Use QAL_SoundInfo() to print the OpenAL infos 
  at startup and by the "soundinfo" command.
- Implement printing of all available OpenAL
  devices at startup and by the "soundinfo"
  command.
2012-04-24 14:07:33 +00:00
Yamagi Burmeister
79c137254a Rework qal_api.c and qal_api.h:
- Reformat to match "our" coding style
- Unroll all unreadable macros
- Remove the use of goto
2012-04-24 13:22:05 +00:00
Yamagi Burmeister
479aae4a9c *gna* This \n got lost on the way 2012-04-23 13:57:36 +00:00
Yamagi Burmeister
90d0811185 Delete all OpenAL sources at shutdown 2012-04-23 13:55:25 +00:00
Yamagi Burmeister
134878e996 - Some more minor style cleanup
- Much improved startup log messages
2012-04-23 13:44:12 +00:00
Yamagi Burmeister
678e50bf8d Raise the volume of a positioned sample by 384 instead of 255 when using
OpenAL. This makes them much more distinguishable from the background
music.
2012-04-23 13:23:47 +00:00
Yamagi Burmeister
3bce2a212a - Use a better way to calculate the number of buffers
used by OGG/Vorbis. 24 buffers are enough for smooth
  and stutter free playback and ensure, that OGG_Stop()
  is effective nearly immediately.
- Change C99 comments to C89, since snd_vorbis.c is
  a C89 file. Caedes will beat me for this :/
2012-04-23 07:59:39 +00:00
Daniel Gibson
3d7013e12b Fix: Cvar_Get needs a string as default value, not an int.. 2012-04-22 20:28:41 +00:00
Daniel Gibson
8bfc61b564 Introduce s_openal to enable/disable OpenAL
And fix possible dangling else problem in that code
2012-04-22 20:27:02 +00:00
Daniel Gibson
efd85a76c6 Updated paintedtime in OpenAL mode so shotgun sounds right
probably fixes other issues as well.
2012-04-22 20:14:56 +00:00
Daniel Gibson
65914b342d Allow DMA/SDL sound in OGG_Stream when compiling with USE_OPENAL 2012-04-22 17:59:03 +00:00
Yamagi Burmeister
e388a425b4 Enable OGG/Vorbis playback in OpenAL mode. 2012-04-22 17:50:15 +00:00
Daniel Gibson
04fd7f2cda OpenAL Streaming Sound stuff
from zeq2, but adapted/stripped down for our needs.

Videos work (for me), music does not (yet)
2012-04-22 15:59:18 +00:00
Daniel Gibson
6384b850f1 Remove redundancy 2012-04-22 15:57:59 +00:00
Daniel Gibson
f4d5040a73 Add OpenAL stuff to Makefile, make it compile and work (no streaming sound yet)
It works \o/
It's still hacky so it needs more work.
And streaming sound (OGG music, sound from videos) is still missing.
2012-04-22 00:24:50 +00:00
Daniel Gibson
7e0a44825e OpenAL support, from Q2Pro
Copied and adapted (hopefully) all relevant code from Q2Pro.
Did some small refactorings when needed.

Still TODO:
* Adapt Makefile
* OGG support when using OpenAL
* A cvar that switches between OpenAL and DMA/SDL
* Actually compiling and testing this stuff ;)
2012-04-15 02:58:01 +00:00
Yamagi Burmeister
77de60f274 Fix a rare crash by nullpointer 2011-10-13 13:16:59 +00:00
Yamagi Burmeister
0aa45e9736 Fix some warnings with clang 2011-06-27 14:40:16 +00:00
Yamagi Burmeister
bff20f6b7c Nächter Soundpatch von Ozkan:
- Adds a "float volume" argument to snd_dma.c:S_RawSamples()
	so that ogg can use it too
  - That S_RawSamples now has a volume argument, the
    cinematics now honor the volume adjustment instead of 
    playing at full volume all the time even if volume is
	zeroed                                                                               
  - Moves endianism handling from S_RawSamples to codec
    level                                                         
  - Fixes an issue of S_RawSamples with 8 bit stereo samples
	(not seen/tested with q2 but with my uhexen2)
  - Other minor adjustments
2010-12-20 09:56:37 +00:00
Yamagi Burmeister
f5f5c0d2ca Korrigiere Endianism im Vorbis-Code 2010-12-03 09:45:49 +00:00
Yamagi Burmeister
4b6c561acc Erweitere Vorbis-Unterstützung:
- Support für Big-Endian Pamps (läuft yQ2 auf sowas überhaupt?)
 - Unterstützung für 22khz Vorbis-Dateien (ermöglicht es die
   Wave-Dateien aus den Pags in Vorbis zu konvertieren, wenn man denn
   drauf steht.)
 - Unterstützung für Mono-Dateien (Sinnvoll für Handhelds)

Patch von: Ozkan Sezer
2010-11-30 10:28:20 +00:00
Yamagi Burmeister
e57aba66c1 Man sollte strncmp() auch richtig anwenden 2010-11-27 11:19:59 +00:00
Yamagi Burmeister
8af8dd1559 Stoppe Ogg-Playback, wenn Track 0 gefordert wird 2010-11-27 10:45:09 +00:00
Yamagi Burmeister
758d82fe4c Deregistriere ogg_init und ogg-shutdown 2010-11-01 15:48:01 +00:00
Yamagi Burmeister
f0fa091fde s_khz per Default auf 44 2010-10-28 05:57:13 +00:00
Yamagi Burmeister
7c6551dc0f Einen kleinen Bug gefixt, der zu Soundclipping führte 2010-10-28 05:56:20 +00:00
Yamagi Burmeister
09c87ea0cc Reformatiere die Startup Ausgabe 2010-10-19 13:34:08 +00:00
Yamagi Burmeister
7ebccb34d4 - Formatiere Code neu
- Einige Änderungen für mehr Robustheit
- Vereinfache Code und reiße überflüssigen Müll raus
2010-10-14 06:59:42 +00:00
Yamagi Burmeister
ebe4cb1b45 - Formatiere Code neu
- Vereinfache Code
2010-10-14 06:29:53 +00:00
Yamagi Burmeister
90101b4dec - Formatiere Code neu
- Vereinfache Code
2010-10-14 06:23:35 +00:00
Yamagi Burmeister
a8a61f0234 - Vereinfache Code
- Reformatiere
2010-10-14 06:14:35 +00:00
Yamagi Burmeister
2b405405dc - Formatiere neu
- Vereinfache Code
2010-10-14 06:08:10 +00:00
Yamagi Burmeister
dc930150cf Und noch ein paar Dinge mehr am Sound gemacht 2010-10-13 18:00:39 +00:00
Yamagi Burmeister
f20f8bddf4 Einige fixes für das Soundsystem 2010-10-13 17:07:29 +00:00
Yamagi Burmeister
67ef502a93 - Reduce sounds to 96
- Increase com_maxfps to 120
2010-10-01 16:11:00 +00:00
Yamagi Burmeister
0c020c4ee4 Intelligentere Deafults:
rate 8000 ist mehr als ausreichend bei allem, was kein Modem mehr ist.
s_mixahead 0.14 ist besser als 0.2, außer man will ein leichtes soundlag
cl_maxfps auf 60. Das reicht und verhindert bugs
2010-07-13 18:42:12 +00:00
Yamagi Burmeister
b554afa486 Headerguqards für den Client 2010-07-13 18:30:43 +00:00
Yamagi Burmeister
787686a976 Dateiheader neu formatiert und "particles.h" entfernt 2010-07-13 18:19:42 +00:00
Yamagi Burmeister
185063f1a9 Voice over Network weitergehend kommentiert 2010-07-13 08:54:23 +00:00
Yamagi Burmeister
c8927b0cee Mehr Sounds 2010-07-13 08:48:09 +00:00
Yamagi Burmeister
f16ba343cc s_primary war windows only 2010-07-13 08:44:06 +00:00
Yamagi Burmeister
c81863ef71 snd_local.h -> header/local.h 2010-06-19 19:10:31 +00:00
Yamagi Burmeister
3007608a22 Benenne snd_ogg.c in snd_vorbis.c um 2010-06-19 19:06:37 +00:00
Yamagi Burmeister
82b038590d Die Sound-Header in ein eigenes verzeichnis 2010-06-19 19:04:39 +00:00
Yamagi Burmeister
8925af9878 Den Wave-Code in eine eigene Datei 2010-06-19 18:59:33 +00:00
Yamagi Burmeister
1c7ef236f9 sound.h reformatiert 2010-06-19 18:54:45 +00:00
Yamagi Burmeister
01e870b794 snd_loc.h umbenannt zu snd_local.h 2010-06-19 18:51:28 +00:00
Yamagi Burmeister
fe587b7148 weitere Dateien des Soundsystems neu formatiert und kommentiert 2010-06-19 17:04:32 +00:00
Yamagi Burmeister
0c4a7d291f snd_dma überarbeitet was die Kommentare und die Formatierung betrifft 2010-06-19 08:47:14 +00:00
Yamagi Burmeister
6669ab3643 strtok ist seit Jahren durch strsep ersetzt. Es ist schneller und
besser.
2010-06-17 06:59:33 +00:00
Yamagi Burmeister
c7d5882fe1 22kHz Sound als Standardeinstellung 2010-02-01 15:09:47 +00:00
Yamagi Burmeister
c3dcd1c1fa Behebt einen Absturz beim Levelwechsel, wenn zuvor OGG/Vorbis
deaktiviert wurde.
2010-01-28 21:11:46 +00:00
Yamagi Burmeister
afce443234 Die "Playing $file" Meldung weg. Sie nervt 2009-10-06 15:12:06 +00:00
Yamagi Burmeister
e4818d35d5 Speichern funktioniert nun wieder. Das Menü spinnt aber noch 2009-10-04 09:26:46 +00:00
Yamagi Burmeister
137c9ce5d7 Man sollte auch alle Dateien mergen... 2009-10-03 16:08:34 +00:00
Yamagi Burmeister
b6f5dadf4c Merge in den Trunk:
- OGG/Vorbis Support
 - pk3 Support (ungetestet)
2009-10-03 16:06:45 +00:00
Yamagi Burmeister
327c0352d2 Einen üblen Soundcrash entfernt 2009-03-10 20:29:15 +00:00
Yamagi Burmeister
0505ea55a9 Der Sound soll auch ohne rumeditieren mit Alsa laufen 2009-03-10 17:36:01 +00:00
Yamagi Burmeister
05e630158a Dateien des Clients neu angeordnet 2009-03-03 13:43:32 +00:00