From e94a0d67cb404aaa24599a3243c153c6415ef108 Mon Sep 17 00:00:00 2001 From: Gurkengewuerz Date: Sat, 15 Feb 2020 20:34:21 +0100 Subject: [PATCH] added try-for sound and disable via sound --- src/notifications.cpp | 46 ++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/src/notifications.cpp b/src/notifications.cpp index 3106553..3b96cb5 100644 --- a/src/notifications.cpp +++ b/src/notifications.cpp @@ -3,6 +3,7 @@ #include "systemnotification.h" #include "mainwindow.hpp" #include "ui_mainwindow.h" +#include #include #include @@ -24,29 +25,34 @@ void notifications::notifyNolog(QString title, QString body, QSystemTrayIcon::Me } void notifications::playSound(notifications::Sound soundType) { - QMediaPlayer*mediaPlayer = new QMediaPlayer(MainWindow::inst()); + if(!settings::settings().value("playSound", true).toBool()) return; - switch (soundType) { - case notifications::Sound::CAPTURE: - mediaPlayer->setMedia(QUrl("qrc:/capturesound.wav")); - break; + try { + QMediaPlayer*mediaPlayer = new QMediaPlayer(MainWindow::inst()); - case notifications::Sound::SUCCESS: - mediaPlayer->setMedia(QUrl("qrc:/successsound.wav")); - break; + switch (soundType) { + case notifications::Sound::CAPTURE: + mediaPlayer->setMedia(QUrl("qrc:/capturesound.wav")); + break; - case notifications::Sound::ERROR: - mediaPlayer->setMedia(QUrl("qrc:/errorsound.wav")); - break; + case notifications::Sound::SUCCESS: + mediaPlayer->setMedia(QUrl("qrc:/successsound.wav")); + break; - default: - break; + case notifications::Sound::ERROR: + mediaPlayer->setMedia(QUrl("qrc:/errorsound.wav")); + break; + + default: + break; + } + + mediaPlayer->setVolume(25); + mediaPlayer->play(); + + if(mediaPlayer->error() != QMediaPlayer::NoError && mediaPlayer->error() != QMediaPlayer::ServiceMissingError) + notifications::notify(QString::number(mediaPlayer->error()), mediaPlayer->errorString(), QSystemTrayIcon::Warning); + } catch (...) { + notifications::notifyNolog(QObject::tr("KShare: No sound driver"), "No sound driver found. Install libqt5multimedia5-plugins for notifcation sound support.", QSystemTrayIcon::Warning); } - - mediaPlayer->setVolume(25); - mediaPlayer->play(); - - if(mediaPlayer->error() != QMediaPlayer::NoError && mediaPlayer->error() != QMediaPlayer::ServiceMissingError) - notifications::notify(QString::number(mediaPlayer->error()), mediaPlayer->errorString(), QSystemTrayIcon::Warning); - }