From 68096fe9abe2374fbd6f336de4a9fbc9a4a853a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tinkl?= Date: Fri, 9 Dec 2022 13:57:46 +0100 Subject: [PATCH] fix(SoundManager): use logarithmic sound volume scale Needed for status-im/status-desktop#8426 --- .../include/DOtherSide/Status/SoundManager.h | 24 ++----------------- .../lib/src/Status/SoundManager.cpp | 8 ++++--- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/vendor/DOtherSide/lib/include/DOtherSide/Status/SoundManager.h b/vendor/DOtherSide/lib/include/DOtherSide/Status/SoundManager.h index 895461f4fc..7886ef6696 100644 --- a/vendor/DOtherSide/lib/include/DOtherSide/Status/SoundManager.h +++ b/vendor/DOtherSide/lib/include/DOtherSide/Status/SoundManager.h @@ -1,5 +1,4 @@ -#ifndef STATUS_SOUND_MANAGER_H -#define STATUS_SOUND_MANAGER_H +#pragma once #include #include @@ -10,30 +9,13 @@ namespace Status class SoundManager : public QObject { Q_OBJECT - + Q_DISABLE_COPY_MOVE(SoundManager) public: /*! * Singleton instance. */ static SoundManager &instance(); - /*! - * Delete copy constructor. - */ - SoundManager(const SoundManager &) = delete; - /*! - * Delete move constructor. - */ - SoundManager(SoundManager &&) = delete; - /*! - * Delete copy asignment operator. - */ - SoundManager &operator=(const SoundManager &) = delete; - /*! - * Delete move asignment operator. - */ - SoundManager &operator=(SoundManager &&) = delete; - /*! * Plays a sound with soundUrl. * @@ -60,5 +42,3 @@ namespace Status std::unique_ptr m_player; }; } - -#endif diff --git a/vendor/DOtherSide/lib/src/Status/SoundManager.cpp b/vendor/DOtherSide/lib/src/Status/SoundManager.cpp index d02ec1e48c..a49e190be2 100644 --- a/vendor/DOtherSide/lib/src/Status/SoundManager.cpp +++ b/vendor/DOtherSide/lib/src/Status/SoundManager.cpp @@ -17,7 +17,7 @@ void SoundManager::playSound(const QUrl &soundUrl) { if (m_player->state() != QMediaPlayer::PlayingState) { - if (m_player->currentMedia().canonicalUrl() != soundUrl) + if (m_player->currentMedia().request().url() != soundUrl) { m_player->setMedia(soundUrl); } @@ -28,10 +28,12 @@ void SoundManager::playSound(const QUrl &soundUrl) void SoundManager::setPlayerVolume(int volume) { - m_player->setVolume(volume); + m_player->setVolume(QAudio::convertVolume(volume / qreal(100.0), + QAudio::LogarithmicVolumeScale, + QAudio::LinearVolumeScale) * 100); } void SoundManager::stopPlayer() { m_player->stop(); -} \ No newline at end of file +}