summaryrefslogtreecommitdiffstats
path: root/kradio3/src/timecontrol_interfaces.cpp
blob: 1ba4e5717f67cbe95a90d6925237a44465ca010d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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();
}