--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailserver/cmailhandlerplugin/inc/fsmailsoundhandler.h Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2007 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 file defines class CFSMailSoundHandler.
+*
+*/
+
+
+
+#ifndef __FSMAILSOUNDHANDLER_H
+#define __FSMAILSOUNDHANDLER_H
+
+#include <e32std.h>
+
+#include <mdaaudiosampleplayer.h>
+
+// <cmail>
+//#include <oem/MProfileEngine.h>
+//#include <oem/MProfileChangeObserver.h>
+#include <MProfileEngine.h>
+#include <MProfileChangeObserver.h>
+// </cmail>
+
+
+#include "fsnotificationhandlerbase.h"
+#include "fsnotificationhandlertimerobserver.h"
+
+class CProfileChangeNotifyHandler;
+class CHWRMVibra;
+class CFSNotificationHandlerTimer;
+
+
+/**
+ * Class to handle email sound playing.
+ * A handler for observing inputs into email framework, playing a sound
+ * if a message addition is performed on a Inbox folder.
+ *
+ * @code
+ * ?good_class_usage_example(s)
+ * @endcode
+ *
+ * @lib ?library
+ * @since S60 ?S60_version *** for example, S60 v3.0
+ */
+class CFSMailSoundHandler : public CFSNotificationHandlerBase,
+ public MFSNotificationHandlerTimerObserver,
+ public MMdaAudioPlayerCallback,
+ public MProfileChangeObserver
+{
+public:
+
+ /**
+ * Two-phased constructor.
+ * @param aMailClient Object to access email framework
+ * @param aOwner Owner and manager of this handler. NULL if not
+ * specified.
+ */
+ static CFSMailSoundHandler* NewL( MFSNotificationHandlerMgr& aOwner );
+ virtual ~CFSMailSoundHandler();
+
+ void RefreshData();
+
+ // From base class MFSNotificationHandlerTimerObserver
+ virtual void TimerCallBackL( TInt aError );
+
+ // from base class CFSNotificationHandlerBase
+ virtual void HandleEventL(
+ TFSMailEvent aEvent,
+ TFSMailMsgId aMailbox,
+ TAny* aParam1,
+ TAny* aParam2,
+ TAny* aParam3 );
+
+protected:
+
+// from base class MProfileChangeObserver
+ virtual void HandleActiveProfileEventL( TProfileEvent aPE, TInt id );
+
+// from base class MMdaAudioPlayerCallback
+ virtual void MapcInitComplete(
+ TInt aError,
+ const TTimeIntervalMicroSeconds& /*aInterval*/ );
+ virtual void MapcPlayComplete( TInt aError );
+
+private:
+
+ /**
+ * Constructor.
+ *
+ * @since S60 ?S60_version
+ * @param aOwner Owner and manager of this handler.
+ */
+ CFSMailSoundHandler( MFSNotificationHandlerMgr& aOwner );
+ void ConstructL();
+
+ void Init();
+ void Close();
+ void Sound();
+ void Resume();
+ TInt SetAudioPlayerL( bool def );
+ /**
+ * Fetches the sound and volume for received messagetype
+ * @since Series60 2.1
+ * @param aProfile Current profile.
+ * @param aSound The variable to store the soundfile information
+ * @param aVolume The variable to store the volume
+ * @return KErrNone when no problems found
+ */
+ TInt GetSoundFileAndVolumeL(
+ const MProfile& aProfile,
+ TFileName& aSound,
+ TInt& aVolume ) const;
+ TInt ToneVolume( const MProfile& aProfile ) const;
+
+// from base class CFSNotificationHandlerBase
+ virtual void TurnNotificationOn();
+ virtual void TurnNotificationOff();
+
+private: // data
+
+ enum TTasks
+ {
+ EInit = 1,
+ ESound,
+ EWait,
+ EDefault,
+ EPending,
+ EReset
+ };
+
+ TInt iVolume;
+ TTasks iNextState;
+ TTasks iPending;
+ TTasks iReset;
+ CMdaAudioPlayerUtility* iAudioPlayer;
+ MProfileEngine* iProfileEngine;
+ CProfileChangeNotifyHandler* iHandler;
+ CHWRMVibra* iVibra;
+
+ /**
+ * Timer service.
+ * Own.
+ */
+ CFSNotificationHandlerTimer* iTimer;
+};
+
+
+#endif __FSMAILSOUNDHANDLER_H
\ No newline at end of file