epoc32/include/uikon/eikalsup.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
//
williamr@2
    15
williamr@2
    16
williamr@2
    17
williamr@2
    18
/**
williamr@2
    19
 @file
williamr@2
    20
 @internalComponent
williamr@2
    21
*/
williamr@2
    22
williamr@2
    23
#ifndef __EIKALSUP_H__
williamr@2
    24
#define __EIKALSUP_H__
williamr@2
    25
williamr@2
    26
// System includes
williamr@2
    27
#include <e32base.h>
williamr@2
    28
#include <uikon/eiksvfty.h>
williamr@2
    29
#include <asaltdefs.h>
williamr@2
    30
#include <uikon/eikalsrv.h>
williamr@2
    31
williamr@2
    32
/** Patchable ROM constant for the default number of minutes to snooze. See uikon.iby.
williamr@2
    33
@publishedPartner */
williamr@2
    34
IMPORT_C extern const TInt KEikAlarmDefaultSnoozeInMinutes;  // default snooze increment in minutes
williamr@2
    35
williamr@2
    36
/** @internalComponent */
williamr@2
    37
const TInt KEikUseDefaultAlarmSnoozeIncrement = -1; // Use ROM constant KAlarmDefaultSnoozeInMinutes
williamr@2
    38
williamr@2
    39
/** Provides an interface between the alarm server and applications that need to 
williamr@2
    40
handle expiring alarms. 
williamr@2
    41
williamr@2
    42
When an alarm has expired, this class handles silencing, acknowledging and snoozing it, 
williamr@2
    43
and users switching to another application (which causes the alarm to be snoozed for a 
williamr@2
    44
default period).
williamr@2
    45
williamr@2
    46
@publishedPartner 
williamr@2
    47
@released */
williamr@2
    48
NONSHARABLE_CLASS(CEikAlmControlSupervisor) : public CBase
williamr@2
    49
	{
williamr@2
    50
public:
williamr@2
    51
	/** The priority of the periodic timer that is used to count down the snooze period. */
williamr@2
    52
	enum TPriority 
williamr@2
    53
		{ 
williamr@2
    54
		/** The timer's priority. This value is between EPriorityStandard and EPriorityUserInput. */
williamr@2
    55
		ESnoozeCountDownPriority = 0x00000001
williamr@2
    56
		};
williamr@2
    57
public:  //exported API
williamr@2
    58
	inline TInt PauseSoundMinutes() const;
williamr@2
    59
	inline TTime QuietPeriodEndTime() const;
williamr@2
    60
	IMPORT_C void CmdAcknowledgeAlarm();
williamr@2
    61
	IMPORT_C void CmdPauseAlarmSoundL(TInt aNumMinutes = KEikUseDefaultAlarmSnoozeIncrement);
williamr@2
    62
	IMPORT_C void CmdSilenceAlarmSound();
williamr@2
    63
	IMPORT_C TBool CmdTaskAwayFromAlarmL();	// use default snooze time
williamr@2
    64
	IMPORT_C TBool CmdTaskAwayFromAlarmL(TInt aMinutesToSnooze);
williamr@2
    65
	IMPORT_C TDesC8& AlarmData() const;
williamr@2
    66
	IMPORT_C void CmdAcknowledgeAllAlarms();
williamr@2
    67
public: // deprecated	
williamr@2
    68
	inline TBool CmdTaskAwayFromAlarm();	// deprecated
williamr@2
    69
	inline void CmdPauseAlarmSound(TInt aNumMinutes = KEikUseDefaultAlarmSnoozeIncrement);	// deprecated
williamr@2
    70
public: // internal to Symbian
williamr@2
    71
	static CEikAlmControlSupervisor* NewLC(MEikServAlarmFactory& aAlarmControlFactory, CEikServAlarmAlertSession* aSession);
williamr@2
    72
	~CEikAlmControlSupervisor();
williamr@2
    73
	void CancelTimeCountDown();
williamr@2
    74
	void SynchronizeCountDownTimer();
williamr@2
    75
	void ServiceL(const RMessage2& aMessage);
williamr@2
    76
	TBool IsVisible() const;
williamr@2
    77
	TAlarmId AlarmId() const;
williamr@2
    78
protected:
williamr@2
    79
	IMPORT_C virtual void CEikAlmControlSupervisor_Reserved1();
williamr@2
    80
	IMPORT_C virtual void CEikAlmControlSupervisor_Reserved2();
williamr@2
    81
private:
williamr@2
    82
	CEikAlmControlSupervisor();
williamr@2
    83
	void ConstructL(MEikServAlarmFactory& aAlarmControl, CEikServAlarmAlertSession* aSession);
williamr@2
    84
	
williamr@2
    85
	void StartTimeCountDown();
williamr@2
    86
	static TInt CallbackSnoozeDecrement(TAny *aAlarmAlert);
williamr@2
    87
	void DecrementSnoozeMinutes();
williamr@2
    88
	void SetAlertState(TInt aAlarmServerStateFlags);
williamr@2
    89
	void StartPlayAlarmL(const RMessage2& aMessage);
williamr@2
    90
	void StopPlayAlarm();
williamr@2
    91
	
williamr@2
    92
	TTime ReturnTimeToSnooze(TInt aMinutesToSnooze);	
williamr@2
    93
	void UpdateAlarmInfoL(const RMessage2& aMessage);
williamr@2
    94
	void SetVisibility(TBool aVisible);
williamr@2
    95
private:
williamr@2
    96
	CPeriodic* iMinuteCountDown;
williamr@2
    97
	TInt iPauseSoundMinutes;
williamr@2
    98
	TTime iPauseSoundDueTime;
williamr@2
    99
	
williamr@2
   100
	HBufC8*	iAlarmData;
williamr@2
   101
	TBool iVisible;
williamr@2
   102
	CEikServAlarmAlertSession* iSession;
williamr@2
   103
	TAlarmId iAlarmId;
williamr@2
   104
williamr@2
   105
	MEikServAlarm* iAlarmAlert;
williamr@2
   106
	};
