alarmui/inc/AlmAlarmPlayer.h
changeset 0 f979ecb2b13e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alarmui/inc/AlmAlarmPlayer.h	Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2006-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 class provides audio playback for Alarm UI.
+*
+*/
+
+
+
+#ifndef ALMALARMPLAYER_H
+#define ALMALARMPLAYER_H
+
+
+//  INCLUDES
+#include <mdaaudiotoneplayer.h>
+#include <mdaaudiosampleplayer.h>
+
+
+// FORWARD DECLARATIONS
+class CAlarmUtils;
+
+
+// CLASS DECLARATION
+
+/**
+*  Audio player for Alarm UI.
+*  This class reads alarm tone settings (volume, ringing type, etc.) and
+*  starts playing the alarm tone.
+*
+*  @lib AknAlarmService.lib
+*  @since 1.0
+*/
+NONSHARABLE_CLASS( CAlmAlarmPlayer ) : public CBase, 
+                                       public MMdaAudioToneObserver, 
+                                       private MMdaAudioPlayerCallback
+{
+ public:  // Constructors and destructor
+    // Symbian two-phased constructor
+    static CAlmAlarmPlayer* NewL(CAlarmUtils* aAlarmUtils);
+
+    // Destructor
+    ~CAlmAlarmPlayer();
+
+ private:
+    // C++ constructor
+    CAlmAlarmPlayer(CAlarmUtils* aAlarmUtils);
+
+    // Symbian 2nd phase constructor.
+    void ConstructL();
+
+    /**
+    * Play appropriate alarm type using profile ringing type setting.
+    * @param aIsRNGTone ETrue, if alarm tone is a RNG file.
+    * @since 3.0
+    */
+    void PlayCalendarAlarmL(TBool aIsRngTone);
+
+    /**
+    * Play silent calendar alarm. (needed to for vibra)
+    * @since 2.1
+    */
+    void PlaySilentCalendarAlarmL();
+
+    /**
+    * Play normal clock alarm.
+    * @since 2,0
+    */
+    void PlayClockAlarmL();
+
+    /**
+    * Play calendar alarm tone. (KRngMimeType files only)
+    * @since 2.0
+    */
+    void PlayCalendarAlarmToneL();
+
+    /**
+    * Play calendar alarm tone. (KRngMimeType files only)
+    * @since 2,0
+    */
+    void PlayClockAlarmToneL();
+
+    /**
+    * Play beep alarm for calendar.
+    * @since 2,0
+    */
+    void PlayCalendarBeepL();
+
+    /**
+    * Play beep alarm for clock.
+    * @since 2,0
+    */
+    void PlayClockBeepL();
+
+    /**
+    * Check the file and alarm type and try to play the alarm.
+    * @since 3.0
+    */
+    void PlayAlarmL();
+
+    /**
+    * Common fallback functionality for prepare/play errors.
+    * @since 3.0
+    * @param aError Error id.
+    */
+    void HandlePlayErrorL(TInt aError);
+
+    /**
+    * Calculate player volume.
+    * @since s60 3.2
+    * @param aPlayerMaxVol Maximum volume for the player.
+    * @param aVol Requested profile volume.
+    * @return Adjusted player volume.
+    */
+    TInt PlayerVolume(TInt aPlayerMaxVol, TInt aVol);
+
+ private: // from MMdaAudioToneObserver
+    /**
+    * From MMdaAudioToneObserver. Called after tone has been initialized.
+    * @since 1.0
+    * @param aError Error code
+    */
+    void MatoPrepareComplete(TInt aError);
+
+    /**
+    * From MMdaAudioToneObserver. Called after tone has been played.
+    * @since 1.0
+    * @param aError Error code
+    */
+    void MatoPlayComplete(TInt aError);
+
+ private: // from MMdaAudioPlayerCallback
+    /**
+    * From MMdaAudioPlayerCallback. Called after sample initialization is complete
+    * @since 2.0
+    * @param aError Error code
+    * @param aDuration Duration of the sample
+    */
+    void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& aDuration);
+
+    /**
+    * From MMdaAudioPlayerCallback. Called after sample has been played.
+    * @since 2.0
+    * @param aError Error code
+    */
+    void MapcPlayComplete(TInt aError);
+
+ private:
+    // Audio tone player
+    CMdaAudioToneUtility* iSequencePlayer;
+
+    // Beep tone player
+    CMdaAudioToneUtility* iBeepPlayer;
+
+    // Audio sample player
+    CMdaAudioPlayerUtility* iSamplePlayer;
+
+    /**
+    * Pointer to alarm utils class.
+    * Now own.
+    */
+    CAlarmUtils* iAlarmUtils;
+
+};
+
+#endif  // ALMALARMPLAYER_H
+
+
+// End of File