diff --git a/harbour-boxing-timer.pro b/harbour-boxing-timer.pro index c7a6646..ca6693c 100644 --- a/harbour-boxing-timer.pro +++ b/harbour-boxing-timer.pro @@ -5,6 +5,8 @@ DEFINES += APP_RELEASE=\\\"$$RELEASE\\\" CONFIG += sailfishapp +QT += multimedia + SOURCES += src/harbour-boxing-timer.cpp \ src/boxingtimer.cpp \ src/boxingsettings.cpp diff --git a/harbour-boxing-timer.qrc b/harbour-boxing-timer.qrc index 2882740..551e9dd 100644 --- a/harbour-boxing-timer.qrc +++ b/harbour-boxing-timer.qrc @@ -1,5 +1,7 @@ - resources/bell.wav + resources/play.wav + resources/rest.wav + resources/stop.wav diff --git a/qml/harbour-boxing-timer.qml b/qml/harbour-boxing-timer.qml index e26a14d..e8ebd10 100644 --- a/qml/harbour-boxing-timer.qml +++ b/qml/harbour-boxing-timer.qml @@ -37,12 +37,6 @@ import "pages" ApplicationWindow { BoxingTimer { id: boxingTimer - - onStatusChanged: { - if (status === BoxingTimer.Start) { - bell.play() - } - } } BoxingSettings { @@ -54,12 +48,6 @@ ApplicationWindow { } } - SoundEffect { - id: bell - - source: "qrc:/audio/resources/bell.wav" - } - initialPage: firstPage cover: Qt.resolvedUrl("cover/CoverPage.qml") allowedOrientations: Orientation.Portrait diff --git a/resources/play.wav b/resources/play.wav new file mode 100644 index 0000000..a400c5f Binary files /dev/null and b/resources/play.wav differ diff --git a/resources/rest.wav b/resources/rest.wav new file mode 100644 index 0000000..aa2cc5a Binary files /dev/null and b/resources/rest.wav differ diff --git a/resources/stop.wav b/resources/stop.wav new file mode 100644 index 0000000..a720dcb Binary files /dev/null and b/resources/stop.wav differ diff --git a/src/boxingtimer.cpp b/src/boxingtimer.cpp index 6179509..b120590 100644 --- a/src/boxingtimer.cpp +++ b/src/boxingtimer.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "boxingtimer.h" #include "boxingsettings.h" @@ -11,9 +12,8 @@ BoxingTimer::BoxingTimer() : mOldStatus(Status::Default) { this->setTimerType(Qt::VeryCoarseTimer); - settings = new BoxingSettings(); - - mRemainingMilliseconds = settings->getRoundMilliseconds(); + this->settings = new BoxingSettings(); + this->mRemainingMilliseconds = settings->getRoundMilliseconds(); QObject::connect(this, SIGNAL(statusChanged()), this, SLOT(applyStatus())); QObject::connect(this, SIGNAL(timeout()), this, SLOT(updateRemainingMilliseconds())); @@ -58,6 +58,8 @@ void BoxingTimer::start(const int &milliseconds) { } void BoxingTimer::applyStatus() { + this->songsBell(); + switch (this->mStatus) { case Status::Reset: if (this->mOldStatus == Status::Start) { @@ -105,6 +107,8 @@ void BoxingTimer::updateRemainingMilliseconds() { this->nextRound(); } + + this->songsBell(); } } @@ -150,3 +154,13 @@ void BoxingTimer::loadPreset(const QString &preset) { emit roundsToStringChanged(); emit remainingTimeToStringChanged(); } + +void BoxingTimer::songsBell() { + if (this->mStatus == Status::Start) { + QSound::play(":/audio/resources/play.wav"); + } else if (this->mStatus == Status::Rest || this->mStatus == Status::Pause) { + QSound::play(":/audio/resources/rest.wav"); + } else if (this->mStatus == Status::Stop) { + QSound::play(":/audio/resources/stop.wav"); + } +} diff --git a/src/boxingtimer.h b/src/boxingtimer.h index acb4b82..f7dc794 100644 --- a/src/boxingtimer.h +++ b/src/boxingtimer.h @@ -157,6 +157,8 @@ class BoxingTimer : public QTimer { void setRemainingMilliseconds(const int &milliseconds); void setRound(const int &round); + void songsBell(); + Status mStatus; Status mOldStatus;