MixerLoops.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * MixerLoops.h
  3. * ------------
  4. * Purpose: Utility inner loops for mixer-related functionality.
  5. * Notes : none.
  6. * Authors: OpenMPT Devs
  7. * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
  8. */
  9. #pragma once
  10. #include "openmpt/all/BuildSettings.hpp"
  11. #include "Mixer.h"
  12. OPENMPT_NAMESPACE_BEGIN
  13. struct ModChannel;
  14. void StereoMixToFloat(const int32 *pSrc, float *pOut1, float *pOut2, uint32 nCount, const float _i2fc);
  15. void FloatToStereoMix(const float *pIn1, const float *pIn2, int32 *pOut, uint32 uint32, const float _f2ic);
  16. void MonoMixToFloat(const int32 *pSrc, float *pOut, uint32 uint32, const float _i2fc);
  17. void FloatToMonoMix(const float *pIn, int32 *pOut, uint32 uint32, const float _f2ic);
  18. void InitMixBuffer(mixsample_t *pBuffer, uint32 nSamples);
  19. void InterleaveFrontRear(mixsample_t *pFrontBuf, mixsample_t *pRearBuf, uint32 nFrames);
  20. void MonoFromStereo(mixsample_t *pMixBuf, uint32 nSamples);
  21. void InterleaveStereo(const mixsample_t *inputL, const mixsample_t *inputR, mixsample_t *output, size_t numSamples);
  22. void DeinterleaveStereo(const mixsample_t *input, mixsample_t *outputL, mixsample_t *outputR, size_t numSamples);
  23. void EndChannelOfs(ModChannel &chn, mixsample_t *pBuffer, uint32 nSamples);
  24. void StereoFill(mixsample_t *pBuffer, uint32 nSamples, mixsample_t &rofs, mixsample_t &lofs);
  25. OPENMPT_NAMESPACE_END