aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alcmain.h
diff options
context:
space:
mode:
Diffstat (limited to 'alc/alcmain.h')
-rw-r--r--alc/alcmain.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/alc/alcmain.h b/alc/alcmain.h
index 464febcc..910e3279 100644
--- a/alc/alcmain.h
+++ b/alc/alcmain.h
@@ -188,8 +188,6 @@ struct RealMixParams {
al::span<FloatBufferLine> Buffer;
};
-using POSTPROCESS = void(*)(ALCdevice *device, const ALsizei SamplesToDo);
-
enum {
// Frequency was requested by the app or config file
FrequencyRequest,
@@ -305,7 +303,8 @@ struct ALCdevice : public al::intrusive_ref<ALCdevice> {
/* Stereo-to-binaural filter */
std::unique_ptr<bs2b> Bs2b;
- POSTPROCESS PostProcess{};
+ using PostProc = void(ALCdevice::*)(const ALsizei SamplesToDo);
+ PostProc PostProcess{nullptr};
std::unique_ptr<FrontStablizer> Stablizer;
@@ -345,6 +344,14 @@ struct ALCdevice : public al::intrusive_ref<ALCdevice> {
ALsizei channelsFromFmt() const noexcept { return ChannelsFromDevFmt(FmtChans, mAmbiOrder); }
ALsizei frameSizeFromFmt() const noexcept { return bytesFromFmt() * channelsFromFmt(); }
+ void ProcessHrtf(const ALsizei SamplesToDo);
+ void ProcessAmbiDec(const ALsizei SamplesToDo);
+ void ProcessUhj(const ALsizei SamplesToDo);
+ void ProcessBs2b(const ALsizei SamplesToDo);
+
+ inline void postProcess(const ALsizei SamplesToDo)
+ { if LIKELY(PostProcess) (this->*PostProcess)(SamplesToDo); }
+
DEF_NEWDEL(ALCdevice)
};