--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Shared/Include/ASShdDefs.h Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,420 @@
+// Copyright (c) 1999-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 __ASSHDDEFS_H__
+#define __ASSHDDEFS_H__
+
+/** @file
+@publishedAll
+@released */
+
+// System includes
+#include <e32std.h>
+#include <babitflags.h>
+
+// Constants
+
+/** Maximum length of an alarm message. The message is usually displayed by the
+alarm UI. */
+const TInt KMaxAlarmMessageLength = 0x80;
+/** Maximum length of the filename of the sound played when an alarm expires. */
+const TInt KMaxAlarmSoundNameLength = KMaxFileName;
+
+// Type definitions
+/** A unique identifier allocated to each new alarm by the alarm server, so that
+the client can identify them. By default, KNullAlarmId. */
+typedef TInt TAlarmId;
+/** A unique identifier that can optionally be used by clients to group
+alarms into categories, for instance alarms associated with a particular application
+or application engine. The alarm server ignores the category. It is relevant
+to the client alone. */
+typedef TUid TAlarmCategory;
+//
+/** Flags that define an alarm's characteristics.
+
+@see TAlarmCharacteristics */
+typedef TBitFlags8 TAlarmCharacteristicsFlags;
+//
+
+/** A type to identify what kind of alarms should be deleted when using the API
+RASCliSession::AlarmDeleteByCategory()
+@see TTDeleteTypeEnum */
+typedef TInt TDeleteType;
+
+/** Stores the text message associated with an alarm. */
+typedef TBuf<KMaxAlarmMessageLength> TAlarmMessage;
+/** Stores the name of a sound file which is played when an alarm activates. */
+typedef TBuf<KMaxAlarmSoundNameLength> TAlarmSoundName;
+//
+/** Defines a null alarm identifier. */
+const TAlarmId KNullAlarmId = 0;
+//
+/** Defines the length in seconds of an alarm sound offset. */
+const TInt KDefaultSoundPlayOffsetInSeconds = 0;
+/** Defines the length in seconds of an alarm sound duration. */
+const TInt KDefaultSoundPlayDurationInSeconds = 30;
+
+// Constants
+/** A category that can be assigned to identify clock alarms to the client. The
+server does not distinguish between alarm types. */
+const TAlarmCategory KASCliCategoryClock = { 0x101F5030 };
+
+/** Defines whether an alarm is enabled or disabled:
+
+An enabled alarm activates at a specified time.
+
+A disabled alarm remains in the alarm server queue but is not active.
+
+You can get or set an alarm's status using the RASCliSession class. */
+enum TAlarmStatus
+ {
+ /** The alarm is currently enabled. */
+ EAlarmStatusEnabled = 0,
+
+ /** The alarm is currently disabled, and will not expire. */
+ EAlarmStatusDisabled,
+ };
+
+/** Represents an alarm's state. Alarms can have only one state. */
+enum TAlarmState
+ {
+ /** The alarm state is not currently known by the alarm server. */
+ EAlarmStateInPreparation = -1,
+
+ /** The alarm is waiting for its expiry time to be reached. */
+ EAlarmStateQueued = 0,
+
+ /** The alarm is snoozed. When the snooze period is over, the alarm expires again. */
+ EAlarmStateSnoozed,
+
+ /** The alarm is waiting to be notified.
+
+ This state occurs when an alarm expires while another is being notified. When
+ this happens, the alarm being notified changes state to EAlarmStateWaitingToNotify.
+ This means that if it is set to be the next alarm to be notified, notification
+ will happen after the newly expired alarm has been notified and dismissed. */
+ EAlarmStateWaitingToNotify,
+
+ /** The alarm is currently notifying. */
+ EAlarmStateNotifying,
+
+ /** The alarm has already notified and has been dismissed. Any alarm which remains
+ in this state is dead. */
+ EAlarmStateNotified
+ };
+
+/** Defines an alarm session type as timed or untimed. This property is ignored by
+the alarm server, and is for use by the client only. */
+enum TAlarmDayOrTimed
+ {
+ /** Timed alarm type (default). This alarm belongs to a timed event. This is an event
+ with a defined start and finish time. The alarm notification
+ time is specified as an offset from the event's start time, so that when the
+ event time changes, so does the alarm time. */
+ EASShdAlarmTypeTimed = 0,
+
+ /** Day alarm type. This alarm belongs to untimed events; these do not have
+ a defined start and finish time, but have an activation time. */
+ EASShdAlarmTypeDay
+ };
+
+/** Defines the sound state of the global alarm server . */
+enum TAlarmGlobalSoundState
+ {
+ /** When an alarm expires, the alarm sound is played. */
+ EAlarmGlobalSoundStateOn = 0,
+
+ /** When an alarm expires, no sound plays. */
+ EAlarmGlobalSoundStateOff
+ };
+
+/** Defines how an alarm is to be repeated. */
+enum TAlarmRepeatDefinition
+ {
+ /** The alarm expires only once, and is then deleted from the alarm server. By
+ default, all alarms behave this way.
+
+ Standard repeat-once alarms are date relative, that is, they occur on a fixed
+ date and point in time.
+
+ If the user changes the system date or time so that the new time is in the
+ future, and the new time is after the previously calculated expiry time:
+
+ By less than 12 hours, the alarm expires immediately.
+
+ By more than 12 horus, the alarm is silently discarded.
+
+ If the user changes the system date or time so that the new time is before
+ the next calculated expiry time, the alarm type continues to be a
+ "Repeat once" alarm*/
+ EAlarmRepeatDefintionRepeatOnce = 0,
+
+ /** When initially scheduling the alarm, the date is always within the
+ next 24 hours. For example:
+
+ The current time is 15:00, and the alarm time specified is 14:00. The
+ alarm expires tomorrow at 14:00.
+
+ The current time is 15:00, and the alarm time specified is 16:00. The
+ alarm expires today at 16:00.
+
+ If the alarm is missed, i.e. because the alarm server is inactive, then
+ the alarm changes its type from "Repeat in the next 24 Hours" to "Repeat once".
+
+ If the user changes the system date or time so that the new time is in the
+ future, and the new time is after the previously calculated expiry time:
+
+ By less than 12 hours, the alarm expires immediately.
+
+ By more than 12 horus, the alarm is silently discarded.
+
+ If the user changes the system date or time so that the new time is
+ before the next calculated expiry time:
+
+ By less than 12 hours, no change in alarm type, and the alarm
+ remains queued.
+
+ By greater than 12 hours, the alarm changes its type from
+ "Repeat in the next 24 Hours" to "Repeat once". Subsequent changes in system
+ time result in the behaviour described by the EAlarmRepeatDefintionRepeatOnce
+ characteristic. */
+ EAlarmRepeatDefintionRepeatNext24Hours,
+
+ /** The alarm repeats every day at the same time. If the user changes the system
+ date or time, this alarm behaves in the same way as a "Repeat once" alarm,
+ except that the alarm is not deleted, but rescheduled for the next available
+ time.
+
+ If the user changes the system date or time to a point in the past, there
+ are no phantom alarm expiries. */
+ EAlarmRepeatDefintionRepeatDaily,
+
+ /** The alarm repeats every work day at the same time. If the user changes the
+ system date or time, this alarm behaves in the same way as a "Repeat once"
+ alarm, except that the alarm is not deleted, but rescheduled for the next
+ available time.
+
+ If the user changes the system date or time to a point in the past, there
+ are no phantom alarm expiries. */
+ EAlarmRepeatDefintionRepeatWorkday,
+
+ /** The alarm repeats every week, on the same day at the same time. If the user
+ changes the system date or time, this alarm behaves in the same way as a "Repeat
+ once" alarm, except that the alarm is not deleted, but rescheduled for the
+ next available time.
+
+ If the user changes the system date or time to a point in the past, there
+ are no phantom alarm expiries. */
+ EAlarmRepeatDefintionRepeatWeekly,
+
+#ifdef SYMBIAN_ALARM_REPEAT_EXTENSIONS
+ /** The alarm repeats every specified day at the same time. If the user
+ changes the system date or time, this alarm behaves in the same way as a
+ "repeat once" alarm, except that the alarm is not deleted, but rescheduled
+ for the next available time.
+
+ If the user changes the system date or time to a point in the past, there
+ are no phantom alarm expiries.*/
+ EAlarmRepeatDefinitionRepeatDailyOnGivenDays
+#endif
+ };
+
+/** Defines various alarm characteristics. */
+enum TAlarmCharacteristics
+ {
+ /** Sets an alarm to be session-only. This alarm only exists as long as a session
+ is maintained with the alarm server. Session alarms are removed from the alarm
+ queue when the originating session disconnects from the server. By default,
+ all alarms are persistent and remain so, even after the initiating session
+ has disconnected. */
+ EAlarmCharacteristicsSessionSpecific = 0,
+
+ /** Do not display a screen. By default, all alarms result in a suitable screen
+ being displayed, depending on the device. Use this flag to disable this default
+ behaviour. */
+ EAlarmCharacteristicsDoNotNotifyAlarmAlertServer = 1,
+
+ /** Sets an alarm to be floating - floating alarms expire at the current local time,
+ regardless of the current locale or DST rules.*/
+ EAlarmCharacteristicsIsFixed = 2,
+
+ /** Do not notify if its due time is in the past.*/
+ EAlarmCharacteristicsDeQueueIfDueTimeInPast = 3,
+ //
+ EAlarmCharacteristicsLast
+ };
+
+/** This enumeration defines the events that can be reported by the alarm server.
+
+These events are channelled to the client using the RASCliSession::NotifyChange()
+method.
+
+@see TAlarmState */
+enum TAlarmChangeEvent
+ {
+ /** An alarm has changed state.
+
+ @see TAlarmState */
+ EAlarmChangeEventState = 1,
+
+ /** An alarm has changed status.
+
+ @see TAlarmStatus */
+ EAlarmChangeEventStatus = 2,
+
+ /** An alarm has changed characteristics.
+
+ @see TAlarmCharacteristics */
+ EAlarmChangeEventCharacteristics = 3,
+
+ /** An alarm has been deleted from the queue of alarms. */
+ EAlarmChangeEventAlarmDeletion = 4,
+
+ /** An alarm has been added to the queue of alarms. */
+ EAlarmChangeEventAlarmAddition = 5,
+
+ /** An alarm has expired. */
+ EAlarmChangeEventTimerExpired = 6,
+
+ /** The sound for an alarm has just started playing. */
+ EAlarmChangeEventSoundPlaying = 7,
+
+ /** The sound for an alarm has just stopped playing. */
+ EAlarmChangeEventSoundStopped = 8,
+
+ /** The sound intervals associated with sound timing have changed. */
+ EAlarmChangeEventPlayIntervalsChanged = 9,
+
+ /** The global sound state (on/off) has changed. */
+ EAlarmChangeEventGlobalSoundStateChanged = 10,
+
+ /** The next alarm at the head of the alarm queue has changed. */
+ EAlarmChangeEventHeadQueueItemChanged = 11,
+
+ /** The system date or time has changed, or the days defined as workdays have changed. */
+ EAlarmChangeEventSystemDateTimeChanged = 12,
+
+ /** The alarm alert server has been instructed to show the 'alarm expired' display. */
+ EAlarmChangeEventAlarmUIVisible = 13,
+
+ /** The alarm alert server has been instructed to hide the 'alarm expired' display. */
+ EAlarmChangeEventAlarmUIInvisible = 14,
+
+ /** Alarm sounds have been temporarily silenced, the current alarm has been paused
+ or re-enabled. */
+ EAlarmChangeEventSoundSilence = 15,
+
+ /** The data associated with an alarm has changed. */
+ EAlarmChangeEventAlarmData = 16,
+
+ /** A restore from backup of the alarm server has started. Alarms cannot be added/deleted
+ until this has finished. */
+ EAlarmChangeEventRestoreStarted = 17,
+
+ /** A restore from backup of the alarm server has failed. Alarms can be added/deleted again. */
+ EAlarmChangeEventRestoreFailed = 18,
+
+ /** A restore from backup of the alarm server has completed. The alarm queue has changed. */
+ EAlarmChangeEventRestoreCompleted = 19,
+
+ /** Last change event (anchor). This is always at the end of the list. */
+ EAlarmChangeEventLast,
+
+ /** An undefined alarm event has occurred. */
+ EAlarmChangeEventUndefined = 0
+ };
+
+/** Identifies server-initiated panics relating to the client session. */
+enum TAlarmServerInitiatedClientPanic
+ {
+ /** This panic occurs when the client requests a copy of any data attached to an
+ alarm, but does not supply enough buffer space to contain the data. */
+ EAlarmServerInitiatedClientPanicInsufficientRoomForAlarmData = 0,
+
+ /** This panic usually occurs when a client method tries to write to a descriptor
+ (sometimes asynchronously), and the client-supplied descriptor is not valid. */
+ EAlarmServerInitiatedClientPanicBadDescriptor = 1,
+
+ /** This panic occurs when a client already has an outstanding notification request,
+ but attempts to request another. */
+ EAlarmServerInitiatedClientPanicChangeNotificationAlreadyOutstanding = 2,
+
+ /** This panic occurs when a client tries to perform an invalid operation. */
+ EAlarmServerInitiatedClientPanicInvalidOperation = 3,
+
+ /** This panic occurs when a request to add an alarm contains a null alarm identiifer.
+ In the case of alarms with notifications, the client should pre-allocate the
+ alarm identifier before requesting the notification. */
+ EAlarmServerInitiatedClientPanicBadPreAllocatedAlarmId = 4
+
+ };
+
+/** Identifies what kind of alarms the client wants to delete. */
+enum TDeleteTypeEnum
+ {
+ /** All type of alarms. */
+ EAllAlarms = 0,
+ /** Alarms future of the current time */
+ EFuture = 1,
+ /** Alarms in the past of the current time but notifying, or waiting to notify, or snoozed by, the user */
+ EActive = 2,
+ /** alarms that has been dismissed by the user */
+ EExpired = 4
+ };
+
+#ifdef SYMBIAN_ALARM_REPEAT_EXTENSIONS
+/**
+This enumeration indicates which days of the week an alarm with a repeat
+definition of EAlarmRepeatDefinitionRepeatDailyOnGivenDays activates on. Days
+are combined using the bitwise OR operator.
+
+@prototype
+*/
+enum TAlarmDays
+ {
+ /** Alarm is active on Monday. */
+ EAlarmDayMonday = 0x01,
+ /** Alarm is active on Tuesday. */
+ EAlarmDayTuesday = 0x02,
+ /** Alarm is active on Wednesday. */
+ EAlarmDayWednesday = 0x04,
+ /** Alarm is active on Thursday. */
+ EAlarmDayThursday = 0x08,
+ /** Alarm is active on Friday. */
+ EAlarmDayFriday = 0x10,
+ /** Alarm is active on Saturday. */
+ EAlarmDaySaturday = 0x20,
+ /** Alarm is active on Sunday. */
+ EAlarmDaySunday = 0x40
+ };
+#endif
+
+#ifdef SYMBIAN_SKIPPED_CALENDAR_ALARMS
+/** Identifies the type of alarm which was missed. A UTC offset change will only
+affect floating alarms whereas a system time change may affect either floating
+or fixed alarms.
+@see TASShdAlarmedInstanceParams
+@see CASSrvAlarmQueue::MEnvChangeHandleEvent
+*/
+enum TASShdAlarmTimeType
+ {
+ /** Floating time alarm. */
+ EFloating,
+ /** Floating or fixed time alarm. */
+ EFloatingOrFixed
+ };
+#endif
+
+#endif