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;