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

368 commits

Author SHA1 Message Date
Chris Robinson
1dd9276ceb Add missing decoder method declarations 2012-12-28 11:26:41 -08:00
Chris Robinson
85850c7440 Fix DEFAULT_OUTPUT declaration 2012-12-18 10:43:04 -08:00
Chris Robinson
7b2c3e6cd3 Pass a proper PlayMode enum to playSound and playSound3D 2012-12-18 06:01:21 -08:00
Chris Robinson
3b7edae7c3 Don't hold a list of all sound sources 2012-12-18 05:19:32 -08:00
Chris Robinson
fe36cc1de7 Don't try to resume sound types that aren't paused 2012-12-18 04:35:24 -08:00
Chris Robinson
2f8daec379 Allow pausing only certain types of sounds 2012-12-18 04:19:35 -08:00
Chris Robinson
b4e36d4f31 Add a method to get the volume from the sound type 2012-12-18 02:01:04 -08:00
Chris Robinson
a5356e194e Allow specifying a type for the playTrack method 2012-12-18 01:35:20 -08:00
Chris Robinson
72ffceb206 Add type flags to the sound play mode 2012-12-18 00:57:57 -08:00
Chris Robinson
dd3e568a00 Set the sound properties at initialization 2012-12-17 23:35:20 -08:00
Chris Robinson
20321c4552 Keep track of the actual active sounds 2012-12-17 21:50:01 -08:00
Chris Robinson
d348435a1d Improve audio open error message 2012-12-17 21:09:57 -08:00
Chris Robinson
e9d833be03 Use the packet pts to calculate the decoder sample offset 2012-12-16 01:56:52 -08:00
Chris Robinson
1a771ae671 Merge the stream struct into the parent decoder 2012-12-15 23:46:32 -08:00
Chris Robinson
5fff1c4e47 Update the ffmpeg decoder to use avcodec_decode_audio4 2012-12-15 23:22:37 -08:00
Chris Robinson
5f4c33f896 Only store one packet at a time 2012-12-15 22:54:54 -08:00
Chris Robinson
9d86890d9d Only use one stream for the ffmpeg decoder 2012-12-15 22:13:19 -08:00
Chris Robinson
32b0a5d96e Update the queued sample count immediately 2012-12-14 23:42:49 -08:00
Chris Robinson
0a5ab977b7 Use the decoder's sample offset for calculating the stream offset 2012-12-13 05:04:53 -08:00
Chris Robinson
1ea1407707 Support quad, 5.1, and 7.1 with OpenAL and ffmpeg
The other decoders don't guarantee any channel ordering, which makes them
useless.
2012-12-13 04:10:19 -08:00
Chris Robinson
f067b22b3f Use a recursive mutex for the OpenAL stream thread 2012-12-13 02:33:35 -08:00
Chris Robinson
ba9c5f5b4e Don't initially fill buffers in OpenAL_SoundStream::play 2012-12-13 02:32:21 -08:00
Chris Robinson
779ced0889 Add a method to play an audio track with a custom decoder 2012-12-13 00:05:57 -08:00
Chris Robinson
1571243ef0 Implement getTimeOffset for OpenAL_SoundStream 2012-12-12 23:16:45 -08:00
Chris Robinson
86bf6388c6 Pass a decoder to the playStream sound output method 2012-12-12 22:32:02 -08:00
Chris Robinson
9c831d3039 Add a decoder method to get the "file" name 2012-12-12 22:19:44 -08:00
Chris Robinson
34e36fb852 Add a method to get the time offset from sounds 2012-12-12 16:50:35 -08:00
scrawl
7fd9e1d212 Merge branch 'videoplayback' of https://github.com/ChrisKCat/openmw into videoplayback
Conflicts:
	apps/openmw/mwrender/videoplayer.cpp
2012-12-12 22:24:38 +01:00
scrawl
18d8c767bd fix a bunch of warnings, improved error handling, initialize texture to black 2012-12-12 15:15:55 +01:00
Chris Robinson
2c1eceb9f0 Add methods to pause and stop all playing sounds (and music) 2012-12-12 02:33:12 -08:00
Chris Robinson
973b5faf25 Keep track of all allocated sources 2012-12-12 01:32:16 -08:00
Chris Robinson
c2e1595445 Treat paused sounds as still playing 2012-12-11 21:01:32 -08:00
scrawl
5f676f9c6b Merge branch 'master' of https://github.com/zinnschlag/openmw into videoplayback
Conflicts:
	apps/openmw/mwrender/renderingmanager.cpp
	apps/openmw/mwscript/miscextensions.cpp
