after changed quality-settings also update interpolation for samplerate-conversion

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@962 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2008-05-13 09:22:01 +00:00
parent 298df38d09
commit 8b0e95ec5a
6 changed files with 27 additions and 5 deletions

View File

@@ -88,9 +88,8 @@ public:
virtual void stopProcessing( void );
virtual void applyQualitySettings( void )
{
}
virtual void applyQualitySettings( void );
class setupWidget : public tabWidget

View File

@@ -221,6 +221,8 @@ void audioALSA::applyQualitySettings( void )
return;
}
}
audioDevice::applyQualitySettings();
}

View File

@@ -51,7 +51,6 @@ audioDevice::audioDevice( const ch_cnt_t _channels, mixer * _mixer ) :
{
printf( "Error: src_new() failed in audio_device.cpp!\n" );
}
m_srcData.end_of_input = 0;
}
@@ -132,6 +131,22 @@ void audioDevice::stopProcessing( void )
void audioDevice::applyQualitySettings( void )
{
src_delete( m_srcState );
int error;
if( ( m_srcState = src_new(
getMixer()->currentQualitySettings().libsrcInterpolation(),
SURROUND_CHANNELS, &error ) ) == NULL )
{
printf( "Error: src_new() failed in audio_device.cpp!\n" );
}
}
void audioDevice::registerPort( audioPort * )
{
}
@@ -168,13 +183,13 @@ void audioDevice::resample( const surroundSampleFrame * _src,
m_srcData.data_in = (float *) _src[0];
m_srcData.data_out = _dst[0];
m_srcData.src_ratio = (double) _dst_sr / _src_sr;
m_srcData.end_of_input = 0;
int error;
if( ( error = src_process( m_srcState, &m_srcData ) ) )
{
printf( "audioDevice::resample(): error while resampling: %s\n",
src_strerror( error ) );
}
m_srcData.end_of_input = 0;
}

View File

@@ -243,6 +243,8 @@ void audioJACK::applyQualitySettings( void )
setSampleRate( jack_get_sample_rate( m_client ) );
}
}
audioDevice::applyQualitySettings();
}

View File

@@ -293,6 +293,8 @@ void audioOSS::applyQualitySettings( void )
setSampleRate( value );
}
}
audioDevice::applyQualitySettings();
}

View File

@@ -148,6 +148,8 @@ void audioSDL::applyQualitySettings( void )
SDL_GetError() );
}
}
audioDevice::applyQualitySettings();
}