You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tderadio/src/alarm.cpp

83 lines
2.5 KiB

/***************************************************************************
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();
}