56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
|
/*
|
||
|
* MixerSettings.h
|
||
|
* ---------------
|
||
|
* Purpose: A struct containing settings for the mixer of soundlib.
|
||
|
* Notes : (currently none)
|
||
|
* Authors: OpenMPT Devs
|
||
|
* The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "openmpt/all/BuildSettings.hpp"
|
||
|
|
||
|
|
||
|
OPENMPT_NAMESPACE_BEGIN
|
||
|
|
||
|
|
||
|
struct MixerSettings
|
||
|
{
|
||
|
|
||
|
int32 m_nStereoSeparation;
|
||
|
enum : int32 { StereoSeparationScale = 128 };
|
||
|
|
||
|
uint32 m_nMaxMixChannels;
|
||
|
uint32 DSPMask;
|
||
|
uint32 MixerFlags;
|
||
|
uint32 gdwMixingFreq;
|
||
|
uint32 gnChannels;
|
||
|
uint32 m_nPreAmp;
|
||
|
std::size_t NumInputChannels;
|
||
|
|
||
|
int32 VolumeRampUpMicroseconds;
|
||
|
int32 VolumeRampDownMicroseconds;
|
||
|
int32 GetVolumeRampUpMicroseconds() const { return VolumeRampUpMicroseconds; }
|
||
|
int32 GetVolumeRampDownMicroseconds() const { return VolumeRampDownMicroseconds; }
|
||
|
void SetVolumeRampUpMicroseconds(int32 rampUpMicroseconds) { VolumeRampUpMicroseconds = rampUpMicroseconds; }
|
||
|
void SetVolumeRampDownMicroseconds(int32 rampDownMicroseconds) { VolumeRampDownMicroseconds = rampDownMicroseconds; }
|
||
|
|
||
|
int32 GetVolumeRampUpSamples() const;
|
||
|
int32 GetVolumeRampDownSamples() const;
|
||
|
|
||
|
void SetVolumeRampUpSamples(int32 rampUpSamples);
|
||
|
void SetVolumeRampDownSamples(int32 rampDownSamples);
|
||
|
|
||
|
bool IsValid() const
|
||
|
{
|
||
|
return (gdwMixingFreq > 0) && (gnChannels == 1 || gnChannels == 2 || gnChannels == 4) && (NumInputChannels == 0 || NumInputChannels == 1 || NumInputChannels == 2 || NumInputChannels == 4);
|
||
|
}
|
||
|
|
||
|
MixerSettings();
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
OPENMPT_NAMESPACE_END
|