67 |
|
|
68 |
template<implementation_t IMPLEMENTATION, channels_t CHANNELS, bool USEFILTER, bool INTERPOLATE, bool DOLOOP, bool CONSTPITCH> |
template<implementation_t IMPLEMENTATION, channels_t CHANNELS, bool USEFILTER, bool INTERPOLATE, bool DOLOOP, bool CONSTPITCH> |
69 |
class Synthesizer : public __RTMath<IMPLEMENTATION>, public LinuxSampler::Resampler<INTERPOLATE> { |
class Synthesizer : public __RTMath<IMPLEMENTATION>, public LinuxSampler::Resampler<INTERPOLATE> { |
70 |
|
|
71 |
|
// declarations of derived functions (see "Name lookup, |
72 |
|
// templates, and accessing members of base classes" in |
73 |
|
// the gcc manual for an explanation of why this is |
74 |
|
// needed). |
75 |
|
using __RTMath<IMPLEMENTATION>::Mul; |
76 |
|
using __RTMath<IMPLEMENTATION>::Float; |
77 |
|
using LinuxSampler::Resampler<INTERPOLATE>::GetNextSampleMonoCPP; |
78 |
|
using LinuxSampler::Resampler<INTERPOLATE>::GetNextSampleStereoCPP; |
79 |
|
#if ARCH_X86 |
80 |
|
using LinuxSampler::Resampler<INTERPOLATE>::GetNext4SamplesMonoMMXSSE; |
81 |
|
using LinuxSampler::Resampler<INTERPOLATE>::GetNext4SamplesStereoMMXSSE; |
82 |
|
#endif |
83 |
|
|
84 |
public: |
public: |
85 |
template<typename VOICE_T> |
template<typename VOICE_T> |
86 |
inline static void SynthesizeFragment(VOICE_T& Voice, uint Samples, sample_t* pSrc, uint i) { |
inline static void SynthesizeFragment(VOICE_T& Voice, uint Samples, sample_t* pSrc, uint i) { |