--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/mmccsubcontroller/inc/mccdtmfulstream.h Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,271 @@
+/*
+* Copyright (c) 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: Provides DTMF support
+*
+*/
+
+
+
+
+#ifndef MCCDTMFULSTREAM_H
+#define MCCDTMFULSTREAM_H
+
+#include "mccsymstreambase.h"
+
+class MAsyncEventHandler;
+class MMccResources;
+class CMccRtpManager;
+class CMMFFormatEncode;
+class CMMFFormatDecode;
+class TMccCodecInfo;
+
+/**
+ * This class provides DTMF sending support.
+ *
+ * @lib mmccsubcontroller.dll
+ * @since S60 v4.0
+ */
+NONSHARABLE_CLASS( CMccDtmfUlStream ) : public CMccSymStreamBase
+ {
+
+public:
+
+ static CMccDtmfUlStream* NewL( TUint32 aMccStreamId,
+ MAsyncEventHandler* aEventhandler, MMccResources* aMccResources,
+ CMccRtpManager* aManager, TFourCC aFourCC, TInt aStreamType,
+ CMccRtpMediaClock& aClock );
+
+ static CMccDtmfUlStream* NewLC( TUint32 aMccStreamId,
+ MAsyncEventHandler* aEventhandler, MMccResources* aMccResources,
+ CMccRtpManager* aManager, TFourCC aFourCC, TInt aStreamType,
+ CMccRtpMediaClock& aClock );
+
+ virtual ~CMccDtmfUlStream();
+
+// from base class CMccSymStreamBase
+
+ /**
+ * From CMccSymStreamBase.
+ * Sets the priority settings for this stream.
+ *
+ * @since S60 3.0
+ * @param aPriority MMF Priority settings
+ * @return void
+ */
+ void SetPrioritySettingsL( const TMMFPrioritySettings& aPriority );
+
+ /**
+ * From CMccSymStreamBase.
+ * Adds the sink and source to the stream.
+ *
+ * @since S60 3.0
+ * @param aDatasink MDataSink
+ * @param aDatasource MDataSource
+ * @return void
+ */
+ void AddSinkAndSourceL( MDataSink* aDatasink, MDataSource* aDatasource );
+
+ /**
+ * From CMccSymStreamBase.
+ * Loads a codec in the stream.
+ *
+ * @since S60 3.0
+ * @param aCodecInfo Contains mediaformat settings
+ * @return void
+ */
+ void LoadCodecL( const TMccCodecInfo& aCodecInfo, const TDesC8& aFmtp );
+
+ /**
+ * From CMccSymStreamBase.
+ * Primes the audio stream ready.
+ *
+ * @since S60 3.0
+ * @param aEndpointId Endpoint to be primed
+ * @return void
+ */
+ void PrimeL( const TUint32 aEndpointId );
+
+ /**
+ * From CMccSymStreamBase.
+ * Starts the audio streaming.
+ *
+ * @since S60 3.0
+ * @param aEndpointId Endpoint to be played
+ * @param aStreamPaused Whether to pause stream after play
+ * @param aEnableRtcp Enable/disable RTCP
+ * @return void
+ */
+ void PlayL( const TUint32 aEndpointId, TBool aStreamPaused,
+ TBool aEnableRtcp );
+
+ /**
+ * From CMccSymStreamBase.
+ * Pauses the audio streaming.
+ *
+ * @since S60 3.0
+ * @param aEndpointId Endpoint to be paused
+ * @param aEnableRtcp Enable/disable RTCP
+ * @return void
+ */
+ void PauseL( const TUint32 aEndpointId, TBool aEnableRtcp );
+
+ /**
+ * From CMccSymStreamBase.
+ * Resumes the audio streaming.
+ *
+ * @since S60 3.0
+ * @param aEndpointId Endpoint to be resumed
+ * @param aEnableRtcp Enable/disable RTCP
+ * @return void
+ */
+ void ResumeL( const TUint32 aEndpointId, TBool aEnableRtcp );
+
+ /**
+ * From CMccSymStreamBase.
+ * Stops the audio streaming.
+ *
+ * @since S60 3.0
+ * @param aEndpointId Endpoint to be stopped
+ * @return void
+ */
+ void StopL( const TUint32 aEndpointId );
+
+ /**
+ * From CMccSymStreamBase.
+ * Resets Jitterbuffer.
+ *
+ * @since S60 3.0
+ * @return void
+ */
+ void ResetCountersL();
+
+ /**
+ * From CMccSymStreamBase.
+ * Sets the current record/play balance depending on the stream type.
+ *
+ * @since S60 3.0
+ * @param aLeftbal Left balance
+ * @param aRightbal Right balance
+ * @return void
+ */
+ void SetBalanceL( TInt aLeftbal, TInt aRightbal );
+
+ /**
+ * From CMccSymStreamBase.
+ * Returns the current record/play balance depending on the stream type.
+ *
+ * @since S60 3.0
+ * @param aLeftbal Left balance
+ * @param aRightbal Right balance
+ * @return void
+ */
+ void GetBalanceL( TInt& aLeftbal, TInt& aRightbal );
+
+ /**
+ * From CMccSymStreamBase.
+ * Sends a media event in a uplink stream.
+ *
+ * @since S60 3.0
+ * @param aEvent Event to be sent
+ * @return void
+ */
+ void SendMediaSignalL( const TMccEvent& aEvent );
+
+ /**
+ * From CMccSymStreamBase.
+ * Starts inactivity timer for a stream in a given session.
+ *
+ * @since S60 3.0
+ * @param aTimeoutTime Time after which inactivity is reported
+ * @return void
+ */
+ void StartInactivityTimerL( TUint32 aTimeoutTime );
+
+ /**
+ * From CMccSymStreamBase.
+ * Stops inactivity timer for a stream in a given session.
+ *
+ * @since S60 3.0
+ * @return void
+ */
+ void StopInactivityTimerL();
+
+ /**
+ * From CMccSymStreamBase.
+ * Gets synchronization source this stream is using.
+ *
+ * @since S60 3.0
+ * @param aSSRCValue Synchronization source
+ * @return void
+ */
+ void GetSSRCL( TUint32& aSSRCValue );
+
+ /**
+ * From CMccSymStreamBase.
+ */
+ TBool IsUplink();
+
+ /**
+ * From CMccSymStreamBase.
+ */
+ void StandByL();
+
+private:
+
+ CMccDtmfUlStream( TUint32 aMccStreamId,
+ MAsyncEventHandler* aEventhandler, MMccResources* aMccResources,
+ CMccRtpManager* aManager, TFourCC aFourCC, TInt aStreamType,
+ CMccRtpMediaClock& aClock );
+
+ void ConstructL();
+
+ /**
+ * Creates the payload format encoder.
+ * @since S60 3.0
+ * @return void
+ */
+ void CreatePayloadFormatEncoderL();
+
+ /**
+ * Updates codec information.
+ * @since S60 3.0
+ * @param aCodecInfo Update parameters
+ * @return void
+ */
+ void UpdateCodecInformationL( TMccCodecInfo& aCodecInfo );
+
+private: // data
+
+ /**
+ * FourCC code identifying codec.
+ */
+ TFourCC iFourCC;
+
+
+ /**
+ * Payload format encoder used to encode DTMF RTP payload.
+ * Own.
+ */
+ CMMFFormatEncode* iFormatEncode;
+
+ /**
+ * Payload format decoder used to decode DTMF RTP payload.
+ * Own.
+ */
+ CMMFFormatDecode* iFormatDecode;
+
+ };
+
+
+#endif // MCCDTMFULSTREAM_H