buildverification/smoketest/Timew/Inc/ALMMOD.H
branchRCL_3
changeset 20 493058e57c8c
parent 0 9736f095102e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/buildverification/smoketest/Timew/Inc/ALMMOD.H	Wed Sep 01 12:30:50 2010 +0100
@@ -0,0 +1,121 @@
+// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __ALMMOD_H__
+#define __ALMMOD_H__
+
+// System includes
+#include <asclisession.h>
+
+// User includes
+#include "timewmod.h"
+
+// Constants
+const TInt KArrayOfAlarmIdsGranularity = 64;
+const TInt KPriorityAlarmIdleObserver=-0x0010;
+const TInt KPriorityAlarmResponder=-0x0005; // Idle observer priority must be lower than this
+
+//	The alarm model gives a general notification only
+//
+class CAlmIdleObserver : public CIdleObserver
+	{
+public:
+	static CAlmIdleObserver* NewL(MTimewModelObserver* aObserver,TInt aIdlePriority);
+	};
+
+class CAlmModel : public CModelBase
+	{
+public:
+	~CAlmModel();
+	static CAlmModel* NewL(MTimewModelObserver* aObserver,TInt aResponderPriority);
+	virtual void ProcessResponder(TInt aStatus);
+public:
+	TInt AlarmQuietPeriodMinutes() const;
+	TInt AlarmQuietPeriodSet(TInt aMinutes);
+	inline void AlarmQuietPeriodCancel();
+	TTime AlarmQuietPeriodEnd() const;
+	//
+	void AlarmSoundToggle();
+	TInt AlarmSoundStateSet(TBool aSoundOn);
+	TTimeWAlarmSoundState AlarmSoundState() const;
+	//
+	TInt ClockAlarmDelete(TInt aAlarmIndex);
+	TInt ClockAlarmEnable(TInt aAlarmIndex,TTimeWClockAlarmState aClockAlarmState);
+	TTimeWClockAlarmState ClockAlarmState(TInt aAlarmIndex) const;
+	TInt ClockAlarmSet(TInt aAlarmIndex,const TASShdAlarm& aInfo);
+	TInt ClockAlarmInfo(TInt aAlarmIndex,TASShdAlarm& aInfo);
+	//
+	void NextAlarmResetListL();
+	void NextAlarmClearList();
+	TInt NextAlarmNumber() const;
+	TInt NextAlarmDelete(TInt aIndex);
+	TBool NextAlarmCanDelete(TInt aIndex) const;
+	TInt NextAlarm(TFullName& aOwner, TASShdAlarm& aInfo) const;
+	TInt NextAlarmInfo(TInt aIndex, TFullName& aOwner, TASShdAlarm& aInfo) const;
+	//
+	TInt OrphanAlarmNumber() const;
+	inline TInt UnacknowledgedAlarmNumber() const;
+	//
+	void ReviewAlarmResetListL();
+	void ReviewAlarmClearList();
+	TInt ReviewAlarmNumber() const;
+	TInt ReviewAlarmInfo(TInt aIndex, TASShdAlarm& aInfo) const;
+
+private:
+	CAlmModel();
+	void ConstructL(MTimewModelObserver* aObserver,TInt aResponderPriority);
+
+private:
+
+	/**
+	 * The list of clock alarms. Note that although there is always 8
+	 * alarms in this list, not all will be active.
+	 */
+	RPointerArray<TASShdAlarm> iClockAlarms;
+
+	/**
+	 *
+	 */
+	RASCliSession iAlmSvr;
+
+	/**
+	 *
+	 */
+	TRequestStatus iStatus;
+
+	/**
+	 *
+	 */
+	RArray<TAlarmId> iNextAlarmIds;
+
+	/**
+	 *
+	 */
+	RArray<TAlarmId> iReviewAlarmIds;
+	};
+
+
+TInt CAlmModel::UnacknowledgedAlarmNumber() const
+	{
+	TInt count = iAlmSvr.AlarmCountByState(EAlarmStateWaitingToNotify);
+	return (count + iAlmSvr.AlarmCountByState(EAlarmStateNotifying));
+	}
+
+void CAlmModel::AlarmQuietPeriodCancel()
+	{
+	iAlmSvr.CancelAlarmSilence();
+	}
+
+#endif