Christoph Oelckers
6552e5a7a1
- fixed: 'stat music' tried to access a non-existent stream decoder for any music played through Timidity++ on OpenAL.
2017-01-10 22:16:32 +01:00
Christoph Oelckers
85ff172ee3
Merge remote-tracking branch 'remotes/origin/master' into zscript
2016-11-14 15:03:14 +01:00
Braden Obrzut
9342898361
- Added support for GTK3 (thanks to "MineyMe" and edward-san)
...
- Replaced GTK/OS X (note different from Cocoa) clipboard code with SDL clipboard API.
- Removed requirement to link to GTK in order to compile with GTK support.
- GTK is no longer init'd if the GTK IWAD picker is not used.
- Our usage of GTK is such that the dynamic loader can work with both GTK2 and GTK3 depending on what's installed.
- Since we're accumulating a lot of library loaders I've built a generic interface as FModule which replaces TOptWin32Proc and the loaders in the OpenAL and Fluidsynth code.
2016-11-12 18:32:09 -05:00
Christoph Oelckers
b1a83bfd26
- started with cleanup and separation of DECORATE code.
...
* everything related to scripting is now placed in a subdirectory 'scripting', which itself is separated into DECORATE, ZSCRIPT, the VM and code generation.
* a few items have been moved to different headers so that the DECORATE parser definitions can mostly be kept local. The only exception at the moment is the flags interface on which 3 source files depend.
2016-10-12 19:22:33 +02:00
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
Chris Robinson
075c5d872d
Always use the pitch multiplier when underwater
2014-06-22 22:22:45 -07:00
Chris Robinson
b2f9430fb1
Use the correct diffusion value for reverb
...
I don't know what the Density and Diffusion values correspond to, but
EnvDiffusion is the actual diffusion setting.
2014-06-22 19:38:47 -07:00
Chris Robinson
a434af92ee
Handle sounds marked as 'area sounds'
...
Note, the area radius is 128 units for it to actually do something, unlike FMOD
where it's only 32.
2014-06-22 19:35:09 -07:00
Chris Robinson
845e369b87
Don't set a room rolloff factor
...
The reverb engine already handles an initial attenuation based on the
attenuation of the dry path.
2014-06-20 05:03:20 -07:00
Chris Robinson
f0c9aae670
Rework manual rolloff handling
...
For distance models OpenAL doesn't handle, alter the source's distance to get
the appropriate attenuation instead of the source's gain.
2014-06-20 04:38:48 -07:00
Chris Robinson
ef7ce41d07
Don't purge sources in an initial state
2014-06-20 01:17:48 -07:00
Chris Robinson
fb07f7ef07
Cast OpenAL IDs to/from void*
2014-06-20 01:12:47 -07:00
Chris Robinson
906b828d87
Partially implement OpenALSoundRenderer::SetInactive
2014-06-20 00:41:19 -07:00
Chris Robinson
42fdc3c059
Use structs to store available extensions
2014-06-19 23:49:46 -07:00
Chris Robinson
0f234fb36d
Remove an unused function
2014-06-19 23:10:36 -07:00
Chris Robinson
9f493fca5f
Move the generic DecodeSample implementation to the base class
2014-06-19 22:42:12 -07:00
Chris Robinson
a661797aa8
Be less noisey about loop points
2014-06-19 22:31:19 -07:00
Chris Robinson
73d8659f23
Remove an unnecessary cast
2014-06-19 22:21:05 -07:00
Chris Robinson
07a50c604e
Use the correct formatter type
2014-06-19 22:13:20 -07:00
Chris Robinson
e39165655d
Don't call the sfx volume cvar callback in the OpenALSoundRenderer constructor
...
I_InitSound already does that after creating it.
2014-06-19 21:51:16 -07:00
Chris Robinson
14618cbf30
Remove use of SDL_sound
2014-06-19 04:33:00 -07:00
Chris Robinson
b38589e2dc
Implement and use a libsndfile decoder
2014-06-19 04:13:42 -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
Chris Robinson
160e70f8f2
Fix getting the actual device name
2014-06-15 09:27:00 -07:00
Braden Obrzut
2142e857a9
- Applied VoidMage's OpenAL patch.
2013-10-23 19:41:58 -04:00
Chris Robinson
665d685a44
Implement GetStats for OpenAL streams
2013-06-30 20:31:41 -07:00
Chris Robinson
c4492f88ee
Make sure streams are "pumped"
2013-06-30 08:04:41 -07:00
Chris Robinson
ba3cc38d09
Support float stream callbacks with AL_EXT_FLOAT32
2013-06-30 08:04:08 -07:00
Chris Robinson
69af01d629
Use SDL_sound when available to decode files
2013-06-30 07:45:57 -07:00
Chris Robinson
99209c4a2a
Remove an unnecessary function
2013-06-30 04:47:10 -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
f3d05e2699
- applied Chriss OpenAL patch to make it uzable without GStreamer.
...
SVN r2984 (openal)
2010-11-07 07:17:57 +00: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