specify source and dest sample rate in the ctor; they don't change
This commit is contained in:
@@ -223,9 +223,7 @@ void RageSound::LoadSoundReader( RageSoundReader *pSound )
|
||||
const int iNeededRate = SOUNDMAN->GetDriverSampleRate( pSound->GetSampleRate() );
|
||||
if( iNeededRate != pSound->GetSampleRate() )
|
||||
{
|
||||
RageSoundReader_Resample_Good *Resample = new RageSoundReader_Resample_Good;
|
||||
Resample->Open( pSound );
|
||||
Resample->SetSampleRate( iNeededRate );
|
||||
RageSoundReader_Resample_Good *Resample = new RageSoundReader_Resample_Good( pSound, iNeededRate );
|
||||
pSound = Resample;
|
||||
}
|
||||
|
||||
|
||||
@@ -133,9 +133,7 @@ void RageSoundReader_Chain::Finish()
|
||||
{
|
||||
SoundReader *&pSound = it->second;
|
||||
|
||||
RageSoundReader_Resample_Good *pResample = new RageSoundReader_Resample_Good;
|
||||
pResample->Open( pSound );
|
||||
pResample->SetSampleRate( m_iPreferredSampleRate );
|
||||
RageSoundReader_Resample_Good *pResample = new RageSoundReader_Resample_Good( pSound, m_iPreferredSampleRate );
|
||||
pSound = pResample;
|
||||
}
|
||||
|
||||
|
||||
@@ -540,10 +540,11 @@ private:
|
||||
int m_iDownFactor;
|
||||
};
|
||||
|
||||
RageSoundReader_Resample_Good::RageSoundReader_Resample_Good()
|
||||
RageSoundReader_Resample_Good::RageSoundReader_Resample_Good( RageSoundReader *pSource, int iSampleRate )
|
||||
{
|
||||
m_pSource = NULL;
|
||||
m_iSampleRate = -1;
|
||||
m_pSource = pSource;
|
||||
m_iSampleRate = iSampleRate;
|
||||
ReopenResampler();
|
||||
}
|
||||
|
||||
/* Call this if the input position is changed or reset. */
|
||||
@@ -577,13 +578,6 @@ void RageSoundReader_Resample_Good::ReopenResampler()
|
||||
}
|
||||
}
|
||||
|
||||
void RageSoundReader_Resample_Good::Open( SoundReader *pSource )
|
||||
{
|
||||
ASSERT(pSource);
|
||||
m_pSource = pSource;
|
||||
}
|
||||
|
||||
|
||||
RageSoundReader_Resample_Good::~RageSoundReader_Resample_Good()
|
||||
{
|
||||
for( size_t iChannel = 0; iChannel < m_apResamplers.size(); ++iChannel )
|
||||
@@ -591,12 +585,6 @@ RageSoundReader_Resample_Good::~RageSoundReader_Resample_Good()
|
||||
delete m_pSource;
|
||||
}
|
||||
|
||||
void RageSoundReader_Resample_Good::SetSampleRate( int iHZ )
|
||||
{
|
||||
m_iSampleRate = iHZ;
|
||||
ReopenResampler();
|
||||
}
|
||||
|
||||
int RageSoundReader_Resample_Good::GetLength() const
|
||||
{
|
||||
return m_pSource->GetLength();
|
||||
|
||||
@@ -12,7 +12,7 @@ class RageSoundReader_Resample_Good: public RageSoundReader
|
||||
{
|
||||
public:
|
||||
/* We own source. */
|
||||
void Open( SoundReader *pSource );
|
||||
RageSoundReader_Resample_Good( RageSoundReader *pSource, int iSampleRate );
|
||||
RageSoundReader_Resample_Good( const RageSoundReader_Resample_Good &cpy );
|
||||
int GetLength() const;
|
||||
int GetLength_Fast() const;
|
||||
@@ -23,8 +23,6 @@ public:
|
||||
virtual ~RageSoundReader_Resample_Good();
|
||||
RageSoundReader_Resample_Good *Copy() const;
|
||||
|
||||
/* Change the actual sample rate of a sound. */
|
||||
void SetSampleRate( int iHZ );
|
||||
void SetHighQuality( bool bHQ ) { }
|
||||
|
||||
int GetSampleRate() const { return m_iSampleRate; }
|
||||
|
||||
Reference in New Issue
Block a user