Commit graph

40 commits

Author SHA1 Message Date
Christoph Oelckers
c77487dab8 - moved the menu.h include from oalsound.h to oalsound.cpp.
The menu is a very 'dirty' header, and forcing it to be pulled in with something entirely unrelated is not good - even though only two files include oalsound.h.
2019-01-31 19:44:04 +01:00
Christoph Oelckers
b939836846 - renamed FileRdr back to FileReader. 2018-03-11 19:29:37 +01:00
Christoph Oelckers
5fa63c396d - sound code and most of texture code converted to FileRdr.
This allowed to remove a lot of bad pointer voodoo in the music loader, because the new class does not allow duplication of the reader object
2018-03-10 18:45:11 +01:00
alexey.lysiuk
3ab4a2238e Removed some remains of sound system MIDI device 2017-05-13 16:45:02 +03:00
Chris Robinson
e1fc33c38f Don't downmix sounds when AL_SOFT_source_spatialize is available 2017-05-12 21:38:45 +02:00
Chris Robinson
996ce4497d Add a resampler option for the OpenAL backend 2017-05-06 18:07:31 +02:00
Chris Robinson
aae6ded2dd Add snd_hrtf back in to allow enabling HRTF again
It's now an Int type instead of Bool. Older config files that had it set to
"true" or "false" will interpret it as 0, which is Auto (the default).
2017-04-30 18:41:39 +02:00
Christoph Oelckers
21af612224 - avoid double loading sound data for monoization. 2017-04-26 20:51:06 +02:00
Chris Robinson
f97efefe7e Set the source gain to 0 before stopping it
Stopping a source in the middle of playback can causing undesirable "popping"
from a sudden change in amplitude. Setting the source gain to 0 gives OpenAL
the opportunity to ramp the source's output to 0, where it can be safely
stopped without causing a sudden change in amplitude.
2017-04-24 13:12:43 +02:00
Christoph Oelckers
1f69a000df - removed redundant sound includes. 2017-04-18 20:55:40 +02:00
Christoph Oelckers
7405f541e8 - allow dynamic loading of all sound related libraries without providing any SDK at all.
The needed headers are now included in the repo, which for these libraries is possible thanks to a stable ABI (at least on Windows, the other platforms still need to be checked but the headers only add, never remove or change existing content.)
The big advantage of this setup is that it allows building the project on Windows without any necessary setup - all that needs to be provided is the DLLs from the binary package.
This still requires some fixes for macOS and Linux. On MacOS the proper library names are missing and the ones for Linux are not verified. Both platforms should work, though, if the dynamic loading is disabled.
2017-04-17 17:05:09 +02:00
Christoph Oelckers
d2beacfc5f - except for DWORD, all homegrown integer types are gone - a handful were left where they represent genuine Windows types. 2017-03-09 19:54:41 +01:00
Christoph Oelckers
ba0f5a3f94 - most WORD and SWORD are gone. 2017-03-08 18:55:55 +01:00
alexey.lysiuk
54ca55f070 Default MIDI device is now created by sound backend
OpenAL backend now plays music by default
It uses WinMM device on Windows and OPL on other platforms
2017-03-08 11:04:02 +02:00
alexey.lysiuk
5348a15b75 Added option to control dynamic loading of OpenAL
Dynamic loading is enabled by default, set DYN_OPENAL to OFF to link with static or dynamic library

