Commit graph

82 commits

Author SHA1 Message Date
Christoph Oelckers
e04055dbb2 - added multiple message levels for 'developer' CVAR so that the important stuff won't get drowned in pointless notification spam that's of no use to anyone.
- made 'developer' CVAR persist across launches and added some menu entries for it.
- added checks for 'developer' to ACS's CheckInventory function.
2016-08-28 09:55:04 +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
Christoph Oelckers
a7fd04a235 Merge branch 'master' of https://github.com/kcat/zdoom 2016-05-18 11:48:27 +02:00
Chris Robinson
fe966916d7 Set head-relative for sources near the listener
This matches the behavior of the FMOD backend
2016-05-16 17:02:39 -07:00
Christoph Oelckers
ebca170e73 - fixed a few warnings in OpenAL code. 2016-05-13 10:07:18 +02:00
Chris Robinson
8334189d66 Merge remote-tracking branch 'zdoom/master' 2016-05-05 12:55:16 -07:00
Chris Robinson
fa46965a71 Check for OpenAL device errors after pausing/resuming the device 2016-05-05 21:00:30 +02:00
Chris Robinson
0b7b78c5d2 Better handle channel configs when monoizing in LoadSound 2016-05-05 21:00:29 +02:00
Chris Robinson
e298f8389b Avoid divide-by-0 when the area sound radius is less than the max distance 2016-05-05 21:00:29 +02:00
Chris Robinson
66c61a7c8b Set the appropriate start offset for non-3D sounds too 2016-05-05 21:00:28 +02:00
Chris Robinson
26a8a8a1ba Pause OpenAL processing using ALC_SOFT_pause_device when inactive 2016-05-05 21:00:28 +02:00
Chris Robinson
e1c8890c5e Set the appropriate start offset for restarted sounds 2016-05-05 21:00:27 +02:00
Chris Robinson
c3cef91a4f Properly sum the channels being downmixed to mono 2016-05-05 21:00:27 +02:00
Chris Robinson
12c9281a7e Avoid redundantly setting DistanceScale 2016-05-05 21:00:26 +02:00
Chris Robinson
bf5ac9b476 Use AL_EXT_SOURCE_RADIUS for area sounds 2016-05-05 21:00:26 +02:00
Chris Robinson
55294c5806 Use the correct OpenAL lib name on Linux 2016-05-05 21:00:25 +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
Christoph Oelckers
51b05d331d - replaced AActor::vel and player_t::Vel with a floating point version.
- Converted P_MovePlayer and all associated variables to floating point because this wasn't working well with a mixture between float and fixed.

Like the angle commit this has just been patched up to compile, the bulk of work is yet to be done.
2016-03-20 00:54:18 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers
e42dbb5087 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/sound/oalsound.cpp
2016-02-13 14:56:03 +01:00
Christoph Oelckers
340faef1ec - fixed a few 64-bit warnings. 2016-02-13 13:37:28 +01:00
alexey.lysiuk
ce8b2974a3 Handle inability of OpenAL implementation to return number of available sources
OpenAL specification doesn't require alcGetIntegerv() to return meaningful values for ALC_MONO_SOURCES and ALC_MONO_SOURCES.
At least Apple's OpenAL implementation returns zeroes, although it can generate reasonable number of sources.
2016-02-13 11:11:02 +02:00
Christoph Oelckers
dde9336235 - silence floating point conversion warnings in oalsound.cpp 2016-02-10 11:29:32 +01:00
Braden Obrzut
f33993dcb5 - Load OpenAL at runtime for all platforms because I can't think of a good reason not to handle them all the same right now. 2016-02-09 22:40:19 -05:00
Christoph Oelckers
ee045371a3 - On Windows, use LoadLibrary/GetProcAddress to load OpenAL function addresses.
The reason for this is that on my system, the static or delay loaded method always picks the (obsolete) system-installed OpenAL version (needed for some old games) which is not wanted here if there's another one in the local ZDoom directory.
This also removes the dependency on the broken import library that comes with OpenAL Soft which causes compile errors with more modern MSVC compilers on default settings.
2016-02-01 14:02:25 +01:00
Christoph Oelckers
43dff3021b - fixed: The OpenAL backend ignored PlaySound's 'volume' parameter. 2015-11-25 13:00:56 +01:00
Marrub
9e1a82a830 fix menus muting themselves when the volume is changed 2015-07-10 08:45:15 +00:00
Edoardo Prezioso
346fcf584c - Fixed C++11 warnings from recent commits. 2015-04-27 15:22:09 +02:00
Christoph Oelckers
aecff68a4d - cleanup of sound system startup and menu handling:
* added global functions that check whether FMod and OpenAL are present, without initializing the sound backend.
* make sound init code more fault tolerant. It will now try to switch between FMod and OpenAL if the currently active one cannot be found but the other one can.
* added 'ifoption' checks for sound backend to menu code.
* only show sound backends which are present and hide the options for the ones which are not.
2015-04-26 12:13:21 +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
12118550d2 - fixed some warnings in OpenAL code. 2015-04-25 10:34:47 +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
4b68891de7 Rename 'near', because microsoft 2014-09-14 11:15:32 -07:00
Chris Robinson
d43226631d Set reverb density based on the environment size 2014-07-15 23:04:53 -07:00
Chris Robinson
90fa215da2 Replace another std::vector with a TArray 2014-06-28 23:30:58 -07:00
Chris Robinson
ae95a2d5cf Fix creating effect map entries
TMap apparently doesn't clear the memory for new entries like std::map...
2014-06-28 05:41:11 -07:00
Chris Robinson
7f3be7bf14 Show the name of unsupported sound formats with OpenAL 2014-06-28 01:25:25 -07:00
Chris Robinson
afcada4a3b Remove an unused field 2014-06-28 00:46:45 -07:00
Chris Robinson
7908116fef Use a separate function to update an openal stream's volume 2014-06-28 00:37:12 -07: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
6f8545e694 Use a TArray for SoundDecoder::readAll 2014-06-27 21:51:05 -07:00
Chris Robinson
0adfdf31dd Fix calling SetPosition when not playing 2014-06-25 21:50:52 -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
c6bb52c866 Get the length from sounds when possible 2014-06-25 21:14:35 -07:00
Chris Robinson
fd25ec2a62 Implement GetPosition for OpenAL streams, and display it in the stats 2014-06-25 20:03:24 -07:00
Chris Robinson
7f5b538110 Implement SetPosition for OpenAL streams 2014-06-25 04:59:18 -07:00
Chris Robinson
9c12abeb2d Better report the amount buffered in an OpenAL stream 2014-06-25 04:53:08 -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