Commit graph

48 commits

Author SHA1 Message Date
Chris Robinson
669b7a2295 Batch update changes together, when possible
Certain OpenAL implementations, including Rapture3D, Creative's hardware
drivers, and more recent versions of OpenAL Soft, can batch together changes so
that they all occur at once, avoiding potential discontinuities with one sound
being changed before another, or the listeenr being changed before sounds are.

On other implementaitons, this is a no-op and maintains existing behavior.
2015-11-25 04:24:26 -08:00
Chris Robinson
fbfcc4050f Stream voice clips
Voices tend to be a bit long, and not individually replayed often. So it's
better to stream them instead of loading theminto a sound buffer. The loudness
data is very small, though, so that can be kept buffered indefinitely.
2015-11-25 04:24:24 -08:00
Chris Robinson
eee6a19e31 Add a method to stream sounds in 3D 2015-11-25 04:24:24 -08:00
Chris Robinson
16f72886e9 Use separate lists for openal sounds and streams 2015-11-25 04:24:23 -08:00
Chris Robinson
22a6811425 Limit the sound buffer cache to 15MB 2015-11-25 04:24:23 -08:00
Chris Robinson
495e138907 Load sound loudness and store it with the Sound_Buffer
Still not used for say yet, though
2015-11-25 04:24:22 -08:00
Chris Robinson
4571218827 Load the sound as needed and pass it directly to the play methods
This breaks say sounds, loudness handling, and the cache limit. Fixes are
forthcoming.
2015-11-25 04:24:22 -08:00
scrawl
7a3bc69df7 Readded sound listener 2015-05-12 19:02:56 +02:00
dteviot
407cd50890 fixed warning C4099:
type name first seen using 'class' now seen using 'struct'
2015-03-06 21:36:42 +13:00
scrawl
a59620f643 Cache loudness vector in the buffer cache 2014-07-29 14:32:44 +02:00
scrawl
598c0c4ae7 Implement mouth animation for NPCs based on say sound (Fixes #642) 2014-07-29 01:15:22 +02:00
PLkolek
f297c21e4d Old door sound fades out on door open/close. Door sound is synchronised to angle on action. 2013-07-31 15:46:23 +02:00
Chris Robinson
85850c7440 Fix DEFAULT_OUTPUT declaration 2012-12-18 10:43:04 -08:00
Chris Robinson
3b7edae7c3 Don't hold a list of all sound sources 2012-12-18 05:19:32 -08:00
Chris Robinson
2f8daec379 Allow pausing only certain types of sounds 2012-12-18 04:19:35 -08:00
Chris Robinson
dd3e568a00 Set the sound properties at initialization 2012-12-17 23:35:20 -08:00
Chris Robinson
20321c4552 Keep track of the actual active sounds 2012-12-17 21:50:01 -08:00
Chris Robinson
86bf6388c6 Pass a decoder to the playStream sound output method 2012-12-12 22:32:02 -08:00
Chris Robinson
2c1eceb9f0 Add methods to pause and stop all playing sounds (and music) 2012-12-12 02:33:12 -08:00
Chris Robinson
973b5faf25 Keep track of all allocated sources 2012-12-12 01:32:16 -08:00
Marc Zinnschlag
35d099a638 disabling gcc extensions 2012-10-09 17:10:25 +02:00
Marc Zinnschlag
6bd48d12af Issue #107: SoundManager is accessed only through the interface class from now on 2012-08-09 14:33:21 +02:00
Chris Robinson
cbf6c0404a Implement a basic underwater sound environment 2012-03-31 10:06:12 -07:00
Chris Robinson
575474ff69 Pass the mode flags to the sound output play methods 2012-03-31 08:14:39 -07:00
Chris Robinson
b01289128b Split OpenAL_Sound into separate classes for 2D and 3D sounds 2012-03-31 01:15:27 -07:00
Chris Robinson
fc167dbc83 Pass Ogre Vector3s to playSound3D and updateListener 2012-03-30 11:42:11 -07:00
Chris Robinson
fefc8f86ab Remove the unused streamSound3D method 2012-03-30 11:11:07 -07:00
Chris Robinson
293f33914e Use a deque fpr OpenAL's free sources 2012-03-28 05:35:51 -07:00
Chris Robinson
c6c06f1140 Return SoundPtr objects from the playSound and streamSound methods 2012-03-27 05:59:09 -07:00
Chris Robinson
5cb90ab704 Add some dummy copy constructors and assignment operators to prevent implicit versions from being used 2012-03-24 03:49:03 -07:00
Chris Robinson
277597c567 Fix DEFAULT_OUTPUT for OpenAL_Output 2012-03-22 18:44:55 -07:00
Chris Robinson
f11e3e39a1 Add an enumerate method to the sound output interface 2012-03-21 20:15:01 -07:00
Chris Robinson
fd37a4827c Enforce a 15MB limit on the sound buffer cache 2012-03-19 13:19:22 -07:00
Chris Robinson
6c45d6668b Cache OpenAL buffers for easy reuse 2012-03-19 10:33:06 -07:00
Chris Robinson
4f69972a9c Add a method to stream a sound in 3D 2012-03-19 07:28:03 -07:00
Chris Robinson
ae8218bf03 Allocate OpenAL sources when opening the device
This allows sources to be more efficiently retrieved and returned
2012-03-19 07:11:01 -07:00
Chris Robinson
4698e8c0a2 Make the sound stream thread object per-device 2012-03-19 02:15:08 -07:00
Chris Robinson
7194114669 Use a background thread to keep OpenAL streams fed
Maybe this could be moved to the SoundManager instead of in OpenAL, but it's
good enough for now.
2012-03-18 14:42:19 -07:00
Chris Robinson
b938fd7b36 Make the sound output init return void 2012-03-18 12:19:54 -07:00
Chris Robinson
362e254720 Rename some more sound class member variables and functions 2012-03-18 11:30:53 -07:00
Chris Robinson
44fc204864 Avoid passing a sound decoder to the play methods 2012-03-17 23:30:43 -07:00
Chris Robinson
7160d20db3 Be more consistent with the vector orientations given the sound handler 2012-03-17 10:36:34 -07:00
Chris Robinson
979ae89aab Pass volume and pitch parameters to streamed sounds 2012-03-17 09:37:41 -07:00
Chris Robinson
656863ec6e Add functions to play sounds 2012-03-17 06:51:44 -07:00
Chris Robinson
2dabdcb9e5 Add a function to update the sound listener 2012-03-17 04:22:54 -07:00
Chris Robinson
1ade01edc8 Add a function to stream sounds 2012-03-17 02:55:08 -07:00
Chris Robinson
1322b1e160 Move Sound_Output's definition to a separate header 2012-03-16 23:40:07 -07:00
Chris Robinson
45b612ab3b Add a skeleton output classs using OpenAL 2012-03-16 22:12:17 -07:00