OXYGENHUB
◆ main openmsx / src / cassette / WavImage.hh
928 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
e8555c89 Andy McCall 1
#ifndef WAVIMAGE_HH
2
#define WAVIMAGE_HH
3
4
#include "CassetteImage.hh"
5
6
#include "DynamicClock.hh"
7
#include "WavData.hh"
8
9
#include <cstdint>
10
11
namespace openmsx {
12
13
class Filename;
14
class FilePool;
15
16
class WavImage final : public CassetteImage
17
{
18
public:
19
	explicit WavImage(const Filename& filename, FilePool& filePool);
20
	WavImage(const WavImage&) = delete;
21
	WavImage(WavImage&&) = delete;
22
	WavImage& operator=(const WavImage&) = delete;
23
	WavImage& operator=(WavImage&&) = delete;
24
	~WavImage() override;
25
26
	[[nodiscard]] int16_t getSampleAt(EmuTime time) const override;
27
	[[nodiscard]] EmuTime getEndTime() const override;
28
	[[nodiscard]] unsigned getFrequency() const override;
29
	void fillBuffer(unsigned pos, std::span<float*, 1> bufs, unsigned num) const override;
30
	[[nodiscard]] float getAmplificationFactorImpl() const override;
31
32
private:
33
	const WavData* wav;
34
	DynamicClock clock{EmuTime::zero()};
35
};
36
37
} // namespace openmsx
38
39
#endif