File indexing completed on 2023-05-30 10:40:03
0001 /* 0002 SPDX-FileCopyrightText: 2005 Albert Astals Cid <aacid@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "soundsplayer.h" 0008 0009 #include "settings.h" 0010 0011 #include <QStandardPaths> 0012 0013 soundsPlayer::soundsPlayer() 0014 : m_audioOutput(Phonon::GameCategory) 0015 { 0016 m_audioOutput.setVolume( 0.8f ); 0017 Phonon::createPath(&m_mediaObject, &m_audioOutput); 0018 connect(&m_mediaObject, &Phonon::MediaObject::finished, this, &soundsPlayer::playEnded); 0019 0020 m_allSound = QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("sounds/lose.wav")); 0021 m_greenSound = QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("sounds/1.wav")); 0022 m_redSound = QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("sounds/2.wav")); 0023 m_blueSound = QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("sounds/3.wav")); 0024 m_yellowSound = QStandardPaths::locate(QStandardPaths::AppLocalDataLocation, QStringLiteral("sounds/4.wav")); 0025 0026 connect(&m_warnTimer, &QTimer::timeout, this, &soundsPlayer::ended); 0027 m_warnTimer.setSingleShot(true); 0028 } 0029 0030 soundsPlayer::~soundsPlayer() 0031 { 0032 } 0033 0034 void soundsPlayer::play(blinkenGame::color c) 0035 { 0036 if (blinkenSettings::playSounds()) 0037 { 0038 QString soundFile; 0039 switch (c) 0040 { 0041 case blinkenGame::red: 0042 soundFile = m_redSound; 0043 break; 0044 0045 case blinkenGame::green: 0046 soundFile = m_greenSound; 0047 break; 0048 0049 case blinkenGame::blue: 0050 soundFile = m_blueSound; 0051 break; 0052 0053 case blinkenGame::yellow: 0054 soundFile = m_yellowSound; 0055 break; 0056 0057 case blinkenGame::all: 0058 soundFile = m_allSound; 0059 break; 0060 0061 default: 0062 break; 0063 } 0064 if (!soundFile.isEmpty()) 0065 { 0066 m_mediaObject.setCurrentSource(QUrl::fromLocalFile(soundFile)); 0067 m_mediaObject.play(); 0068 } 0069 } 0070 else 0071 { 0072 m_warnTimer.start(250); 0073 } 0074 } 0075 0076 void soundsPlayer::playEnded() 0077 { 0078 if (blinkenSettings::playSounds()) 0079 { 0080 m_warnTimer.start(250); 0081 } 0082 } 0083