diff --git a/retroshare-gui/src/gui/SoundManager.cpp b/retroshare-gui/src/gui/SoundManager.cpp index 69ba9e64b..3fc60dd87 100644 --- a/retroshare-gui/src/gui/SoundManager.cpp +++ b/retroshare-gui/src/gui/SoundManager.cpp @@ -21,12 +21,22 @@ #include #include #include -#include #include +#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0) +#include +#include +#include +#elif QT_VERSION >= QT_VERSION_CHECK (5, 0, 0) +#include +#endif + +#if QT_VERSION < QT_VERSION_CHECK (6, 0, 0) +#include +#endif + #if QT_VERSION >= QT_VERSION_CHECK (5, 0, 0) #include -#include #endif // #ifdef QMEDIAPLAYER @@ -241,15 +251,25 @@ void SoundManager::playFile(const QString &filename) QString playFilename = realFilename(filename); bool played = false ; - -#if QT_VERSION >= QT_VERSION_CHECK (5, 0, 0) + +#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0) + if (!QMediaDevices::audioOutputs().isEmpty()) +#elif QT_VERSION >= QT_VERSION_CHECK (5, 0, 0) if (!QAudioDeviceInfo::availableDevices(QAudio::AudioOutput).isEmpty()) #else if (QSound::isAvailable()) #endif { +#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0) + if (soundManager) { + soundManager->mSoundEffect.setSource(QUrl::fromLocalFile(playFilename)); + soundManager->mSoundEffect.play(); + played = true; + } +#else QSound::play(playFilename); played = true ; +#endif } if(!played) // let's go for the hard core stuff diff --git a/retroshare-gui/src/gui/SoundManager.h b/retroshare-gui/src/gui/SoundManager.h index 41db55ce4..eeceb3048 100644 --- a/retroshare-gui/src/gui/SoundManager.h +++ b/retroshare-gui/src/gui/SoundManager.h @@ -24,6 +24,10 @@ #include #include +#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0) +#include +#endif + #define SOUND_NEW_CHAT_MESSAGE "NewChatMessage" #define SOUND_USER_ONLINE "User_go_Online" #define SOUND_MESSAGE_ARRIVED "MessageArrived" @@ -91,6 +95,10 @@ public: private: SoundManager(); + +#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0) + QSoundEffect mSoundEffect; +#endif }; extern SoundManager *soundManager;