diff -r 000000000000 -r 1bce908db942 multimediacommscontroller/mmccsubcontroller/inc/mccdtmfulstream.h --- /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