*/
#include <QtCore/QFile>
-#include <QMediaPlayer>
+#include <QtCore/QTimer>
#include "speedalarm.h"
#include "settings.h"
#include "odometer.h"
#include "poialerts.h"
#include "mediaplayer.h"
-SpeedAlarm::SpeedAlarm(): QObject(0), loaded_(false), enabled_(false), isOver_(false)
+
+SpeedAlarm::SpeedAlarm(): QObject(0), loaded_(false),
+enabled_(false), isOver_(false), timer_(0)
+{
+}
+
+SpeedAlarm::~SpeedAlarm()
{
+ delete timer_;
}
SpeedAlarm& SpeedAlarm::instance()
return;
}
- threshold_ = Settings::instance().value("alarm_threshold", 0).toInt();
+ threshold_ = Settings::instance().value("alarm_threshold", 0).toDouble();
start();
}
{
MediaPlayer::play(soundFile_);
isOver_ = true;
+ emit speedExceedChanged(true);
+ startAlarmTimer();
}
}
else
{
+ if(isOver_)
+ {
+ emit speedExceedChanged(false);
+ }
+
isOver_ = false;
}
}
+
+void SpeedAlarm::startAlarmTimer()
+{
+ if(timer_)
+ {
+ timer_->stop();
+ delete timer_;
+ timer_ = 0;
+ }
+
+ timer_ = new QTimer;
+ timer_->setInterval(ALARM_INTERVAL * 1000);
+ connect(timer_, SIGNAL(timeout()), this, SLOT(playAlarmSound()));
+ timer_->start();
+}
+
+void SpeedAlarm::playAlarmSound()
+{
+ if(isOver_)
+ {
+ MediaPlayer::play(soundFile_);
+ }
+ else
+ {
+ delete timer_;
+ timer_ = 0;
+ }
+}