summaryrefslogtreecommitdiffstats
path: root/kradio3/src/alarm.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-22 18:23:26 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-22 18:23:26 +0000
commitae364d9bed0589bf1a22cd5f530c563462379e3e (patch)
treee32727e2664e7ce68d0d30270afa040320ae35a1 /kradio3/src/alarm.cpp
downloadtderadio-ae364d9bed0589bf1a22cd5f530c563462379e3e.tar.gz
tderadio-ae364d9bed0589bf1a22cd5f530c563462379e3e.zip
Added old KDE3 version of kradio
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kradio@1094417 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kradio3/src/alarm.cpp')
-rw-r--r--kradio3/src/alarm.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/kradio3/src/alarm.cpp b/kradio3/src/alarm.cpp
new file mode 100644
index 0000000..3c6784e
--- /dev/null
+++ b/kradio3/src/alarm.cpp
@@ -0,0 +1,82 @@
+/***************************************************************************
+ alarm.cpp - description
+ -------------------
+ begin : Mon Feb 4 2002
+ copyright : (C) 2002 by Martin Witte / Frank Schwanz
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+#include "include/alarm.h"
+
+int Alarm::m_LastID = 0;
+
+Alarm::Alarm(const QDateTime &time, bool daily, bool enabled)
+ : m_time (time),
+ m_daily (daily),
+ m_weekdayMask (0x7F),
+ m_enabled (enabled),
+ m_stationID (QString::null),
+ m_volumePreset (-1),
+ m_type (StartPlaying),
+ m_ID (++m_LastID)
+{
+}
+
+
+Alarm::Alarm ()
+ : m_time (QDateTime (QDate(1800, 1,1), QTime(0,0,0))),
+ m_daily (false),
+ m_weekdayMask (0x7F),
+ m_enabled (false),
+ m_stationID (QString::null),
+ m_volumePreset(-1),
+ m_type (StartPlaying),
+ m_ID (++m_LastID)
+{
+}
+
+
+Alarm::Alarm (const Alarm &a)
+ : m_time (a.m_time),
+ m_daily (a.m_daily),
+ m_weekdayMask (a.m_weekdayMask),
+ m_enabled (a.m_enabled),
+ m_stationID (a.m_stationID),
+ m_volumePreset(a.m_volumePreset),
+ m_type (a.m_type),
+ m_ID (a.m_ID)
+{
+}
+
+
+Alarm::~Alarm()
+{
+}
+
+
+QDateTime Alarm::nextAlarm(bool ignoreEnable) const
+{
+ QDateTime now = QDateTime::currentDateTime(),
+ alarm = m_time;
+ if (m_daily) {
+ alarm.setDate (now.date());
+ if (alarm <= now)
+ alarm = alarm.addDays(1);
+ while (m_weekdayMask &&
+ !(m_weekdayMask & (1 << (alarm.date().dayOfWeek()-1))))
+ {
+ alarm = alarm.addDays(1);
+ }
+ }
+ return (m_enabled || ignoreEnable) && (!m_daily || m_weekdayMask) ? alarm : QDateTime();
+}
+
+