1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-26 18:35:20 +00:00

291 Commits

Author SHA1 Message Date
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
Chris Robinson
dc6354b2f9 Add functions to get string names for sample types and channel configs 2012-03-19 02:31:40 -07:00
Chris Robinson
4a0b5b7918 Increase the sound stream thread sleep time to 50ms 2012-03-19 02:19:13 -07:00
Chris Robinson
4698e8c0a2 Make the sound stream thread object per-device 2012-03-19 02:15:08 -07:00
Chris Robinson
2c27827e4f Add some comment markers to the OpenAL sound classes 2012-03-19 01:33:33 -07:00
Chris Robinson
e234b90173 Use a loop to find the OpenAL format from the decoder format 2012-03-19 00:49:52 -07:00
Chris Robinson
6a256d3993 Make sure the OpenAL stream list is clear before shutting down 2012-03-19 00:38:56 -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
Michael Papageorgiou
d10b18b0f3 Removed a couple of warnings with nosound 2012-03-18 22:50:52 +02:00
Michael Papageorgiou
f567950e25 Fix for the --nosound crash 2012-03-18 22:38:53 +02:00
Chris Robinson
b938fd7b36 Make the sound output init return void 2012-03-18 12:19:54 -07:00
Chris Robinson
1965b5bc79 Rename some Sound class member functions 2012-03-18 12:03:15 -07:00
Chris Robinson
403e51cef3 Move the sample type and channel config enums to MWSound and give use appropriate names for the values 2012-03-18 11:56:54 -07:00
Chris Robinson
efae7dfe83 Rename some sound decoder class member variables and functions 2012-03-18 11:47:15 -07:00
Chris Robinson
9656456d30 Make sure the sound decoders are closed when they're finished with 2012-03-18 11:34:23 -07:00
Chris Robinson
362e254720 Rename some more sound class member variables and functions 2012-03-18 11:30:53 -07:00
Chris Robinson
162642e672 Prefix some SoundManager class member variables 2012-03-18 11:17:45 -07:00