diff options
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/QtUI/QtSoundPlayer.cpp | 19 | ||||
-rw-r--r-- | Swift/QtUI/QtSoundPlayer.h | 11 | ||||
-rw-r--r-- | Swift/QtUI/QtSwift.cpp | 2 | ||||
-rw-r--r-- | Swift/QtUI/SConscript | 12 | ||||
-rw-r--r-- | Swift/QtUI/Swift.qrc | 1 |
5 files changed, 35 insertions, 10 deletions
diff --git a/Swift/QtUI/QtSoundPlayer.cpp b/Swift/QtUI/QtSoundPlayer.cpp index 94d2ea5..7fd6564 100644 --- a/Swift/QtUI/QtSoundPlayer.cpp +++ b/Swift/QtUI/QtSoundPlayer.cpp @@ -7,18 +7,31 @@ #include "QtSoundPlayer.h" #include <QSound> +#include <iostream> + +#include "Swiften/Application/ApplicationPathProvider.h" namespace Swift { -QtSoundPlayer::QtSoundPlayer() { +QtSoundPlayer::QtSoundPlayer(ApplicationPathProvider* applicationPathProvider) : applicationPathProvider(applicationPathProvider) { } void QtSoundPlayer::playSound(SoundEffect sound) { switch (sound) { - case MessageReceived: - QSound::play(":/sounds/message-received.wav"); + case MessageReceived: + playSound("/sounds/message-received.wav"); break; } } +void QtSoundPlayer::playSound(const String& soundResource) { + boost::filesystem::path resourcePath = applicationPathProvider->getResourcePath(soundResource); + if (boost::filesystem::exists(resourcePath)) { + QSound::play(resourcePath.string().c_str()); + } + else { + std::cerr << "Unable to find sound: " << soundResource << std::endl; + } +} + } diff --git a/Swift/QtUI/QtSoundPlayer.h b/Swift/QtUI/QtSoundPlayer.h index 89e2935..21ad8bb 100644 --- a/Swift/QtUI/QtSoundPlayer.h +++ b/Swift/QtUI/QtSoundPlayer.h @@ -11,11 +11,20 @@ #include <QObject> namespace Swift { + class ApplicationPathProvider; + class String; + class QtSoundPlayer : public QObject, public SoundPlayer { Q_OBJECT public: - QtSoundPlayer(); + QtSoundPlayer(ApplicationPathProvider* applicationPathProvider); void playSound(SoundEffect sound); + + private: + void playSound(const String& soundResource); + + private: + ApplicationPathProvider* applicationPathProvider; }; } diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp index ef02096..55bc112 100644 --- a/Swift/QtUI/QtSwift.cpp +++ b/Swift/QtUI/QtSwift.cpp @@ -80,7 +80,7 @@ QtSwift::QtSwift(po::variables_map options) : autoUpdater_(NULL) { applicationPathProvider_ = new PlatformApplicationPathProvider(SWIFT_APPLICATION_NAME); avatarStorage_ = new AvatarFileStorage(applicationPathProvider_->getAvatarDir()); chatWindowFactory_ = new QtChatWindowFactory(splitter_, settings_, tabs_); - soundPlayer_ = new QtSoundPlayer(); + soundPlayer_ = new QtSoundPlayer(applicationPathProvider_); if (splitter_) { splitter_->show(); } diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript index 6c30f42..0d043fb 100644 --- a/Swift/QtUI/SConscript +++ b/Swift/QtUI/SConscript @@ -127,11 +127,13 @@ myenv.Uic4("QtBookmarkDetailWindow.ui") myenv.Qrc("DefaultTheme.qrc") myenv.Qrc("Swift.qrc") +commonResources = ["../resources/sounds"] + if env["PLATFORM"] == "darwin" : frameworks = [] if env["HAVE_SPARKLE"] : frameworks.append(env["SPARKLE_FRAMEWORK"]) - app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"], frameworks = frameworks) + app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"] + commonResources, frameworks = frameworks) if env["DIST"] : myenv.Command(["Swift-${SWIFT_VERSION}.dmg"], [app], [ "$QTDIR/bin/macdeployqt $SOURCE -dmg", @@ -142,13 +144,15 @@ if env.get("SWIFT_INSTALLDIR", "") : env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram) env.InstallAs(os.path.join(env["SWIFT_INSTALLDIR"], "share", "pixmaps", "swift.xpm"), "../resources/logo/logo-icon-32.xpm") env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "applications"), "../resources/swift.desktop") - + for resource in commonResources : + env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "swift"), resource) + if env["PLATFORM"] == "win32" : if env["DIST"] : myenv.WindowsBundle("Swift", resources = [ os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"), - os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"), - ], + os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"), + ] + commonResources, qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"], qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "QtXMLPatterns4", "phonon4"]) diff --git a/Swift/QtUI/Swift.qrc b/Swift/QtUI/Swift.qrc index b14569e..4da687c 100644 --- a/Swift/QtUI/Swift.qrc +++ b/Swift/QtUI/Swift.qrc @@ -13,7 +13,6 @@ <file alias="icons/avatar.png">../resources/icons/avatar.png</file> <file alias="icons/tray-standard.png">../resources/icons/tray-standard.png</file> <file alias="icons/new-chat.png">../resources/icons/new-chat.png</file> - <file alias="sounds/message-received.wav">../resources/sounds/message-received.wav</file> <file alias="COPYING">../../COPYING</file> </qresource> </RCC> |