1 /* Copyright (C) 2015-2021 Sergey V. Mikayev 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU Lesser General Public License as published by 5 * the Free Software Foundation, either version 2.1 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU Lesser General Public License for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 */ 16 17 #ifndef MT32EMU_INTERNAL_RESAMPLER_H 18 #define MT32EMU_INTERNAL_RESAMPLER_H 19 20 #include "../Enumerations.h" 21 22 #include "srctools/include/FloatSampleProvider.h" 23 24 namespace MT32Emu { 25 26 class Synth; 27 28 class InternalResampler { 29 public: 30 InternalResampler(Synth &synth, double targetSampleRate, SamplerateConversionQuality quality); 31 ~InternalResampler(); 32 33 void getOutputSamples(float *buffer, unsigned int length); 34 35 private: 36 SRCTools::FloatSampleProvider &synthSource; 37 SRCTools::FloatSampleProvider &model; 38 }; 39 40 } // namespace MT32Emu 41 42 #endif // MT32EMU_INTERNAL_RESAMPLER_H 43