diff -r 095bea5f582e -r 0ac9a5310753 mmserv/tms/tmsserver/inc/tmsrtaudiohdlr.h --- a/mmserv/tms/tmsserver/inc/tmsrtaudiohdlr.h Tue Aug 31 15:43:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,301 +0,0 @@ -/* - * Copyright (c) 2010 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: Ring Tone Audio playback handler. - * - */ - -#ifndef TMSRTAUDIOHDLR_H -#define TMSRTAUDIOHDLR_H - -// INCLUDES - -#include -//#include -#include -#include - -namespace TMS { - -// CLASS DECLARATION -class TMSRtAudioHdlrObsrv; -class TMSRtContainer; - -/** - * RingTone audio handler. - * Handles audio for tone sequence and digital sample playback. - */ -class TMSRtAudioHdlr : public CBase, - public MMdaAudioPlayerCallback, - public MMdaAudioToneObserver - { -public: - - enum TAudioPlayerStatus - { - EToneLoading, - EToneReady, - ETonePlaying - }; - - enum TRingingType - { - ETypeRinging, - ETypeRingingOnce, - ETypeAscending - }; - -public: - /** - * Two-phased constructor. - * @param aRingingTone The ringing tone - * @param aPriority The priority for the playing - * @param aPreference The preference value - * @param aObserver Audio player observer - * @param aType The id of this audio player - * @param aExtSecNeeded ETrue if DRM extend security is needed - * @return The instance of the audio player. - */ - static TMSRtAudioHdlr* NewL(const TMSRtContainer& aRingingTone, - TUint aPriority, TUint aPreference, - TMSRtAudioHdlrObsrv& aObserver, TInt aType = 0, - TBool aExtSecNeeded = EFalse); - - /** - * Two-phased constructor. - * @param aFileName The ringing tone file name. - * @param aPriority The priority for the playing - * @param aPreference The preference value - * @param aObserver Audio player observer - * @param aType The id of this audio player - * @param aExtSecNeeded ETrue if DRM extend security is needed - * @return The instance of the audio player. - */ - static TMSRtAudioHdlr* NewL(const TDesC& aFileName, TUint aPriority, - TUint aPreference, TMSRtAudioHdlrObsrv& aObserver, - TInt aType = 0, TBool aExtSecNeeded = EFalse); - - /** - * Two-phased constructor, take audio from descriptor. - * - * @param aSequence sequence to be played. - * @param aPriority priority of tone. - * @param aPreference preference of tone. - * @param aObserver observer. - * @param aType identifier, used in observer interface calls. - * @return The instance of the audio player. - */ - static TMSRtAudioHdlr* NewSeqL(const TDesC8& aSequence, - TUint aPriority, TUint aPreference, - TMSRtAudioHdlrObsrv& aObserver, TInt aType = 0); - - /** - * Two-phased constructor, takes Text-To-Speech text to be played. - * @param aText Text to be pronounced. - * @param aPriority priority of tone. - * @param aPreference preference of tone. - * @param aObserver observer. - * @param aType identifier, used in observer interface calls. - * @return The instance of the audio player. - */ - static TMSRtAudioHdlr* NewTtsL(const TDesC& aText, TUint aPriority, - TUint aPreference, TMSRtAudioHdlrObsrv& aObserver, TInt aType = 0); - - /** - * Destructor. - */ - ~TMSRtAudioHdlr(); - -public: - // new function - - /** - * Play the audio file or tone - * @param aRingingType - * @param aVolume take value from 1 to 10 - * @param aTTsToBePlayed - */ - void Play(TRingingType aRingType, TInt aVolume, TBool aTTsToBePlayed); - - /** - * Stop current file playing - */ - void StopPlaying(); - - /** - * Sets new volumes and ramptimes. - * @param aVolume -volume to be set - * @param aRamptime -ramptime to be set. - */ - void SetNewVolumeAndRamptime(TInt aVolume, TInt aRamptime); - - /** - * Re starts playing. - */ - void ReStartPlaying(); - /** - * Enable or disable TTs playing. - * @param aTTsToBePlayed - */ - void SetTTsToBePlayed(const TBool aTTsToBePlayed); - - /** - * Sets volume level to zero. - */ - void MutePlaying(); - -public: - /** - * from MMdaAudioPlayerCallback - */ - virtual void MapcInitComplete(TInt aError, - const TTimeIntervalMicroSeconds& aDuration); - - /** - * from MMdaAudioPlayerCallback - */ - virtual void MapcPlayComplete(TInt aError); - - /** - * from MMdaAudioToneObserver - */ - virtual void MatoPrepareComplete(TInt aError); - - /** - * from MMdaAudioToneObserver - */ - virtual void MatoPlayComplete(TInt aError); - -private: - - enum TAudioDataFormat - { - EFormatTone, - EFormatSample, - EFormatTts - }; - - /** - * C++ constructor. - */ - TMSRtAudioHdlr(TAudioDataFormat aDataFormat, - TMSRtAudioHdlrObsrv& aObserver, TUint aPriority, - TUint aPreference, TInt aType); - - /** - * Symbian OS constructor. - */ - void ConstructL(const TDesC& aFileName); - - /** - * Symbian OS constructor. - */ - void ConstructSeqL(const TDesC8& aSequence); - - /** - * Symbian OS constructor for the Text-To-Speech option - */ - void ConstructTtsL(const TDesC& aTtsText, TUint aPriority, - TUint aPreference); - - /** - * Do the playing stuff - */ - void DoPlay(); - - /** - * Set ringing type properties - */ - void SetRingingTypeProperties(); - - /** - * Call back function for timer - */ - static TInt TimerCallBack(TAny* aAny); - - /** - * Handle timer events - */ - void HandleTimerEvent(); - - /* - * Convert volume to the scale used by hardware - * @param aVolume volume to be altered - * @return TInt new volume - */ - TInt ConvertVolume(TInt aVolume); - -private: - // Data - - // The format of audio data, audio sample file or tone file - TAudioDataFormat iFormat; - - // Observer for error handling - TMSRtAudioHdlrObsrv& iObserver; - - // Priority. It's only used in playing tone file - const TInt iPriority; - - // Preference. Only used for tone file - const TUint iPreference; - - // Identifier number - TInt iRtType; - - // Player for tone file. - CMdaAudioToneUtility* iTonePlayer; - - // Player for audio file. - CMdaAudioPlayerUtility* iSamplePlayer; - - // Player for the Text-To-Speech texts - CMdaAudioPlayerUtility* iTtsPlayer; - - // The status of the player - TAudioPlayerStatus iPlayerStatus; - - // How does the file played. It's only used if the player - // is playing the file - TRingingType iRingType; - - // Volume - TInt iVolume; - - // For ascending and descending used for set current volume - TInt iCurrentVolume; - - // Used by sample player - TBool iToBePlaying; - - // Store for sequence. - HBufC8* iSequence; - - // Store for the TTS source string - HBufC8* iTtsText; - - // 3D Audio ringing tone plugin - //C3DRingingToneInterface* i3DPlugin; - - // Ringingtone output - //CAudioOutput* iAudioOutput; - - // Flag to indicate whether we need to play TTs or not - TBool iTTsToBePlayed; - }; - -} //namespace TMS - -#endif //TMSRTAUDIOHDLR_H - -// End of File