Etterna 0.74.4
Loading...
Searching...
No Matches
RageSoundReader_Merge.h
1#ifndef RAGE_SOUND_READER_MERGE
2#define RAGE_SOUND_READER_MERGE
3
4#include "RageSoundReader.h"
5
8{
9 public:
11 ~RageSoundReader_Merge() override;
13 RageSoundReader_Merge* Copy() const override
14 {
15 return new RageSoundReader_Merge(*this);
16 }
17
18 int GetLength() const override;
19 int GetLength_Fast() const override;
20 int SetPosition(int iFrame) override;
21 int Read(float* pBuf, int iFrames) override;
22 int GetSampleRate() const override { return m_iSampleRate; }
23 unsigned GetNumChannels() const override { return m_iChannels; }
24 bool SetProperty(const std::string& sProperty, float fValue) override;
25 int GetNextSourceFrame() const override { return m_iNextSourceFrame; }
26 float GetStreamToSourceRatio() const override
27 {
28 return m_fCurrentStreamToSourceRatio;
29 }
30 std::string GetError() const override { return ""; }
31
32 void AddSound(RageSoundReader* pSound);
33
37 void Finish(int iPreferredSampleRate);
38
39 private:
40 int GetSampleRateInternal() const;
41
42 int m_iSampleRate;
43 unsigned m_iChannels;
44
45 std::vector<RageSoundReader*> m_aSounds;
46
47 /* Read state: */
48 int m_iNextSourceFrame;
49 float m_fCurrentStreamToSourceRatio;
50};
51
52#endif
Chain different sounds together.
Definition RageSoundReader_Merge.h:8
void Finish(int iPreferredSampleRate)
Finish adding sounds.
Definition RageSoundReader_Merge.cpp:60
Definition RageSoundReader.h:7