309 |
} |
} |
310 |
|
|
311 |
Alarm::Alarm(TimeHandler* h, double i, bool r) |
Alarm::Alarm(TimeHandler* h, double i, bool r) |
312 |
: handler(h), interval(i), timeleft(i), repeatp(r) |
: handler(h), interval(i), timeleft(i), repeatp(r) |
313 |
{} |
{} |
314 |
|
|
315 |
void |
void |
316 |
Alarm::tick(double dtime) |
Alarm::tick(double dtime) |
317 |
{ |
{ |
318 |
timeleft -= dtime; |
timeleft -= dtime; |
319 |
while (timeleft <= 0) { |
if (repeatp) { |
320 |
handler->alarm(); |
while (timeleft <= 0) { |
321 |
if (repeatp) { |
handler->alarm(); |
322 |
// better loose some alarm()s than risk unwanted removal of alarm |
// better loose some alarm()s than risk unwanted removal of alarm |
323 |
while (timeleft <= 0) { |
// while (timeleft <= 0) { |
324 |
timeleft += interval; |
timeleft += interval; |
325 |
} |
// } |
326 |
} |
} |
327 |
} |
} |
328 |
} |
} |
329 |
|
|
330 |
Timer::Timer() |
Timer::Timer() : rep(*new Rep) |
|
: rep(*new Rep) |
|
331 |
{} |
{} |
332 |
|
|
333 |
Timer::~Timer() |
Timer::~Timer() { |
|
{ |
|
334 |
delete &rep; |
delete &rep; |
335 |
} |
} |
336 |
|
|