summaryrefslogtreecommitdiffstats
path: root/src/timecontrol_interfaces.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/timecontrol_interfaces.cpp')
-rw-r--r--src/timecontrol_interfaces.cpp104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/timecontrol_interfaces.cpp b/src/timecontrol_interfaces.cpp
new file mode 100644
index 0000000..1ba4e57
--- /dev/null
+++ b/src/timecontrol_interfaces.cpp
@@ -0,0 +1,104 @@
+/***************************************************************************
+ timecontrol_interfaces.cpp - description
+ -------------------
+ begin : Mon Mär 10 2003
+ copyright : (C) 2003 by Martin Witte
+ email : witte@kawo1.rwth-aachen.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/timecontrol_interfaces.h"
+
+static AlarmVector emptyAlarms;
+
+// ITimeControl
+
+IF_IMPL_SENDER ( ITimeControl::notifyAlarmsChanged(const AlarmVector &sl),
+ noticeAlarmsChanged(sl) )
+
+IF_IMPL_SENDER ( ITimeControl::notifyAlarm(const Alarm &a),
+ noticeAlarm(a) )
+
+IF_IMPL_SENDER ( ITimeControl::notifyNextAlarmChanged(const Alarm *a),
+ noticeNextAlarmChanged(a) )
+
+IF_IMPL_SENDER ( ITimeControl::notifyCountdownStarted(const TQDateTime &end),
+ noticeCountdownStarted(end) )
+
+IF_IMPL_SENDER ( ITimeControl::notifyCountdownStopped(),
+ noticeCountdownStopped() )
+
+IF_IMPL_SENDER ( ITimeControl::notifyCountdownZero(),
+ noticeCountdownZero() )
+
+IF_IMPL_SENDER ( ITimeControl::notifyCountdownSecondsChanged(int n),
+ noticeCountdownSecondsChanged(n) )
+
+// ITimeControlClient
+
+IF_IMPL_SENDER ( ITimeControlClient::sendAlarms(const AlarmVector &sl),
+ setAlarms(sl) )
+
+IF_IMPL_SENDER ( ITimeControlClient::sendCountdownSeconds(int n),
+ setCountdownSeconds(n) )
+
+IF_IMPL_SENDER ( ITimeControlClient::sendStartCountdown(),
+ startCountdown() )
+
+IF_IMPL_SENDER ( ITimeControlClient::sendStopCountdown(),
+ stopCountdown() )
+
+
+IF_IMPL_QUERY ( TQDateTime ITimeControlClient::queryNextAlarmTime (),
+ getNextAlarmTime(),
+ TQDateTime() )
+
+IF_IMPL_QUERY ( const Alarm * ITimeControlClient::queryNextAlarm (),
+ getNextAlarm(),
+ NULL )
+
+IF_IMPL_QUERY ( const AlarmVector &ITimeControlClient::queryAlarms (),
+ getAlarms(),
+ emptyAlarms )
+
+IF_IMPL_QUERY ( int ITimeControlClient::queryCountdownSeconds (),
+ getCountdownSeconds(),
+ 30*60 )
+
+IF_IMPL_QUERY ( TQDateTime ITimeControlClient::queryCountdownEnd (),
+ getCountdownEnd(),
+ TQDateTime() )
+
+
+void ITimeControlClient::noticeConnectedI(cmplInterface *, bool /*pointer_valid*/)
+{
+ noticeAlarmsChanged(queryAlarms());
+ noticeNextAlarmChanged(queryNextAlarm());
+ TQDateTime end = queryCountdownEnd();
+ if (end > TQDateTime::currentDateTime())
+ noticeCountdownStarted(end);
+ else
+ noticeCountdownStopped();
+}
+
+
+void ITimeControlClient::noticeDisconnectedI(cmplInterface *, bool /*pointer_valid*/)
+{
+ noticeAlarmsChanged(queryAlarms());
+ noticeNextAlarmChanged(queryNextAlarm());
+ TQDateTime end = queryCountdownEnd();
+ if (end > TQDateTime::currentDateTime())
+ noticeCountdownStarted(end);
+ else
+ noticeCountdownStopped();
+}
+
+