--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/alarmui/AppServerStuff/Inc/AlarmWrapper.h Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 2006-2006 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: This is the MAlarmObserver I/F implementation instantiated and used directly by EIkAlert.
+*
+*/
+
+
+
+#ifndef __AKNALARMWRAPPER_H__
+#define __AKNALARMWRAPPER_H__
+
+// INCLUDES
+#include "pim_trace.h"
+#include <AknCapServerClient.h>
+#include <AlarmObserver.h>
+#include "AlarmServiceDefs.h"
+
+
+// DLL entry point
+IMPORT_C MAlarmObserver* NewAlarm();
+
+
+// FORWARD DECLARATIONS
+class CAknDataFetcher;
+
+/**
+* This class connects only on demand, this is because eiksrv is started
+* before akncapserver and connecting would fail if done during construction
+**/
+class RAknAlarmClient : public RAknUiServer
+ {
+public:
+ RAknAlarmClient(CAknDataFetcher** aFetcher);
+ TInt SendSynch(TInt aOpcode);
+ TInt SendSynch(TInt aOpcode, TInt& aParam);
+ void SendAsync(TInt aOpcode, TRequestStatus& aStatus, TIpcArgs& aArgs );
+ TInt SetAlarm(const TASShdAlarm& aAlarm, const TFullName& aOwner, const TDesC8& aAlarmData);
+
+private: // from RAknCapServerClient
+ TInt Connect(); // just to phohibit too early connection attemps
+
+ TUid ServiceUid() const
+ {
+ TRACE_ENTRY_POINT;
+ TRACE_EXIT_POINT;
+ return KAknAlarmServiceUid;
+ };
+
+ TInt CheckConnection();
+
+private:
+ CAknDataFetcher** iFetcher; // not owned
+
+ };
+
+
+/**
+* AO for fetching messages (snooze & stop)
+**/
+NONSHARABLE_CLASS( CAknDataFetcher ) : public CActive
+ {
+public:
+ CAknDataFetcher( TInt aPriority,
+ CEikAlmControlSupervisor* aSupervisor,
+ RAknAlarmClient& aClient );
+ void Start();
+ void RunL();
+ void DoCancel();
+ CEikAlmControlSupervisor* iSupervisor; // not owned
+
+private:
+ RAknAlarmClient& iClient;
+ TPckgBuf<TInt> iPckg;
+ TIpcArgs iArgs;
+
+ };
+
+
+/**
+* Main class
+**/
+NONSHARABLE_CLASS( CAknAlarmWrapper ) : public CBase,
+ public MAlarmObserver
+ {
+public: // from MAlarmObserver
+ void ConstructL( CEikAlmControlSupervisor* aSupervisor,
+ CEikServAppUiBase* aAppUi );
+
+public: // from MEikServAlarm
+ void Release();
+ void ShowAlarm();
+ void HideAlarm();
+ TInt CurrentServerState() const;
+ void UpdateSoundPauseTimeInterval(TInt aMinutes);
+ void UpdateForAlarmServerState(TInt aNewAlarmServerState);
+ void UpdateAlarmInfo(const TASShdAlarm& aAlarm, const TFullName& aOwner);
+ void StartPlayAlarmL(const TDesC& aAlarmName);
+ void StopPlayAlarm();
+
+public:
+ CAknAlarmWrapper();
+
+private:
+ ~CAknAlarmWrapper();
+ CEikServAppUiBase* iAppUi; // not owned
+ __MUTABLE RAknAlarmClient iClient;
+ CAknDataFetcher* iActive;
+
+ };
+
+#endif // __AKNALARMWRAPPER_H__
+
+
+// End of File