specify source and dest sample rate in the ctor; they don't change

This commit is contained in:
Glenn Maynard
2006-11-29 02:45:40 +00:00
parent 7c56fe71dd
commit 1146c57dc8
4 changed files with 7 additions and 25 deletions
+1 -3
View File
@@ -223,9 +223,7 @@ void RageSound::LoadSoundReader( RageSoundReader *pSound )
const int iNeededRate = SOUNDMAN->GetDriverSampleRate( pSound->GetSampleRate() ); const int iNeededRate = SOUNDMAN->GetDriverSampleRate( pSound->GetSampleRate() );
if( iNeededRate != pSound->GetSampleRate() ) if( iNeededRate != pSound->GetSampleRate() )
{ {
RageSoundReader_Resample_Good *Resample = new RageSoundReader_Resample_Good; RageSoundReader_Resample_Good *Resample = new RageSoundReader_Resample_Good( pSound, iNeededRate );
Resample->Open( pSound );
Resample->SetSampleRate( iNeededRate );
pSound = Resample; pSound = Resample;
} }
+1 -3
View File
@@ -133,9 +133,7 @@ void RageSoundReader_Chain::Finish()
{ {
SoundReader *&pSound = it->second; SoundReader *&pSound = it->second;
RageSoundReader_Resample_Good *pResample = new RageSoundReader_Resample_Good; RageSoundReader_Resample_Good *pResample = new RageSoundReader_Resample_Good( pSound, m_iPreferredSampleRate );
pResample->Open( pSound );
pResample->SetSampleRate( m_iPreferredSampleRate );
pSound = pResample; pSound = pResample;
} }
@@ -540,10 +540,11 @@ private:
int m_iDownFactor; int m_iDownFactor;
}; };
RageSoundReader_Resample_Good::RageSoundReader_Resample_Good() RageSoundReader_Resample_Good::RageSoundReader_Resample_Good( RageSoundReader *pSource, int iSampleRate )
{ {
m_pSource = NULL; m_pSource = pSource;
m_iSampleRate = -1; m_iSampleRate = iSampleRate;
ReopenResampler();
} }
/* Call this if the input position is changed or reset. */ /* 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() RageSoundReader_Resample_Good::~RageSoundReader_Resample_Good()
{ {
for( size_t iChannel = 0; iChannel < m_apResamplers.size(); ++iChannel ) for( size_t iChannel = 0; iChannel < m_apResamplers.size(); ++iChannel )
@@ -591,12 +585,6 @@ RageSoundReader_Resample_Good::~RageSoundReader_Resample_Good()
delete m_pSource; delete m_pSource;
} }
void RageSoundReader_Resample_Good::SetSampleRate( int iHZ )
{
m_iSampleRate = iHZ;
ReopenResampler();
}
int RageSoundReader_Resample_Good::GetLength() const int RageSoundReader_Resample_Good::GetLength() const
{ {
return m_pSource->GetLength(); return m_pSource->GetLength();
@@ -12,7 +12,7 @@ class RageSoundReader_Resample_Good: public RageSoundReader
{ {
public: public:
/* We own source. */ /* We own source. */
void Open( SoundReader *pSource ); RageSoundReader_Resample_Good( RageSoundReader *pSource, int iSampleRate );
RageSoundReader_Resample_Good( const RageSoundReader_Resample_Good &cpy ); RageSoundReader_Resample_Good( const RageSoundReader_Resample_Good &cpy );
int GetLength() const; int GetLength() const;
int GetLength_Fast() const; int GetLength_Fast() const;
@@ -23,8 +23,6 @@ public:
virtual ~RageSoundReader_Resample_Good(); virtual ~RageSoundReader_Resample_Good();
RageSoundReader_Resample_Good *Copy() const; RageSoundReader_Resample_Good *Copy() const;
/* Change the actual sample rate of a sound. */
void SetSampleRate( int iHZ );
void SetHighQuality( bool bHQ ) { } void SetHighQuality( bool bHQ ) { }
int GetSampleRate() const { return m_iSampleRate; } int GetSampleRate() const { return m_iSampleRate; }