2012-12-11 22:28:23 +01:00
scrawl
e3dd3d565c fix 2 leaks 2012-12-10 00:59:39 +01:00
scrawl
d432420a32 fix FindFFmpeg.cmake 2012-12-01 20:53:28 +01:00
scrawl
5f7d349126 several missing includes 2012-11-14 05:32:23 +01:00
greye
e628b23da6 applying new interface vol.3, inconsistent 2012-11-05 21:45:35 +04:00
greye
d205723a17 resolving m prefix/ESMStore movement 2012-11-05 18:02:47 +04:00
greye
2057f5619e move ESMStore to MWWorld 2012-11-05 17:18:01 +04:00
greye
3c2ce25f5f m prefix for mwworld/cellstore.hpp 2012-11-05 16:07:59 +04:00
scrawl
1a2034b4dd training window 2012-10-17 18:03:02 +02:00
Marc Zinnschlag
35d099a638 disabling gcc extensions 2012-10-09 17:10:25 +02:00
Marc Zinnschlag
35d7b5e5b0 Merge remote-tracking branch 'greye/record_saving' 2012-10-01 09:50:20 +02:00
Chris Robinson
6c5c9ce46e Avoid console spam when a sound can't play 2012-09-30 17:38:55 -07:00
Chris Robinson
6942fa97da Specify a proper up vector for the listener 2012-09-30 17:23:05 -07:00
Chris Robinson
991f942fba Merge remote-tracking branch 'zini/master' into sound
Conflicts:
	apps/openmw/mwsound/soundmanagerimp.cpp
	apps/openmw/mwsound/soundmanagerimp.hpp
2012-09-30 16:57:54 -07:00
greye
7606ebafd6 resolving conflicts, minor update 2012-09-17 11:37:50 +04:00
Marc Zinnschlag
81463fa23d Issue #372: fixed positions in SoundManager 2012-08-29 18:48:20 +02:00
Marc Zinnschlag
aca08eb4c2 Merge branch 'decouple' into player_control
Conflicts:
	apps/openmw/mwsound/soundmanagerimp.hpp
