Commit graph

41 commits

Author SHA1 Message Date
phosit
e2ed4afe00
SoundManager: reintroduce manual memory management
This reverts commit 94c907342a.

It introduced multiple errors and is to big to find the actual errors.

Fixes: #8342
Fixes: #8426
2025-10-13 20:42:32 +02:00
trompetin17
94c907342a
SoundManager: Replace manual memory with unorderedmap
Remove manual memory management throughout the SoundManager subsystem
in favor of unorderedmap.

Key changes:
- Eliminate manual new/delete calls and potential memory leaks
- Update all sound item classes to use SoundManager factory
- Modernize resource management in OggData and related components
- Ensure exception-safe memory handling across the audio pipeline

This refactoring improves code maintainability, reduces crash risk from
memory errors, and aligns with modern C++ best practices.
2025-08-25 09:45:14 -05:00
Ralph Sennhauser
2cedb48de2
Remove custom span and use std::span
With C++20 the custom container PS:span, which was a backport of
std::span is no longer needed.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-24 11:09:57 +02:00
Ralph Sennhauser
5b5f678e3f
Fix some includes all over the place
Make include-what-you-use happy with some files in source and fix what
needs to be fixed.

Add markers to precompiled.h header includes to avoid
include-what-you-use wanting them to be removed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-14 20:15:30 +02:00
Ralph Sennhauser
3647921bed
Fix some includes all over the place
Make include-what-you-use happy with some files in source and fix what
needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-08-13 19:38:21 +02:00
phosit
5be02743fa Don't use UNUSED2 on always unused variables
Not introducing a variable enforces that the variable is not used.
`UNUSED2` on the other hand is used to silence the warning.
2025-07-28 13:16:37 +02:00
Ralph Sennhauser
ad3f6e3119
Dissolve external_libraries/openal.h
This header was used to overcome macos openal vs openal-soft header name
difference, for the migration to openal 1.1 and to pass arguments to the
linker on windows in the past. None of this is used anymore so dissolve
the header.

Also fix related headers so one can run include-what-you-use on the
changed files.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-08 19:33:36 +02:00
vladislavbelov
ffc4a56b9f Revert non-ASCII characters from source and configuration files introduced in 157c6af18e.
Fixes #6846

Differential Revision: https://code.wildfiregames.com/D5185
This was SVN commit r27965.
2023-12-03 00:30:12 +00:00
bb
157c6af18e Make the space in 0 A.D. non-breaking throughout the codebase.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful

Will add linter rule in seperate commit

Happy recompiling everyone!

Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
2023-07-27 20:54:46 +00:00
vladislavbelov
04bd96cee0 Moves uniform and texture binding to CDeviceCommandContext.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4631
This was SVN commit r26848.
2022-05-02 20:57:22 +00:00
vladislavbelov
31a6ffdd3a Removes mentions of legacy and unused GL calls, unifies AsFloatArray.
This was SVN commit r25961.
2021-10-11 12:39:01 +00:00
wraitii
863ef0f88a Tweak sound distance attenuation & add configurability
Following D3108 / 876f6d5e50, sounds are attenuated by their actual
distance. However, as noted by players on A24, the dropoff is stark and,
when zoomed out, can easily result in not hearing things that are
happening in the middle of the screen.

The new default settings almost double the max-range, change the minimum
range to have greater dynamic range, and reduce the stereo depth
slightly to better match the default camera FOV.

These are stored per sound-grounp, possibly allowing future tweaks on a
per-soundgroup basis, and are configurable.

Tested by: Imarok
Discussed over mail with: Samulis, Porru

Differential Revision: https://code.wildfiregames.com/D3612
This was SVN commit r25547.
2021-05-25 06:19:25 +00:00
wraitii
ce74c41297 Fix audio leak that resulted in openAL errors after a while.
Sound items were only deleted after 'last play' when stopped, but they
could also be left in 'paused' or 'initial' states, and were then not
cleared until the game exits (effectively a memory leak). This affected
particularly music & ambient sounds, which also used the most
buffers(/memory).
On MacOS (at least), this resulted in OpenAL errors & sound failures
after a while playing the game, because MacOS has a max "in flight
buffers" of 1024.

Also clean up some control flow in CStreamItem

Reported by: Eszett
Thanks langbart for the consistent repro'.

Fixes #5265

Differential Revision: https://code.wildfiregames.com/D3445
This was SVN commit r24762.
2021-01-22 12:50:05 +00:00
wraitii
ba736916fc Clean up ThreadUtil, use standard C++11 constructs instead of custom ones.
ThreadUtil shipped a scope lock and a mutex implementation, which can be
removed since we now have these in the standard library.
This lets us clean up this header which get included everywhere (through
profiler includes).

