void KOEditorAlarms::changed() { if ( !mInitializing && mCurrentItem ) { writeAlarm( mCurrentItem->alarm() ); mCurrentItem->construct(); } }
void setAlarm() { // If we have an alarm available that can be set if(currentAlarm) { // If we are out of time for the reminder, output it immediately! if(currentAlarm->time - currentAlarm->prev->time <= 0) writeAlarm(0); else // Otherwise, schedule it for the future alarm(currentAlarm->time - currentAlarm->prev->time); } }
void changeAlarm(int diff) { switch (_eam) { case DS1307_A0_HOUR: alarm[DS1307_A0_HOUR - DS1307_A0_HOUR] += diff; if (alarm[DS1307_A0_HOUR - DS1307_A0_HOUR] > 23) alarm[DS1307_A0_HOUR - DS1307_A0_HOUR] = 0; if (alarm[DS1307_A0_HOUR - DS1307_A0_HOUR] < 0) alarm[DS1307_A0_HOUR - DS1307_A0_HOUR] = 23; break; case DS1307_A0_MIN: alarm[DS1307_A0_MIN - DS1307_A0_HOUR] += diff; if (alarm[DS1307_A0_MIN - DS1307_A0_HOUR] > 59) alarm[DS1307_A0_MIN - DS1307_A0_HOUR] = 0; if (alarm[DS1307_A0_MIN - DS1307_A0_HOUR] < 0) alarm[DS1307_A0_MIN - DS1307_A0_HOUR] = 59; break; case DS1307_A0_INPUT: alarm[DS1307_A0_INPUT - DS1307_A0_HOUR] += diff; if (alarm[DS1307_A0_INPUT - DS1307_A0_HOUR] >= sndInputCnt()) alarm[DS1307_A0_INPUT - DS1307_A0_HOUR] = 0; if (alarm[DS1307_A0_INPUT - DS1307_A0_HOUR] < 0) alarm[DS1307_A0_INPUT - DS1307_A0_HOUR] = sndInputCnt() - 1; break; case DS1307_A0_WDAY: alarm[DS1307_A0_WDAY - DS1307_A0_HOUR] += diff; if (alarm[DS1307_A0_WDAY - DS1307_A0_HOUR] < -64) alarm[DS1307_A0_WDAY - DS1307_A0_HOUR] = 0; if (alarm[DS1307_A0_WDAY - DS1307_A0_HOUR] < 0) alarm[DS1307_A0_WDAY - DS1307_A0_HOUR] = 127; break; default: break; } writeAlarm(); return; }