1 //============================================================================ 2 // 3 // SSSS tt lll lll 4 // SS SS tt ll ll 5 // SS tttttt eeee ll ll aaaa 6 // SSSS tt ee ee ll ll aa 7 // SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" 8 // SS SS tt ee ll ll aa aa 9 // SSSS ttt eeeee llll llll aaaaa 10 // 11 // Copyright (c) 1995-2021 by Bradford W. Mott, Stephen Anthony 12 // and the Stella Team 13 // 14 // See the file "License.txt" for information on usage and redistribution of 15 // this file, and for a DISCLAIMER OF ALL WARRANTIES. 16 //============================================================================ 17 18 #ifndef SIMPLE_RESAMPLER_HXX 19 #define SIMPLE_RESAMPLER_HXX 20 21 #include "bspf.hxx" 22 #include "Resampler.hxx" 23 24 class SimpleResampler : public Resampler 25 { 26 public: 27 SimpleResampler( 28 Resampler::Format formatFrom, 29 Resampler::Format formatTo, 30 const Resampler::NextFragmentCallback& NextFragmentCallback 31 ); 32 33 void fillFragment(float* fragment, uInt32 length) override; 34 35 private: 36 Int16* myCurrentFragment{nullptr}; 37 uInt32 myTimeIndex{0}; 38 uInt32 myFragmentIndex{0}; 39 bool myIsUnderrun{true}; 40 41 private: 42 SimpleResampler() = delete; 43 SimpleResampler(const SimpleResampler&) = delete; 44 SimpleResampler(SimpleResampler&&) = delete; 45 SimpleResampler& operator=(const SimpleResampler&) = delete; 46 SimpleResampler& operator=(const SimpleResampler&&) = delete; 47 }; 48 49 #endif // SIMPLE_RESAMPLER_HXX 50