diff options
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/QtUI/QtSoundPlayer.cpp | 11 | ||||
-rw-r--r-- | Swift/QtUI/QtSoundPlayer.h | 6 |
2 files changed, 14 insertions, 3 deletions
diff --git a/Swift/QtUI/QtSoundPlayer.cpp b/Swift/QtUI/QtSoundPlayer.cpp index 937d077..5dd3db3 100644 --- a/Swift/QtUI/QtSoundPlayer.cpp +++ b/Swift/QtUI/QtSoundPlayer.cpp @@ -3,14 +3,16 @@ #include <phonon/MediaObject> #include <phonon/AudioOutput> + namespace Swift{ QtSoundPlayer::QtSoundPlayer() { audioOutput_ = new Phonon::AudioOutput(Phonon::NotificationCategory); messageReceived_ = new Phonon::MediaObject(); - messageReceived_->setCurrentSource(Phonon::MediaSource(":/sounds/messageReceived.wav")); - Phonon::Path path = Phonon::createPath(messageReceived_, audioOutput_); + messageReceived_->setCurrentSource(Phonon::MediaSource(":/sounds/message-received.wav")); + Phonon::createPath(messageReceived_, audioOutput_); + connect(messageReceived_, SIGNAL(finished()), this, SLOT(handleFinished())); } QtSoundPlayer::~QtSoundPlayer() { @@ -21,9 +23,14 @@ QtSoundPlayer::~QtSoundPlayer() { void QtSoundPlayer::playSound(SoundEffect sound) { switch (sound) { case MessageReceived: + //messageReceived_->stop(); messageReceived_->play(); break; } } +void QtSoundPlayer::handleFinished() { + messageReceived_->stop(); +} + }
\ No newline at end of file diff --git a/Swift/QtUI/QtSoundPlayer.h b/Swift/QtUI/QtSoundPlayer.h index e0ccf18..b9109a7 100644 --- a/Swift/QtUI/QtSoundPlayer.h +++ b/Swift/QtUI/QtSoundPlayer.h @@ -2,6 +2,7 @@ #include "Swift/Controllers/SoundPlayer.h" +#include <QObject> namespace Phonon { class AudioOutput; @@ -9,7 +10,8 @@ namespace Phonon { } namespace Swift { - class QtSoundPlayer : public SoundPlayer{ + class QtSoundPlayer : public QObject, public SoundPlayer { + Q_OBJECT public: QtSoundPlayer(); ~QtSoundPlayer(); @@ -17,5 +19,7 @@ namespace Swift { private: Phonon::AudioOutput* audioOutput_; Phonon::MediaObject* messageReceived_; + private slots: + void handleFinished(); }; } |