Exemple #1
0
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);
	}
}
Exemple #3
0
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;
}