Nikolay Kasyanov
b6aa8925f4
(Temporary) workaround for broken OpenAL implementations that doesn't return meaningful max counts of sources
2012-03-30 00:12:38 +04:00
Nikolay Kasyanov
20f976ddc7
probably openal initialization fix
2012-03-29 03:02:26 +04:00
Chris Robinson
bedf56a237
Merge remote branch 'zini/next' into sound
2012-03-28 06:27:34 -07:00
Chris Robinson
be337ef7cc
Return SoundPtr objects from playSound[3D]
...
Note that each Sound object currently contains "precious" resources even after
the sound is stopped. The reference should be reliquished as soon as it's no
longer needed (the SoundManager will make sure the sound continues to play
until it's finished).
2012-03-28 06:08:25 -07:00
Chris Robinson
293f33914e
Use a deque fpr OpenAL's free sources
2012-03-28 05:35:51 -07:00
Chris Robinson
a3291ef360
Add a sound method to update the volume
2012-03-28 05:19:35 -07:00
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
Marc Zinnschlag
a996cfed71
Merge remote branch 'ace/win-fixes' into next
2012-03-27 20:11:46 +02: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
Alexander "Ace" Olofsson
55f1053b4f
Windows fixes for compiling and linking
2012-03-27 00:36:53 +02:00
Lukasz Gromanowski
be94da1527
Issue #225 : Initialize class members in constructor.
2012-03-27 00:34:06 +02: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