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