/*************************************************************************** alarm.cpp - description ------------------- begin : Mon Feb 4 2002 copyright : (C) 2002 by Martin Witte / Frank Schwanz email : witte@kawo1.rwth-aachen.de / schwanz@fh-brandenburg.de ***************************************************************************/ /*************************************************************************** * * * 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 TQDateTime &time, bool daily, bool enabled) : m_time (time), m_daily (daily), m_weekdayMask (0x7F), m_enabled (enabled), m_stationID (TQString()), m_volumePreset (-1), m_type (StartPlaying), m_ID (++m_LastID) { } Alarm::Alarm () : m_time (TQDateTime (TQDate(1800, 1,1), TQTime(0,0,0))), m_daily (false), m_weekdayMask (0x7F), m_enabled (false), m_stationID (TQString()), 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() { } TQDateTime Alarm::nextAlarm(bool ignoreEnable) const { TQDateTime now = TQDateTime::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 : TQDateTime(); }