phoneengine/audiohandling/inc/cpegsmaudiodata.h
changeset 37 ba76fc04e6c2
child 51 f39ed5e045e0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/audiohandling/inc/cpegsmaudiodata.h	Fri Jun 04 10:19:18 2010 +0100
@@ -0,0 +1,170 @@
+/*
+* Copyright (c) 2002-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 contains the header file of the class CPEGsmAudioDatar, 
+*                which is an GSM specific interface class to audio properties of the system
+*
+*/
+
+
+#ifndef CPEGSMAUDIODATA_H
+#define CPEGSMAUDIODATA_H
+
+//  INCLUDES
+#include "cpeaudiodata.h"
+#include <pevirtualengine.h>
+#include <e32base.h>
+#include <mccedtmfobserver.h>
+
+// CONSTANTS
+// None.
+
+// MACROS
+// None.
+
+
+// DATA TYPES
+// None.
+
+
+// FUNCTION PROTOTYPES
+// None.
+
+
+// FORWARD DECLARATIONS
+class CPEAudioInbandTonePlayer;
+class CPEAudioFactory;
+class MPEClientInformation;
+
+// CLASS DECLARATION
+
+/**
+*  This file contains the header file of the class CPEGsmAudioData, 
+*
+*  @lib Audiohandling.lib
+*  @since Series60_2.7
+*/
+class CPEGsmAudioData : public CPEAudioData,
+                        public MCCEDtmfObserver
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CPEGsmAudioData* NewL( MPEPhoneModelInternal& aPhoneModel,
+                                               RFs& aFsSession );                                  
+           
+                                               
+        /**
+        * Two-phased constructor for testing purposes
+        */        
+        IMPORT_C static CPEGsmAudioData* NewL( MPEPhoneModelInternal& aPhoneModel,
+                                               RFs& aFsSession,
+                                               CPEAudioFactory& aAudioFactory );                          
+        
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CPEGsmAudioData();
+        
+    public: // From MCCEDtmfObserver
+                                       
+        /**
+        * All the occurred DTMF events are notified through this interface
+        *
+        * @since S60 3.2
+        * @param aEvent Event code
+        * @param aError Error code
+        * @param aTone tone 
+        * @return none
+        */
+        IMPORT_C void HandleDTMFEvent( const MCCEDtmfObserver::TCCEDtmfEvent aEvent, 
+                                       const TInt aError, 
+                                       const TChar aTone );
+
+    public: // New functions
+
+        /**
+        * Plays the given dtmf tone
+        * @since Series60_2.7
+        * @param  aTone, dtmf tone to be played
+        * @param  aVolume, dtmf tones volume
+        * @return None.  
+        */
+        IMPORT_C void PlayDtmfTone( const TChar& aTone ) const; 
+
+        /**
+        * Stops the playing of dtmf tone
+        * @since Series60_2.7
+        * @param  None.
+        * @return None.  
+        */
+        IMPORT_C void StopDtmfTonePlay(); 
+
+        /**
+        * Plays given tone.
+        * @since Series60_2.7
+        * @param aToneName Tone sequence's name to be played.
+        * @return None.
+        */
+        IMPORT_C void PlayInbandTone();
+
+        /**
+        * Stops the playing of inband tone
+        * @since Series60_2.7
+        * @param  None.
+        * @return None.  
+        */
+        IMPORT_C void StopInbandTonePlay(); 
+
+    protected:  // From CPEAudioData
+        
+        void DoHandleVolumeChange( TInt aVolume, TBool aSendMsg=EFalse );
+    
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CPEGsmAudioData( MPEPhoneModelInternal& aPhoneModel,
+                         RFs& aFsSession );
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL(CPEAudioFactory& aAudioFactory);
+
+        /**
+        * Checks if a DTMF tone may be played locally
+        * The check is performed to prevent local play of dtmf tones sent by SAT application
+        * during a SAT originated call
+        *
+        * @return ETrue: local play is allowed,
+        *         EFalse: local play is not allowed
+        */
+        TBool DtmfLocalPlayAllowed() const;
+
+    private:    //Data
+    
+        // CPEAudioDtmfTonePlayer is called to play the dtmf tones
+        CPEAudioDtmfTonePlayer* iDtmfTonePlayer;
+        // CPEAudioInbandTonePlayer is called to play the inband tones
+        CPEAudioInbandTonePlayer* iInbandTonePlayer;
+        // handle to a file server session
+        RFs& iFsSession;
+
+    };
+
+#endif      //CPEGSMAUDIODATA_H  
+            
+// End of File