--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/buildverification/autosmoketest/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