williamr@2
   107
williamr@2
   108
/** Gets the number of minutes remaining in the alarm's snooze period, before 
williamr@2
   109
the alarm is due to expire again.
williamr@2
   110
williamr@2
   111
@return The number of minutes remaining in the alarm's snooze period. */
williamr@2
   112
inline TInt CEikAlmControlSupervisor::PauseSoundMinutes() const
williamr@2
   113
	{
williamr@2
   114
	return(iPauseSoundMinutes);
williamr@2
   115
	}
williamr@2
   116
williamr@2
   117
/** Gets the end time for the alarm server's quiet period. 
williamr@2
   118
williamr@2
   119
During a quiet period, any alarms that are due to expire are 
williamr@2
   120
deferred until the quiet period is over. Not all UIs support 
williamr@2
   121
this feature.
williamr@2
   122
williamr@2
   123
@return The end time for the quiet period (if any). */
williamr@2
   124
inline TTime CEikAlmControlSupervisor::QuietPeriodEndTime() const
williamr@2
   125
	{
williamr@2
   126
	return(iSession->QuietPeriodEndTime());
williamr@2
   127
	}
williamr@2
   128
williamr@2
   129
/** @deprecated
williamr@2
   130
williamr@2
   131
Deprecated in 7.0s. Use CEikAlmControlSupervisor::CmdPauseAlarmSoundL() instead 
williamr@2
   132
because RMessage::WriteL() could leave. */
williamr@2
   133
inline void CEikAlmControlSupervisor::CmdPauseAlarmSound(TInt aNumMinutes)
williamr@2
   134
	{ CmdPauseAlarmSoundL(aNumMinutes); }
williamr@2
   135
williamr@2
   136
/** @deprecated
williamr@2
   137
williamr@2
   138
Deprecated in 7.0s. Use CEikAlmControlSupervisor::CmdTaskAwayFromAlarmL() instead 
williamr@2
   139
because RMessage::WriteL() could leave. */
williamr@2
   140
inline TBool CEikAlmControlSupervisor::CmdTaskAwayFromAlarm()
williamr@2
   141
	{ return CmdTaskAwayFromAlarmL(); }
williamr@2
   142
williamr@2
   143
#endif	// __EIKALSUP_H__