2012-08-09 16:12:10 +02:00
greye
b5bc7bc424 SoundManager dependency on camera pos/dir 2012-08-09 17:01:03 +04:00
Marc Zinnschlag
6bd48d12af Issue #107: SoundManager is accessed only through the interface class from now on 2012-08-09 14:33:21 +02:00
greye
df60f4bf92 stub for soundmanager, adjust rotation mode 2012-08-09 13:27:32 +04:00
greye
ec9cf4d3c6 rotateObject() added, input system rewritten 2012-08-09 00:15:52 +04:00
Dmitry Marakasov
0e934a52ca Include soundmanager.hpp for Play_Normal enum 2012-07-16 23:54:24 +04:00
Dmitry Marakasov
1c53add6c4 Include boost/shared_ptr.hpp for boost:shared_ptr 2012-07-16 23:54:21 +04:00
Alexander "Ace" Olofsson
113457d934 Fixed some windows issues and got rid of a few tiny warnings while at it. 2012-07-07 01:14:18 +02:00
Marc Zinnschlag
87667ab57e Issue #107: Ptr related include cleanup 2012-07-03 13:55:53 +02:00
Marc Zinnschlag
4c39fefd1e Issue #107: World is accessed only through the interface class from now on; some include cleanup 2012-07-03 12:30:50 +02:00
Chris Robinson
2f8056dfab Merge remote branch 'zini/master' into sound 2012-06-26 14:59:01 -07:00
Marc Zinnschlag
0f71439991 Merge remote branch 'garvek/master' 2012-06-15 08:22:56 +02:00
Sylvain THESNIERES
fc3a3fc173 MSVC build compliance:
- static const float member is not ISO
- callback do not match DLL signature
2012-06-08 19:55:39 +02:00
scrawl
c85c794c86 fixed some cppcheck issues 2012-06-06 20:29:30 +02:00
Chris Robinson
05fd8f0211 Update the actual sounds and music volume when settings change 2012-05-24 05:30:22 -07:00
scrawl
cbe89f7e32 copy&paste mistake 2012-05-24 08:56:45 +02:00
scrawl
189b044392 small correction 2012-05-24 04:37:41 +02:00
scrawl
9b94edd561 audio tab with volume sliders 2012-05-24 04:34:53 +02:00
scrawl
c9aa0ca1f4 don't create terrain if there is no land data, also fixes a water disappearing issue and a sound exception if cells with no region 2012-05-17 19:54:09 +02:00
Chris Robinson
1627206d56 Remove an unused method
Best not to design something we don't yet know what's needed from it.
2012-05-02 13:59:03 -07:00
Chris Robinson
144d52cf49 Add voices to the chargen class questions 2012-05-01 20:30:31 -07:00
Chris Robinson
b3caf82714 Avoid using vector<>::data(), which requires C++11 2012-05-01 10:12:45 -07:00
Marc Zinnschlag
35f478071e Issue #255: deleted the old environment class and using the new one instead 2012-04-23 15:27:03 +02:00
Chris Robinson
59ccab0b2c Add sound volume settings 2012-04-07 16:00:30 -07:00
Chris Robinson
752e89a268 Add a setting to select the sound device name 2012-04-07 15:28:38 -07:00
Chris Robinson
b8be867e6e Work around a bug in the Windows OpenAL router 2012-04-07 14:58:52 -07:00
Chris Robinson
87e8917c4d Don't try to play sounds when no sound output is initialized 2012-04-06 10:43:14 -07:00
Chris Robinson
63e0e82049 Implement an Audiere-based decoder 2012-04-01 15:02:07 -07:00
Chris Robinson
2147210ad7 Don't set an underwater environment when there's no water 2012-04-01 12:46:49 -07:00
Chris Robinson
9c06bfc8fc Merge remote branch 'zini/master' into sound 2012-03-31 14:26:21 -07:00
Alexander "Ace" Olofsson
64f792c01d Fix a value defined at the wrong place 2012-03-31 21:05:33 +02:00
Chris Robinson
e8e8d3fb1b Fully reset the music before starting the next track 2012-03-31 10:59:29 -07:00
Chris Robinson
3a57746ee4 Remove an unneeded volume special-case 2012-03-31 10:43:55 -07:00
Chris Robinson
4944a29b21 Keep track of the sound pitch 2012-03-31 10:41:12 -07:00
Chris Robinson
cbf6c0404a Implement a basic underwater sound environment 2012-03-31 10:06:12 -07:00
Chris Robinson
575474ff69 Pass the mode flags to the sound output play methods 2012-03-31 08:14:39 -07:00
Chris Robinson
977e7ac9a3 Remove the Play_Single flag. It's not correct. 2012-03-31 07:41:26 -07:00
Chris Robinson
ae308b9b5f Use a set of flags instead of separate booleans 2012-03-31 07:31:55 -07:00
Chris Robinson
e48d125a84 Only allow one instance of a given tracked soundid
The untracked flag should probably be broken up and combined with the loop
boolean into a set of flags.
2012-03-31 05:57:03 -07:00
Chris Robinson
bfac946878 Finally "fix" --nosound
Expect degraded performance with it. Looping sounds are constantly checked to
see if they're playing, and try to play it again when it's not.
2012-03-31 03:31:41 -07:00
Chris Robinson
7541e08909 Don't reset the sound Output device if init fails 2012-03-31 02:48:14 -07:00
Chris Robinson
28378c063b Minor OpenAL_SoundStream cleanups 2012-03-31 02:22:23 -07:00
Chris Robinson
4e908aa095 Add a method to set the sound's position 2012-03-31 01:34:26 -07:00
Chris Robinson
b01289128b Split OpenAL_Sound into separate classes for 2D and 3D sounds 2012-03-31 01:15:27 -07:00
Chris Robinson
5adeee20fd Mute sounds that go outside the max distance 2012-03-31 00:57:29 -07:00
Chris Robinson
fc167dbc83 Pass Ogre Vector3s to playSound3D and updateListener 2012-03-30 11:42:11 -07:00
Chris Robinson
fefc8f86ab Remove the unused streamSound3D method 2012-03-30 11:11:07 -07:00
Chris Robinson
1ee8b963d0 Store the sound listener position as well 2012-03-30 07:30:17 -07:00
Chris Robinson
fad27d99e6 Update the actual sound volume with the position 2012-03-30 07:10:34 -07:00
Chris Robinson
479df78ea1 Update the actual sound position after the listener 2012-03-30 07:01:37 -07:00
Chris Robinson
71d9d7e943 Store the current sound position with the Sound object 2012-03-30 06:41:06 -07:00
Chris Robinson
de102cd274 Simplify broken OpenAL workaround 2012-03-30 06:28:40 -07:00
Chris Robinson
33a63d88a5 Merge remote branch 'zini/master' into sound 2012-03-30 06:22:19 -07:00
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
Chris Robinson
3d5384e2bb Remove some unneeded casts 2012-03-29 11:28:33 -07: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