Chris Robinson
7008bd2fe1
Store some sound properties in the Sound class
2012-03-28 04:58:47 -07:00
Chris Robinson
c072babd17
Better handle bad OpenAL source counts
2012-03-28 04:56:40 -07:00
Chris Robinson
089c340935
Switch the map so the SoundPtr is used as a key
2012-03-28 04:37:00 -07:00
Chris Robinson
c6c06f1140
Return SoundPtr objects from the playSound and streamSound methods
2012-03-27 05:59:09 -07:00
Chris Robinson
f0db2ab82f
Split stopSound3D into separate functions to deal with stopping all sounds on an object
2012-03-27 03:20:50 -07:00
Chris Robinson
033faba9c4
Make a function parameter const
2012-03-27 03:00:04 -07:00
Chris Robinson
c2611d035c
Use a pair to match the MWWorld::Ptr object and sound ID, instead of nested maps
2012-03-27 02:50:45 -07:00
Chris Robinson
0d552c10bc
Use an empty MWWorld::Ptr object for non-3D sounds
2012-03-26 04:10:47 -07:00
Chris Robinson
7b3ecc290e
Fix compilation with older OpenAL headers
2012-03-26 01:12:06 -07:00
Chris Robinson
3e98e28059
Use a better method to get a more even randomization
2012-03-24 21:05:03 -07:00
Chris Robinson
71d3f9bd51
Get the object reference's position once when updating its sounds
2012-03-24 08:12:04 -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
fa70a72b75
Remove some unused sound manager fields and constructor parameters
2012-03-24 00:22:54 -07:00
Chris Robinson
1ccddefe28
Properly report the default device when opening sound fails
2012-03-23 00:31:01 -07:00
Chris Robinson
2f0af42261
Use the ALC_ENUMERATE_ALL_EXT extension with OpenAL when available
2012-03-22 23:51:00 -07:00
Chris Robinson
277597c567
Fix DEFAULT_OUTPUT for OpenAL_Output
2012-03-22 18:44:55 -07:00
Chris Robinson
2e28819243
Avoid trying to play an ambient sound if there's no chance for any to play
2012-03-22 18:39:10 -07:00
Chris Robinson
bac6df5563
Avoid leaking an ffmpeg stream
2012-03-21 23:32:24 -07:00
Chris Robinson
15317796bf
Handle the wav -> mp3 extension conversion in the sound output backend
2012-03-21 22:49:40 -07:00
Chris Robinson
f11e3e39a1
Add an enumerate method to the sound output interface
2012-03-21 20:15:01 -07:00
Chris Robinson
366c97c492
Use a separate method to check for finished sounds and update the listener
2012-03-21 19:24:38 -07:00
Chris Robinson
e6fe1c0261
Remove a mostly unneeded wrapper function
2012-03-21 19:08:11 -07:00
Chris Robinson
aecc77a73c
Replace the sound file extension when opening fails
...
This should make it more efficient to lookup a sound instead of checking each
time it's played. A better method would perhaps be to check if the resource
exists when the ESM is loaded and replace it then as needed.
2012-03-21 18:42:48 -07:00
Chris Robinson
8056a7f20b
Throw an exception when looking up a sound instead of returning an empty string
2012-03-21 18:20:32 -07:00
Chris Robinson
9a139f511f
Avoid redefining SOUND_IN
2012-03-21 15:29:05 -07:00
Chris Robinson
56c3b988cc
Avoid copying the region when looking for a sound to play
2012-03-21 15:19:40 -07:00
Chris Robinson
8c5f85ca83
Use a local variable to mark sound streams as finished while processing
...
This avoids a race condition where the source can underrun while the final
buffers are being queued and the sound can be detected as stopped
2012-03-21 14:49:29 -07:00
Chris Robinson
6a85ef1229
Set Ogre's data stream to NULL when closing the audio file
2012-03-21 14:46:29 -07:00
Chris Robinson
0d973ac8ff
Use the vector's data field instead of the address of the first element
...
Same thing really, but less convoluted
2012-03-21 14:38:37 -07:00
Chris Robinson
fd8326e958
Better handle some ffmpeg errors
2012-03-21 12:20:36 -07:00
Chris Robinson
7b22ee6fd1
Use for_each to clear the ffmpeg stream packets
2012-03-20 21:46:12 -07:00
Chris Robinson
2989a1e06e
Improve ffmpeg failure messages
2012-03-20 18:57:11 -07:00
Chris Robinson
26a441f29a
Add a readAll method to the sound decoder, for potentially more efficient reading
2012-03-20 17:57:28 -07:00
Chris Robinson
deb473b9ae
Implement the ffmpeg decoder
2012-03-20 17:05:19 -07:00
Chris Robinson
9a48002025
Fix compilation of the FFmpeg decoder
2012-03-20 14:13:58 -07:00
Chris Robinson
e48745b68e
Fix streamMusic's path lookup
2012-03-20 12:39:49 -07:00
Chris Robinson
fc27d5cc19
Restore music playback
2012-03-20 11:31:13 -07:00
Chris Robinson
5ae47f783e
Use the sound manager's update to make sure music is still playing
2012-03-20 10:46:10 -07:00
Chris Robinson
0261aac518
Use Ogre's resource group manager to handle sound files
2012-03-20 10:34:36 -07:00
Chris Robinson
80dbf82a74
Explicitly stop sounds instead of relying on their deletion to do it
2012-03-20 07:22:17 -07:00
Chris Robinson
74e79bb4af
Merge remote branch 'zini/master' into sound-rewrite
...
Conflicts:
apps/openmw/mwsound/soundmanager.cpp
apps/openmw/mwsound/soundmanager.hpp
2012-03-20 06:17:02 -07:00
Chris Robinson
fd37a4827c
Enforce a 15MB limit on the sound buffer cache
2012-03-19 13:19:22 -07:00
Chris Robinson
04638516b2
Check for stopped active sounds too and remove them
2012-03-19 12:08:40 -07:00
Chris Robinson
6c45d6668b
Cache OpenAL buffers for easy reuse
2012-03-19 10:33:06 -07:00
Chris Robinson
91821ccd8c
Add the sound stream to the thread after resetting the mIsFinished flag
2012-03-19 09:08:59 -07:00
Chris Robinson
db46bf39b3
Add a rewind method to the sound decoder
2012-03-19 08:48:25 -07:00
Chris Robinson
afa2cb6de7
Stop trying to read decoded audio once it's finished
2012-03-19 07:51:28 -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
8f9d4ff841
Use 6 125ms buffers for OpenAL streams
2012-03-19 05:29:04 -07:00