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() );
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|||||||
Reference in New Issue
Block a user