1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 04:19:55 +00:00
Commit graph

210 commits

Author SHA1 Message Date
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
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
Chris Robinson
2f92559fc7 Use OpenAL's linear attenuation model
We should use the inverse distance clamped model (the default), but we first
need to handle muting sounds that are beyond their max distance. Linear
attenuation doesn't give a proper rolloff, but it makes the sounds silent at
max distance.
2012-03-18 09:05:38 -07:00
Chris Robinson
a256b9a7b0 Remove a comment about Audiere 2012-03-18 08:42:55 -07:00
Chris Robinson
3fea3e7d25 Fix stereo files with libsndfile 2012-03-17 23:47:12 -07:00
Chris Robinson
f7ac94d686 Pass the new position to the sound update method 2012-03-17 23:41:45 -07:00
Chris Robinson
44fc204864 Avoid passing a sound decoder to the play methods 2012-03-17 23:30:43 -07:00
Chris Robinson
ddfa906922 Add a missing include 2012-03-17 22:45:28 -07:00
Chris Robinson
a69ec91242 Remove some unnecessary wrappers and do some small cleanups 2012-03-17 22:13:57 -07:00
Chris Robinson
a91085a1b9 Add a couple comments 2012-03-17 10:45:11 -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
cbeff4657f Pass the loop and untracked flags when playing a 3d sound 2012-03-17 10:16:22 -07:00
Chris Robinson
87adf6002a Fix a copy-paste typo in the openal output 2012-03-17 09:57:39 -07:00
Chris Robinson
5563f583ff Add and implement methods to update tracked sounds on an object 2012-03-17 09:51:03 -07:00
Chris Robinson
979ae89aab Pass volume and pitch parameters to streamed sounds 2012-03-17 09:37:41 -07:00
Chris Robinson
cac07d0fbf Remove some unnecessary methods 2012-03-17 09:27:31 -07:00
Chris Robinson
e49a090af7 Remove unnecessary hack 2012-03-17 09:16:09 -07:00
Chris Robinson
d57051375d Implement non-streaming sounds with OpenAL 2012-03-17 09:15:47 -07:00
Chris Robinson
9adf1e8461 Keep a handle on played sounds 2012-03-17 08:02:46 -07:00
Chris Robinson
656863ec6e Add functions to play sounds 2012-03-17 06:51:44 -07:00
Chris Robinson
a46f8ced05 Keep the sound output's listener updated with the camera position 2012-03-17 06:18:59 -07:00
Chris Robinson
2dabdcb9e5 Add a function to update the sound listener 2012-03-17 04:22:54 -07:00
Chris Robinson
2429755bf1 Make the sound's Play method return void 2012-03-17 03:20:43 -07:00
Chris Robinson
caf5d71d44 Make the sound decoder's Open method return void
Errors are thrown, not returned
2012-03-17 03:18:28 -07:00
Chris Robinson
1b41987e18 Move OpenAL_SoundStream function definitions out of the class 2012-03-17 03:15:07 -07:00
Chris Robinson
2f6b73d461 Prevent streamMusic from throwing an exception 2012-03-17 03:06:35 -07:00
Chris Robinson
207d7dd89e Stop and delete the current music before deleting the sound output 2012-03-17 03:01:51 -07:00
Chris Robinson
1ade01edc8 Add a function to stream sounds 2012-03-17 02:55:08 -07:00
Chris Robinson
9cf42f6d0f Flesh out the sound decoder a bit more 2012-03-17 02:51:46 -07:00
Chris Robinson
637617056b Make a skeleton Sound class 2012-03-17 02:45:18 -07:00
Chris Robinson
246b0266fb Remove references to Audiere. It's not supported for now. 2012-03-17 00:11:59 -07:00
Chris Robinson
46cd84aac5 Add a skeleton ffmpeg decoder 2012-03-16 23:59:21 -07:00
Chris Robinson
1322b1e160 Move Sound_Output's definition to a separate header 2012-03-16 23:40:07 -07:00