aboutsummaryrefslogtreecommitdiffstats
path: root/al
Commit message (Collapse)AuthorAgeFilesLines
* Avoid some template hackery for EAX effect type functionsChris Robinson2023-12-2212-215/+169
|
* Avoid a function-like macro for calling to EAX effectsChris Robinson2023-12-221-20/+35
|
* Replace a series of if statements with a switchChris Robinson2023-12-221-24/+16
|
* Use std::visit instead of manually checking the set typeChris Robinson2023-12-221-25/+15
|
* Use string_views for querying config parametersChris Robinson2023-12-211-1/+1
|
* [EAX] Fix error handling (#953)Boris I. Bendovsky2023-12-211-0/+1
| | | | | | - Set error on EAX call failure if context is available. - Reset error on successful retreiving the last error code. Reference: EAX 4.0 - Programmer's Guide (pg.37)
* Ensure struct members are initializedChris Robinson2023-12-201-11/+11
|
* Remove DEF_NEWDELChris Robinson2023-12-161-3/+0
| | | | | C++17 provides alignment-aware allocators for us, so we don't need to use our own to make sure classes/structs are properly aligned.
* Remove unnecessary macro parameter listsChris Robinson2023-12-155-6/+6
|
* Remove void from empty parameter listsChris Robinson2023-12-123-45/+43
| | | | Also convert some functions to trailing return types and remove (void) casts.
* Much more clang-tidy cleanupChris Robinson2023-12-107-54/+56
|
* More clang-tidy cleanupChris Robinson2023-12-102-1/+3
| | | | And suppress some warnings
* Clean up some more clang-tidy warningsChris Robinson2023-12-083-18/+17
|
* Try to work around a compiler issue with HexPrinterChris Robinson2023-12-081-6/+7
|
* Fix some clang-tidy warningsChris Robinson2023-12-0810-72/+72
|
* Check for a valid alignment with callback buffersChris Robinson2023-12-041-0/+4
|
* Use RAII to handle writing under the mixer seqlockChris Robinson2023-12-041-3/+3
|
* Remove some unnecessary atomic wrappersChris Robinson2023-12-035-15/+18
|
* Replace a global function with a member functionChris Robinson2023-12-031-2/+2
|
* fix printf format for MinGW (#942)Rosen Penev2023-12-032-4/+4
| | | | | | With gcc, mingw uses gnu_printf. With clang, printf is used as it does not support gnu_printf. Use the internal header to match this properly. Signed-off-by: Rosen Penev <[email protected]>
* Start a 32-bit sample format extensionChris Robinson2023-11-181-77/+92
| | | | | This ultimately is to properly distinguish and clarify formats being 32-bit integer and 32-bit float.
* Support 32-bit int sample storageChris Robinson2023-11-151-0/+1
|
* Make a couple global values/variables inlineChris Robinson2023-11-112-8/+6
|
* Don't inline a destructorChris Robinson2023-10-222-0/+6
|
* Add missing includeChris Robinson2023-10-121-0/+2
|
* Rename the convolution reverb effect to just convolutionChris Robinson2023-10-123-5/+5
| | | | | While the common use case, convolution can do more than just reverb, and it nicely shortens the name.
* Add an orientation property for convolution reverbChris Robinson2023-10-121-4/+26
| | | | Only affects ambisonic (B-Format and UHJ) formats
* Add convolution effect properties to rotate ambisonic responsesChris Robinson2023-10-121-0/+2
|
* Remove an unnecessary deque with a custom allocatorChris Robinson2023-10-112-5/+4
|
* Don't inline a couple more template functionsChris Robinson2023-09-261-2/+2
| | | | | I still wish I didn't have to force noinline just to avoid template functions being more aggressively inlined.
* Avoid casting an integer literalChris Robinson2023-09-227-18/+23
|
* Fix source span sizeChris Robinson2023-09-171-5/+5
|
* Rename noinline to NOINLINEChris Robinson2023-09-171-2/+2
| | | | To avoid clashes with compilers that use it as a keyword already
* Don't inline some big functionsChris Robinson2023-09-161-40/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is very dumb. Template functions are implicitly marked inline according to C++, and contrary to popular belief, "inline" *does* influence the compiler's decision to inline a function. A function the compiler may not have decided to inline normally may be inlined anyway, or issue a warning if it still decides not to inline, if explicitly or implicitly marked as such (or does inline it as requested, but then decides to not inline different functions it normally would because of a cumulative code size increase or something). Furthermore, once a function becomes inline due to being a template function, there's no way to undo it. Marking an inline function "noinline" pushes the problem the other way, causing the compiler to not inline a function it may have decided was beneficial to inline. There's no way to declare a template function to be inlined based solely on compiler heuristics, it will always be influenced by the implicit "inline" or explicit "noinline". That's what's happening here. A number of functions had been combined into a smaller number of large-ish template functions to reduce code duplication and ease maintanence, causing them to be implicitly inline as a side-effect. GCC then manages to inline these larger functions as implicitly requested, but in doing so prevents other smaller functions (which are explicitly marked inline) from being inlined due to excessive code increase and issue a warning. The "noinline" is a heavy-handed method of un-pessimizing the optimization pass, on the assumption the compiler apparently doesn't actually want to inline the template functions, but does so because they're technically marked inline. There's no good option here until it gets acknowledged that inline does mean something beyond allowing multiple definitions, and that template (and other types of) function definitions sometimes (if not most often) want to allow multiple definitions but don't want an artificial/detrimental boost in inline prioritization. /rant
* Use duration_cast to convert nanoseconds to secondsChris Robinson2023-09-161-9/+14
|
* Replace another C string with string_viewChris Robinson2023-08-261-5/+4
|
* Simplify building a string messageChris Robinson2023-08-261-11/+3
|
* Use string_view in a couple more placesChris Robinson2023-08-254-38/+20
|
* Allow querying AL_EFFECTSLOT_EFFECTChris Robinson2023-08-252-5/+13
| | | | | | | This doesn't make much sense since the effect associated with the ID may be modified and not represent the effect being played, or was even deleted and isn't a valid effect ID, but Generic Software allows querying it so it should be queryable for compatibility if nothing else.
* Remove an unnecessary source fileChris Robinson2023-08-182-34/+11
|
* Use an array of bytes instead of ints for small valuesChris Robinson2023-08-151-4/+4
|
* Don't null check the context in the direct EAX functionsChris Robinson2023-08-131-16/+2
|
* Add missing includesChris Robinson2023-08-112-0/+3
|
* Add AL_EXT_debug functions to set/get object namesChris Robinson2023-08-1113-6/+188
|
* More properly print string_viewsChris Robinson2023-08-061-19/+7
|
* Fix if-comparison (#890)Johan Mattsson2023-07-301-1/+1
|
* Declare functions closer to where they're neededChris Robinson2023-07-267-131/+125
| | | | | This provides better code locality when calling implicit context functions that call their direct context variants.
* Don't hold the property lock when setting the event callbackChris Robinson2023-07-201-5/+3
|
* Add missing includeChris Robinson2023-07-101-0/+1
|
* Use a separate function to convert AL_EVENT_TYPE_ enumsChris Robinson2023-07-071-17/+18
|