1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-12 21:39:26 +00:00
Commit Graph

346 Commits

Author SHA1 Message Date
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
Chris Robinson
10037e79e7 Add a skeleton decoder class using mpg123 and libsndfile 2012-03-16 23:18:15 -07:00
Chris Robinson
45b612ab3b Add a skeleton output classs using OpenAL 2012-03-16 22:12:17 -07:00
Chris Robinson
42b445383f Remove Mangle- and OpenEngine-related sound code
Start of the sound code refactoring. Currently there is no sound, but it will
be added back.
2012-03-16 17:08:13 -07:00
Michael Papageorgiou
b2c6d52db1 Another file search fix 2012-03-16 09:00:18 +02:00
Michael Papageorgiou
588ac44bc7 Improved matching for the FileListLocator 2012-03-15 17:32:10 +02:00
Michael Papageorgiou
f7c7ed0ac7 Fix regression with locating sound files 2012-03-15 13:56:46 +02:00
Michael Papageorgiou
6dddf8a3d5 Pickup sounds for armors 2012-03-13 18:05:38 +02:00
Michael Papageorgiou
836732096e Fix both relative and 3D sounds 2012-03-13 14:08:32 +02:00
Michael Papageorgiou
6f46f2b7a0 SoundManager: add the ability to play non-3d looping sounds 2012-03-09 18:10:23 +02:00
Michael Papageorgiou
a309ef7b55 Corrected setPlaylist and added stopMusic 2012-03-09 03:56:29 +02:00
Michael Papageorgiou
44620ada86 SoundManager: Finish up with Task #172, plus cleanup 2012-03-09 03:22:16 +02:00
Michael Papageorgiou
ad6175c78a SoundManager: Set up the priority for file look up right and take care of a corner case 2012-03-08 23:06:52 +02:00
Michael Papageorgiou
054a176c86 Added new FileLibrary class to handle music, this fixes a number of issues. 2012-03-07 17:46:51 +02:00
Michael Papageorgiou
54353794e5 SoundManager: Completely rewrote the file management 2012-03-07 02:20:15 +02:00
Michael Papageorgiou
03ea3bb62f SoundManager: first attempt at refactoring. BROKEN 2012-03-06 01:21:00 +02:00
Michael Papageorgiou
1776ede9e1 Broken sound path fix 2012-03-05 16:06:46 +02:00
Lukasz Gromanowski
b004e2479c Issue #133 Handle resources across multiple data directories - WIP
Work In Progress - added support for multiple paths in SoundManager.

Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
2012-01-29 20:27:03 +01:00
Marc Zinnschlag
38c0f36d44 Issue #19: Finished cleaning out the Engine framelistener 2011-10-09 09:28:36 +02:00
Marc Zinnschlag
0f2df4e2b8 more cleanup 2011-06-15 22:33:31 +02:00
Jason Hooks
56affd018a Some cleanup 2011-06-15 13:09:47 -04:00
Jason Hooks
2fe66319fe streammusic strict 2011-06-12 16:36:18 -04:00
Jason Hooks
9eefee7168 Say strict 2011-06-11 20:01:21 -04:00
Pieter van der Kloet
833a61dd82 Fixed Boost errors with 1.46 caused by the deprecated name file_string() 2011-03-28 17:36:05 +02:00
Marc Zinnschlag
4dd8616f87 Merge remote branch 'pvdk/master'
Conflicts:
	apps/openmw/engine.cpp
	apps/openmw/mwsound/soundmanager.cpp
