From 8095e3ce1e67a5383794b94964de5659a64d39b1 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Fri, 8 Jan 2010 16:40:34 +0000 Subject: [PATCH] Volume OSD --- src/mainwindow.cpp | 1 + src/osd.cpp | 10 ++++++++-- src/osd.h | 1 + src/player.cpp | 1 + src/player.h | 1 + src/song.cpp | 2 +- 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8c5b50051..816b1e183 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -113,6 +113,7 @@ MainWindow::MainWindow(QWidget *parent) connect(player_, SIGNAL(Paused()), osd_, SLOT(Paused())); connect(player_, SIGNAL(Stopped()), osd_, SLOT(Stopped())); + connect(player_, SIGNAL(VolumeChanged(int)), osd_, SLOT(VolumeChanged(int))); connect(playlist_, SIGNAL(CurrentSongChanged(Song)), osd_, SLOT(SongChanged(Song))); connect(ui_.playlist, SIGNAL(doubleClicked(QModelIndex)), SLOT(PlayIndex(QModelIndex))); diff --git a/src/osd.cpp b/src/osd.cpp index 8875c26c1..4209cab6b 100644 --- a/src/osd.cpp +++ b/src/osd.cpp @@ -11,9 +11,11 @@ OSD::OSD(QSystemTrayIcon* tray_icon, QObject* parent) } void OSD::SongChanged(const Song &song) { - QString summary(song.PrettyTitleWithArtist()); - QStringList message_parts; + QString summary(song.PrettyTitle()); + if (!song.artist().isNull()) + summary = QString("%1 - %2").arg(song.artist(), summary); + QStringList message_parts; if (!song.album().isEmpty()) message_parts << song.album(); if (song.disc() > 0) @@ -31,3 +33,7 @@ void OSD::Paused() { void OSD::Stopped() { ShowMessage(QCoreApplication::applicationName(), "Playlist finished"); } + +void OSD::VolumeChanged(int value) { + ShowMessage(QCoreApplication::applicationName(), QString("Volume %1%").arg(value)); +} diff --git a/src/osd.h b/src/osd.h index 3a21877cb..0ad941fbb 100644 --- a/src/osd.h +++ b/src/osd.h @@ -28,6 +28,7 @@ class OSD : public QObject { void SongChanged(const Song& song); void Paused(); void Stopped(); + void VolumeChanged(int value); private: QSystemTrayIcon* tray_icon_; diff --git a/src/player.cpp b/src/player.cpp index 2230d91ae..fbbbd01d5 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -103,6 +103,7 @@ void Player::EngineStateChanged(Engine::State state) { void Player::SetVolume(int value) { settings_.setValue("volume", value); engine_->setVolume(value); + emit VolumeChanged(value); } int Player::GetVolume() const { diff --git a/src/player.h b/src/player.h index 9e78e60f0..e022ee6e7 100644 --- a/src/player.h +++ b/src/player.h @@ -35,6 +35,7 @@ class Player : public QObject { void Playing(); void Paused(); void Stopped(); + void VolumeChanged(int volume); void Error(const QString& message); private slots: diff --git a/src/song.cpp b/src/song.cpp index 914e2cb7f..02f636748 100644 --- a/src/song.cpp +++ b/src/song.cpp @@ -250,7 +250,7 @@ QString Song::PrettyTitleWithArtist() const { if (title.isEmpty()) title = QFileInfo(filename_).baseName(); - if (!compilation_ && !artist_.isEmpty()) + if (compilation_ && !artist_.isEmpty()) title = artist_ + " - " + title; return title;