commonappservices/alarmserver/ConsoleAlarmAlertServer/Include/ConsoleAlarmAlertSession.h
changeset 0 2e3d3ce01487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/ConsoleAlarmAlertServer/Include/ConsoleAlarmAlertSession.h	Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,134 @@
+/**
+* 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 __CONSOLEALARMALERTSESSION_H__
+#define __CONSOLEALARMALERTSESSION_H__
+
+#include <e32base.h>
+
+#define __FILELOGGER_ACTIVE // Include logging in release builds
+#include <test/rfileloggermacro.h>
+
+#include <asaltdefs.h>
+#include <asshdalarm.h>
+
+class CConsoleAlarmAlertConsole;
+class CConsoleAlarmAlertLEDFlasher;
+class CConsoleAlarmAlertServer;
+
+struct TAgnAlarmInfo
+ 	/**
+ 	Copy of System-Wide Unique Agenda Entry Reference defined in agmalarm.h
+ 	*/
+  	{
+	TUid iAlarmCategory;
+	TUint32 iAgnUniqueId_AgnId;
+	TInt64  iAgnUniqueId_AgnInstanceTime;
+	TUint16 iAgnUniqueId_AgnInstanceFiller;
+	TInt    iAgnUniqueId_AgnInstanceConstrError;
+	TFileName iFileName;
+	};
+
+class CConsoleAlarmAlertSession : public CSession2
+	{
+public:
+	static CConsoleAlarmAlertSession* NewL(CConsoleAlarmAlertServer* aServer);
+	~CConsoleAlarmAlertSession();
+
+private:
+	CConsoleAlarmAlertSession(CConsoleAlarmAlertServer* aServer);
+	void ConstructL();
+
+public:
+	TTime									DeferTime() const;
+	inline const TASShdAlarm& 				Alarm() const { return iAlarm; }
+	inline TInt								AlarmDataSize() const { return iAlarmAssociatedDataSize; }
+	inline const TAgnAlarmInfo&				AlarmData() const { return iAlarmData; }
+	void									Notify(TASAltAlertServerResponse aFlag);
+	void									Notify(TASAltAlertServerResponse aFlag, const TTime& aDeferTime);
+	TAny *									InstructionSet();
+
+public: // Observers
+	void NotifyAlarmL(const TASShdAlarm& aAlarm, const TFullName& aFullName, const TDes8& aData);
+	void NotifySoundStartL(const TAlarmId& aId, const TDesC& aFilename);
+	void NotifySoundStopL(const TAlarmId& aId);
+	void NotifyVisibleL(const TAlarmId& aId, const TBool aVisible);
+	void NotifyStateL(const TAlarmId& aId, const TInt aState);
+	void NotifyDeleteL(const TAlarmId& aId);
+
+private: // from CSession2
+	TBool									CmdL();
+	void									ServiceL(const RMessage2& aMessage);
+	void 									ServiceError(const RMessage2 &aMessage, TInt aError);
+
+private:
+	void									SetAlarmL(const RMessage2& aMessage);
+	void									GetUserTimeL(const RMessage2& aMessage);
+	void									SetDeferTimeL(const RMessage2& aMessage);
+	TBool									MultiDispatchL(const RMessage2& aMessage);
+	void									CmdSetUserTimeL(const RMessage2& aMessage);
+	void									CmdSetMaxAlarmsL(const RMessage2& aMessage);
+	void									CmdNotifyOnAlarmL(const RMessage2& aMessage);
+	void									CmdNotifyOnSoundStartL(const RMessage2& aMessage);
+	void									CmdNotifyOnSoundStopL(const RMessage2& aMessage);
+	void									CmdNotifyOnVisibleL(const RMessage2& aMessage);
+	void									CmdNotifyOnStateL(const RMessage2& aMessage);
+	void									CmdResponseSnoozeAlarmL(const RMessage2& aMessage);
+	void									CmdResponseSilenceAlarmL(const RMessage2& aMessage);
+	void									CmdResponseAcknowledgeAlarmL(const RMessage2& aMessage);
+	void									CmdResponsePauseSoundL(const RMessage2& aMessage);
+	void 									CmdSetAlarmL(const RMessage2& aMessage);
+	void									CmdSetStateL(const RMessage2& aMessage);
+	void									CmdVisibleL(const RMessage2& aMessage);
+	void									CmdStartPlayingSoundL(const RMessage2& aMessage);
+	void									CmdStopPlayingSoundL(const RMessage2& aMessage);
+	void 									CmdSetDeferTimeL(const RMessage2& aMessage);
+	void									CmdGetUserTimeL(const RMessage2& aMessage);
+	void									CancelNotifications();
+	void 									CmdResponseAcknowledgeAll();
+	void 									CmdGetMaxAlarmsL(const RMessage2& aMessage);
+	void									CmdNotifyOnDeleteL(const RMessage2& aMessage);
+	void									CmdDeleteAlarmL(const RMessage2& aMessage);
+	static TBool							SoundPlaybackCallbackL(TAny* aSelf);
+
+private:
+	TTime									iDeferTime;
+	TASShdAlarm								iAlarm;
+	TInt									iAlarmAssociatedDataSize;
+	TAgnAlarmInfo							iAlarmData;
+	TBool									iLoggedOn;
+	TBool									iHasMessage;
+	TBool									iMsgComplete;
+	RMessage2								iMsgPtr;
+	CPeriodic*								iSoundCallbackTimer;
+	CConsoleAlarmAlertLEDFlasher*			iSoundLEDFlasher;
+	CConsoleAlarmAlertConsole*				iConsole;
+	CConsoleAlarmAlertServer*				iServer;
+	TAny*									iInstructionSet;
+	TBool									iInstructionSetFound;
+	RMessage2								iAlarmNotify;
+	RMessage2								iSoundStartNotify;
+	RMessage2								iSoundStopNotify;
+	RMessage2								iVisibleNotify;
+	RMessage2								iStateNotify;
+	RMessage2								iDeleteNotify;
+	__FLOG_DECLARATION_MEMBER;
+	};
+
+#endif