diff --git a/src/libtomahawk/audio/AudioEngine.cpp b/src/libtomahawk/audio/AudioEngine.cpp index 63fc0a1b0..7b46be4f1 100644 --- a/src/libtomahawk/audio/AudioEngine.cpp +++ b/src/libtomahawk/audio/AudioEngine.cpp @@ -171,6 +171,7 @@ AudioEngine::AudioEngine() connect( d->audioOutput, SIGNAL( stateChanged( AudioOutput::AudioState, AudioOutput::AudioState ) ), d_func(), SLOT( onStateChanged( AudioOutput::AudioState, AudioOutput::AudioState ) ) ); connect( d->audioOutput, SIGNAL( tick( qint64 ) ), SLOT( timerTriggered( qint64 ) ) ); connect( d->audioOutput, SIGNAL( positionChanged( float ) ), SLOT( onPositionChanged( float ) ) ); + connect( d->audioOutput, SIGNAL( volumeChanged( qreal ) ), SLOT( onVolumeChanged( qreal ) ) ); setVolume( TomahawkSettings::instance()->volume() ); diff --git a/src/libtomahawk/audio/AudioOutput.cpp b/src/libtomahawk/audio/AudioOutput.cpp index 063aedce3..b0371b2df 100644 --- a/src/libtomahawk/audio/AudioOutput.cpp +++ b/src/libtomahawk/audio/AudioOutput.cpp @@ -123,6 +123,7 @@ AudioOutput::AudioOutput( QObject* parent ) libvlc_MediaPlayerTitleChanged, libvlc_MediaPlayerSnapshotTaken, //libvlc_MediaPlayerLengthChanged, + libvlc_MediaPlayerAudioVolume, libvlc_MediaPlayerVout }; const int eventCount = sizeof(events) / sizeof( *events ); @@ -579,6 +580,9 @@ AudioOutput::onVlcEvent( const libvlc_event_t* event ) // Don't call stop() here - it will deadlock libvlc setState( Error ); break; + case libvlc_MediaPlayerAudioVolume: + emit volumeChanged( event->u.media_player_audio_volume.volume ); + break; case libvlc_MediaPlayerNothingSpecial: case libvlc_MediaPlayerOpening: case libvlc_MediaPlayerBuffering: diff --git a/src/libtomahawk/audio/AudioOutput.h b/src/libtomahawk/audio/AudioOutput.h index ee03b7d71..2a266ad66 100644 --- a/src/libtomahawk/audio/AudioOutput.h +++ b/src/libtomahawk/audio/AudioOutput.h @@ -79,6 +79,7 @@ signals: void stateChanged( AudioOutput::AudioState, AudioOutput::AudioState ); void tick( qint64 ); void positionChanged( float ); + void volumeChanged( qreal volume ); private: void onInitVlcEvent( const libvlc_event_t* event );