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