From 52abcc29decdce8a85755753a1a69ba921af9965 Mon Sep 17 00:00:00 2001 From: dridri Date: Wed, 10 Jul 2013 01:23:56 +0000 Subject: [PATCH] Added Equalizer support on AudioEngine class Two public methods added : * int equalizerBandCount() * bool setEqualizerBand(int band, int value) One private method : * void initEqualizer() Settings and GUI must be made in an external plugin --- src/libtomahawk/audio/AudioEngine.cpp | 29 +++++++++++++-------------- src/libtomahawk/audio/AudioEngine.h | 3 ++- src/libtomahawk/audio/AudioEngine_p.h | 5 +++-- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/libtomahawk/audio/AudioEngine.cpp b/src/libtomahawk/audio/AudioEngine.cpp index 4efec2257..a14a0284d 100644 --- a/src/libtomahawk/audio/AudioEngine.cpp +++ b/src/libtomahawk/audio/AudioEngine.cpp @@ -224,8 +224,6 @@ AudioEngine::AudioEngine() d->mediaObject = new Phonon::MediaObject( this ); d->audioOutput = new Phonon::AudioOutput( Phonon::MusicCategory, this ); - d->audioDataOutput = new Phonon::AudioDataOutput( this ); - d->audioPath = Phonon::createPath( d->mediaObject, d->audioOutput ); d->mediaObject->setTickInterval( 150 ); @@ -238,7 +236,7 @@ AudioEngine::AudioEngine() onVolumeChanged( d->audioOutput->volume() ); setVolume( TomahawkSettings::instance()->volume() ); - // initEqualizer(); + initEqualizer(); } @@ -1390,13 +1388,14 @@ AudioEngine::initEqualizer() { Q_D( AudioEngine ); - QList< Phonon::EffectDescription > effectDescriptions = Phonon::BackendCapabilities::availableAudioEffects(); - foreach ( Phonon::EffectDescription effectDesc, effectDescriptions ) + QList effectDescriptions = Phonon::BackendCapabilities::availableAudioEffects(); + d->audioEffect = NULL; + foreach(Phonon::EffectDescription effectDesc, effectDescriptions) { - if ( effectDesc.name().toLower().contains( "eq" ) ) + if(effectDesc.name().contains("Eq") || effectDesc.name().contains("eq")) { - d->audioEffect = new Phonon::Effect( effectDesc ); - d->audioPath.insertEffect( d->audioEffect ); + d->audioEffect = new Phonon::Effect(effectDesc); + d->audioPath.insertEffect(d->audioEffect); break; } } @@ -1408,9 +1407,9 @@ AudioEngine::equalizerBandCount() { Q_D( AudioEngine ); - if ( d->audioEffect ) + if (d->audioEffect) { - QList< Phonon::EffectParameter > params = d->audioEffect->parameters(); + QList params = d->audioEffect->parameters(); return params.size(); } @@ -1419,16 +1418,16 @@ AudioEngine::equalizerBandCount() bool -AudioEngine::setEqualizerBand( int band, int value ) +AudioEngine::setEqualizerBand(int band, int value) { Q_D( AudioEngine ); - if ( d->audioEffect ) + if (d->audioEffect) { - QList< Phonon::EffectParameter > params = d->audioEffect->parameters(); - if ( band < params.size() ) + QList params = d->audioEffect->parameters(); + if (band < params.size()) { - d->audioEffect->setParameterValue( params.at( band ), value ); + d->audioEffect->setParameterValue(params.at(band), value); return true; } } diff --git a/src/libtomahawk/audio/AudioEngine.h b/src/libtomahawk/audio/AudioEngine.h index d8363334e..f04a4b877 100644 --- a/src/libtomahawk/audio/AudioEngine.h +++ b/src/libtomahawk/audio/AudioEngine.h @@ -110,7 +110,7 @@ public: qint64 currentTrackTotalTime() const; int equalizerBandCount(); - bool setEqualizerBand( int band, int value ); + bool setEqualizerBand(int band, int value); public slots: void playPause(); @@ -200,6 +200,7 @@ private slots: private: void setState( AudioState state ); void setCurrentTrackPlaylist( const Tomahawk::playlistinterface_ptr& playlist ); + void initEqualizer(); void initEqualizer(); void audioDataArrived( QMap< AudioEngine::AudioChannel, QVector< qint16 > >& data ); diff --git a/src/libtomahawk/audio/AudioEngine_p.h b/src/libtomahawk/audio/AudioEngine_p.h index cfe1f3695..0ce7b57f5 100644 --- a/src/libtomahawk/audio/AudioEngine_p.h +++ b/src/libtomahawk/audio/AudioEngine_p.h @@ -1,9 +1,8 @@ #include #include -#include -#include #include +#include #include #include @@ -44,6 +43,8 @@ private: Phonon::MediaObject* mediaObject; Phonon::AudioOutput* audioOutput; + Phonon::Path audioPath; + Phonon::Effect* audioEffect; Phonon::Path audioPath; Phonon::Effect* audioEffect;