Tested By: Angen and Stan
Differential Revision: https://code.wildfiregames.com/D1915
This was SVN commit r22344.
2019-06-06 19:30:48 +00:00
elexis
417c84870c Actually remove trailing tabs from source/.
This was SVN commit r18991.
2016-11-23 14:09:58 +00:00
elexis
6149dd3841 Actually remove trailing whitespace for non-header files as well.
This was SVN commit r18989.
2016-11-23 13:02:58 +00:00
elexis
b18f74da44 Remove trailing whitespace and whitespace in empty lines of source/ except source/third_party/.
This was SVN commit r18987.
2016-11-23 11:18:37 +00:00
leper
ec7c8f2d65 Move gain config setting retrieval to the sound manager. Fixes #3030.
Also clean up the sound manager a bit.

This was SVN commit r16257.
2015-02-02 13:44:06 +00:00
Ykkrosh
49e2ecea63 Automatically convert all CLogger format strings from wchar_t* to char*.
Done with:

  ag -ls 'LOG(MESSAGE|MESSAGERENDER|WARNING|ERROR)' source | xargs sed
-i 's/LOG\(MESSAGE\|MESSAGERENDER\|WARNING\|ERROR\)(L/LOG\1(/g'

This was SVN commit r16183.
2015-01-22 20:31:30 +00:00
leper
b3391ebe39 Fix build warnings. Patch by Markus. Refs #1851.
This was SVN commit r13469.
2013-06-11 00:05:57 +00:00
stwf
ada7702bec add UI sound channel, clean up external interface and javascript calls
This was SVN commit r13467.
2013-06-10 13:58:43 +00:00
stwf
71b25d5bd4 big SoundManager checkin,futureproof javascript interface, isolate external calls to remove OpenAL references
This was SVN commit r13455.
2013-06-06 11:13:57 +00:00
stwf
092108b304 Must notify sound manager sources are now available
This was SVN commit r13372.
2013-04-26 23:13:11 +00:00
stwf
c30f7a40e0 no need to check errors after destroying context, clean up some OpenAL interface calls
This was SVN commit r13371.
2013-04-25 10:48:34 +00:00
stwf
71486bd57d SoundManager supports playlists
This was SVN commit r13368.
2013-04-24 12:03:42 +00:00
stwf
503b481468 handle initialization errors cleanly, clean stuff up
This was SVN commit r13359.
2013-04-18 03:24:20 +00:00
stwf
b301d5c84d fades music in and out when switching to background, also honors g_PauseOnFocusLoss
This was SVN commit r13352.
2013-04-10 11:51:42 +00:00
stwf
c9a5d5cee5 pause music and ambient sounds when game pauses
This was SVN commit r13347.
2013-04-07 04:13:15 +00:00
stwf
efd42ef490 fixes windows compile error and some nuused param warnings
This was SVN commit r13217.
2013-03-03 22:28:26 +00:00
stwf
e4a9312c46 newest soundmanager patch, should give better battle sequences, and handle low resource situations correctly.
This was SVN commit r13209.
2013-03-01 14:22:28 +00:00
stwf
670deaef2a added variable sleep time depending on load an seperate mutex for deleting old items
This was SVN commit r13055.
2013-01-07 21:02:22 +00:00
stwf
012e1585b1 fix for ticket 1758, not fixing the underlying problem but will limit the error messages to 1 per failed allocation and shouldn't crash anymore
This was SVN commit r12989.
2012-12-14 03:10:03 +00:00
stwf
cdaab29d2b make sure file was opened successfully before processing
This was SVN commit r12982.
2012-12-12 13:59:36 +00:00
leper
ed98320acc Fix non-pch build.
This was SVN commit r12872.
2012-11-24 17:15:07 +00:00
stwf
a23d245405 volume roilloff returned to standard with bug fixed. Added hints to help stereo playback
This was SVN commit r12864.
2012-11-18 22:39:20 +00:00
stwf
402ea61581 don't set location info by default, music and sounds should not have it set
This was SVN commit r12781.
2012-10-24 13:12:55 +00:00
stwf
44821da620 new threaded soundmanager and proper distance roll off
This was SVN commit r12709.
2012-09-27 02:42:03 +00:00
stwf
df0c4559ad silence repeated errors when buffers don't allocate, fix up reference counting
This was SVN commit r12638.
2012-09-07 12:05:29 +00:00
stwf
0133197dcd proper disposal of single buffer sounds
This was SVN commit r12574.
2012-09-01 02:41:48 +00:00
historic_bruno
89c8bccbde Sound system patch by stwf:
Fixes sound system to work with archives (use VFS files instead of
POSIX), fixes #1604.
Improves error handling and logging, refs #1594.
Allows sound to be disabled with -nosound/-quickstart runtime options or
--without-audio build option, fixes #1609, #1614.
Experimentally increases default buffer size to help prevent sound
stoppages.

This was SVN commit r12566.
2012-08-31 19:08:41 +00:00
historic_bruno
011ba8255e New sound system implementation by stwf, refs #1223, #961.
Enables audio on OS X, refs #685, #931.
Fixes music not playing after a game, refs #946.

This was SVN commit r12428.
2012-08-15 00:10:44 +00:00