12 namespace swift::sound::sample_provider
14 CVolumeSampleProvider::CVolumeSampleProvider(
ISampleProvider *sourceProvider, QObject *parent)
17 Q_ASSERT_X(sourceProvider, Q_FUNC_INFO,
"Need source provider");
18 const QString on = QStringLiteral(
"%1 with source: %2").arg(
classNameShort(
this), sourceProvider->objectName());
19 this->setObjectName(on);
24 const int samplesRead = m_sourceProvider->
readSamples(samples, count);
25 if (!qFuzzyCompare(m_gainRatio, 1.0))
27 for (
int n = 0; n < samplesRead; n++) { samples[n] =
static_cast<float>(m_gainRatio * samples[n]); }
34 const bool changed = !qFuzzyCompare(m_gainRatio, volume);
35 if (changed) { m_gainRatio = volume; }
bool setGainRatio(double gainRatio)
Gain ratio, value a amplitude need to be multiplied with.
virtual int readSamples(QVector< float > &samples, qint64 count)
Read samples.
Sample provider interface.
virtual int readSamples(QVector< float > &samples, qint64 count)=0
Read samples.
Free functions in swift::misc.
QString classNameShort(const QObject *object)
Class name as from QMetaObject::className without namespace.