# Conflicts:
#	src/sound/oalsound.cpp
#	src/sound/oalsound.h
2016-05-29 14:25:04 +02:00
Chris Robinson
8334189d66 Merge remote-tracking branch 'zdoom/master' 2016-05-05 12:55:16 -07:00
Chris Robinson
26a8a8a1ba Pause OpenAL processing using ALC_SOFT_pause_device when inactive 2016-05-05 21:00:28 +02:00
Chris Robinson
bf5ac9b476 Use AL_EXT_SOURCE_RADIUS for area sounds 2016-05-05 21:00:26 +02:00
Chris Robinson
0d402618a3 Load mono copies of multichannel sounds that are used in 3D 2016-05-01 21:44:03 +02:00
Chris Robinson
6e25d3f618 Use a background thread for processing OpenAL streams 2016-04-26 06:12:56 -07:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
alexey.lysiuk
90dd6b61b4 Fixed build with Creative Labs OpenAL SDK
Tested with
* Creative OpenAL from https://www.openal.org/downloads/OpenAL11CoreSDK.zip
* OpenAL Soft from http://kcat.strangesoft.net/openal-binaries/openal-soft-1.17.1-bin.zip
2016-02-02 10:29:23 +02:00
Christoph Oelckers
6bb79be85c - got rid of std::auto_ptr, courtesy of Blzut3's patch. 2015-04-25 17:50:57 +02:00
Christoph Oelckers
d880783784 - make OpenAL and the decoder libraries delay loaded so that ZDoom can still start without them being present.
This required the addition of a few exception handlers so to avoid #ifdef overuse I also added some #defines for non-Windows systems that allow using __try and __except directly in the code without #ifdef'ing them out.
2015-04-25 12:25:10 +02:00
Christoph Oelckers
dccd35ef29 - uncoupled OpenAL music updates from UpdateSounds.
UpdateSounds will not be called during screen wipes and the entire setup of this function suggests that this is not advisable at all.
The OpenAL stream updates were done deep inside this function implicitly.
This caused music to stop while a wipe was in progress. So in order to allow uninterrupted music playback during screen wipes the music updates need to be handled separately from sound updates and be called both in the main loop and the wipe loop.

I think that the OpenAL music updating should be offloaded to a separate thread but at least it's working now without causing interruptions during wipes.
2015-04-25 10:26:14 +02:00
Chris Robinson
c73d97af44 Use TArray and TMap instead of std::vector and std::map 2014-06-28 00:33:15 -07:00
Chris Robinson
a6900b48ba Use AL_SOFT_deferred_updates to sync updates when availeble 2014-06-25 21:48:13 -07:00
Chris Robinson
0017e1e6e8 Use a FileReader to handle music resources and audio decoding
Instead of the previous method where there'd be a filename and offset, and/or a
memory pointer, this uses a class to access resource data regardless of its
underlying form.
2014-06-25 04:25:36 -07:00
Chris Robinson
42fdc3c059 Use structs to store available extensions 2014-06-19 23:49:46 -07:00
Chris Robinson
9f493fca5f Move the generic DecodeSample implementation to the base class 2014-06-19 22:42:12 -07:00
Chris Robinson
72ddc0d935 Remove a non-existent friend class 2014-06-19 22:33:39 -07:00
Chris Robinson
b94a2949e5 Don't use air absorption for being underwater 2014-06-18 23:41:45 -07:00
Chris Robinson
0e21057a2a Merge remote-tracking branch 'origin/openal' into openal
Conflicts:
	src/sound/fmodsound.cpp
	src/sound/oalsound.cpp
	src/sound/oalsound.h
2014-06-15 09:59:24 -07:00
Braden Obrzut
2142e857a9 - Applied VoidMage's OpenAL patch. 2013-10-23 19:41:58 -04:00
Chris Robinson
69af01d629 Use SDL_sound when available to decode files 2013-06-30 07:45:57 -07:00
Chris Robinson
5d1cd7b7fe Small fixups
find -> std::find
AL_EXT_loop_points -> AL_SOFT_loop_points
2013-06-30 01:32:48 -07:00
Chris Robinson
4f2e367ec6 Remove GStreamer support 2013-06-30 01:07:09 -07:00
Chris Robinson
b31a729ab8 Fix compilation with OpenAL 2013-06-29 22:44:46 -07:00
Christoph Oelckers
d64fcbd01e - applied Chris's latest OpenAL patch.
SVN r2781 (openal)
2010-09-15 13:45:08 +00:00
Christoph Oelckers
5603c70574 [OpenAL branch]
- apply Chris's latest patch.




SVN r2534 (openal)
2010-08-13 07:07:26 +00:00