Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/nall/dsp/settings.hpp
2 views
1
#ifdef NALL_DSP_INTERNAL_HPP
2
3
void DSP::setChannels(unsigned channels) {
4
assert(channels > 0);
5
buffer.setChannels(channels);
6
output.setChannels(channels);
7
settings.channels = channels;
8
}
9
10
void DSP::setPrecision(unsigned precision) {
11
settings.precision = precision;
12
settings.intensity = 1 << (settings.precision - 1);
13
settings.intensityInverse = 1.0 / settings.intensity;
14
}
15
16
void DSP::setFrequency(real frequency) {
17
settings.frequency = frequency;
18
resampler->setFrequency();
19
}
20
21
void DSP::setVolume(real volume) {
22
settings.volume = volume;
23
}
24
25
void DSP::setBalance(real balance) {
26
settings.balance = balance;
27
}
28
29
void DSP::setResampler(ResampleEngine engine) {
30
if(resampler) delete resampler;
31
32
switch(engine) {
33
case ResampleEngine::Nearest: resampler = new ResampleNearest(*this); return;
34
case ResampleEngine::Linear: resampler = new ResampleLinear (*this); return;
35
case ResampleEngine::Cosine: resampler = new ResampleCosine (*this); return;
36
case ResampleEngine::Cubic: resampler = new ResampleCubic (*this); return;
37
case ResampleEngine::Hermite: resampler = new ResampleHermite(*this); return;
38
case ResampleEngine::Average: resampler = new ResampleAverage(*this); return;
39
case ResampleEngine::Sinc: resampler = new ResampleSinc (*this); return;
40
}
41
42
throw;
43
}
44
45
void DSP::setResamplerFrequency(real frequency) {
46
resampler->frequency = frequency;
47
resampler->setFrequency();
48
}
49
50
#endif
51
52