2011-01-06 09:45:14 +01:00
Pieter van der Kloet
dd4d022301 Converted all tabs to four spaces 2011-01-05 22:18:21 +01:00
Jan-Peter Nilsson
d38f2f0a00 See if we have an instance of mData before trying to use it otherwise we get a crash when starting with --nosound 2011-01-05 02:12:13 +01:00
Jason Hooks
a9892161af MP3 functions moved to soundmanager 2010-11-11 19:47:26 -05:00
Jason Hooks
74aba13053 Music Player 2010-10-31 12:23:03 -04:00
Nicolay Korslund
004541f5cf Tested and applied Chris' sound patch. 2010-09-14 13:27:20 +02:00
Nicolay Korslund
93ef530c93 Minor fix on the last commit 2010-09-07 19:52:54 +02:00
athile
11022f1520 Fix crash at shutdown. updater() is still referenced by OGRE after it is deleted, since the SoundImpl is deleted by ~Engine before mRoot is deleted. 2010-09-07 15:21:38 +01:00
Marc Zinnschlag
978c73add5 fixed sound removal on cell change 2010-08-20 15:24:05 +02:00
Nicolay Korslund
2ad9850070 Added .wav -> .mp3 sound file lookup 2010-08-20 14:20:05 +02:00
Nicolay Korslund
3127602c57 Added file_finder component. Used by sound system. 2010-08-20 12:56:46 +02:00
Nicolay Korslund
104f3fdd50 Added path conversion for say() sounds 2010-08-20 09:36:34 +02:00
Nicolay Korslund
064bc4b6c9 Finished sound system 2010-08-19 16:05:48 +02:00
Nicolay Korslund
9a5e7816eb Renabled music. WILL CRASH WITH MPG123 v1.12.1. 2010-08-18 14:50:49 +02:00
Nicolay Korslund
65c2070086 Temporarily disabled music 2010-08-18 13:05:31 +02:00
Nicolay Korslund
31017447eb Added --nosound switch 2010-08-18 11:16:15 +02:00
Nicolay Korslund
6cdb0f1152 Enabled music streaming 2010-08-17 13:30:53 +02:00
Nicolay Korslund
f2b2fe560f Mangle update: Implemented streaming, fixed various bugs. 2010-08-17 13:18:37 +02:00
Nicolay Korslund
08289158d7 Added support for WAV files with libsndfile 2010-08-16 17:14:37 +02:00
Nicolay Korslund
dbd42386da temporary try/catch around sound loading 2010-08-14 21:43:25 +02:00
Nicolay Korslund
9875d74abf Implemented 3D sound placement. Sound management / lookup system not
done yet.
2010-08-14 21:01:20 +02:00
Marc Zinnschlag
ab1510fd5e fixed previous commit 2010-08-14 09:30:43 +02:00
Marc Zinnschlag
0a8d0fed40 added cell-wide stopSound function 2010-08-14 09:26:00 +02:00
Marc Zinnschlag
1d91ac9d9e sound manager interface enhancement 2010-08-14 07:54:51 +02:00
Nicolay Korslund
912c8b1f2d Added mpg123 file reader 2010-08-13 22:30:22 +02:00
Nicolay Korslund
cad9712411 Implemented FFMpeg sound loading. Selecting sound library is controlled through the CMake file. 2010-08-13 17:11:03 +02:00
Nicolay Korslund
7516e4ca53 Added music playing as a test 2010-08-12 17:58:29 +02:00
Nicolay Korslund
8067d62800 Decoupled SoundManager from Interpreter::Context 2010-08-12 16:29:22 +02:00
Nicolay Korslund
34572f0b19 Compiled and linked in sound system (not yet functional) 2010-08-12 16:13:54 +02:00
Marc Zinnschlag
31b4d83fac moved sound extensions from mwsound to mwscript (reduces coupling between openmw components) 2010-07-10 11:48:05 +02:00
Marc Zinnschlag
a61b2c39f0 added scriptrunning/startscript/stopscript; sorted out more case problems 2010-07-04 16:00:32 +02:00
Marc Zinnschlag
5174679864 another bug-fix and missing documentation added 2010-07-03 20:51:21 +02:00
Marc Zinnschlag
5d46fc869c added missing sound script functionality; various script-related bug-fixes 2010-07-03 20:35:59 +02:00
Marc Zinnschlag
eeeb9b09f8 identify LiveCellRefs by ptr instead of render handle 2010-07-03 17:59:30 +02:00
Marc Zinnschlag
d51e6fb7c4 second part of refactoring 2010-07-03 15:41:20 +02:00
Marc Zinnschlag
f8cb4c2502 moved sound manager from world to engine (first step of another round of refactoring) 2010-07-03 15:17:02 +02:00
Marc Zinnschlag
c12752df4d added sound manager skeleton and sound script functions 2010-07-03 15:04:00 +02:00