diff -r 000000000000 -r 307788aac0a8 realtimenetprots/rtp/cfrtp/inc/rtp_subconparams.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/rtp/cfrtp/inc/rtp_subconparams.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,196 @@ +// Copyright (c) 2008-2009 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: +// RTP SubConParams Definitions. +// +// + +/** + @file + @internalComponent + @released + @since v9.5 +*/ + +#ifndef __RTP_SUBCONPARAMS_H__ +#define __RTP_SUBCONPARAMS_H__ + +#include +#include +#include +#include +#include +#include + +#include + +#include + + +const TInt32 KSubConnRTPGenericParamsType = 2; + +class CSubConRTPGenericParamSet : public ESock::CSubConnectionProtocolParameterSet + { + friend class CSubConRTPParamFactory; + public: + + inline static CSubConRTPGenericParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType); + + inline static CSubConRTPGenericParamSet* NewL(); + + virtual ~CSubConRTPGenericParamSet(); + + virtual TInt SetTierID(TUid aTierId); + + /* RTP Stack Initialisation Parameters Get/Set */ + virtual void SetBandWidth(TUint aBandWidth); + + virtual void SetMaxDropOut(TUint aMaxDropout); + + virtual void SetMaxMisorder(TUint aMaxMisorder); + + virtual void SetMinSequencial(TUint aMinSequential); + + virtual void SetRtptimeConversion(TUint aRtpTimeConversion); + + virtual void SetRtpTimeNow(TUint aRtpTimeNow); + + virtual void SetRtpAutoSend(TBool aAutoSendRtcp); + + /* Set the UID of RTP Flow inplementation */ + virtual void SetProtocolUIDRtp(TUid aRTPProtocolUiD); + + virtual void SetServiceProtocolID(TInt aServiceProtocolID); + + virtual void SetLowerSubConnType(RSubConnection::TSubConnType aSubConnType); + + /** Set the CNAME for the session + + @param aCName The CNAME descriptor.This should be same as the one used in the API: + void RRtpSession::OpenL(RSocketServ& aServer, TSockAddr& aLocalAddr, + TSockAddr& aRemoteAddr, + TInt aMaxRXSize, RSubConnection& aSubConnection, TInt aPriority = EPriorityNormal, + const TDesC8& aCNAME = KNullDesC8) + */ + + virtual void SetCNAMEL(const TDesC8& aCName); + + virtual void SetDefDestinationAddr(TInetAddr& aDefDestAddr); + + virtual void SetRtcpReportInterval(const TTimeIntervalMicroSeconds32& aInterval); + + + /* The Get Functions are not made Virtual. They are supposed to be accessed + inside the CF Dll */ + TUid GetProtocolUiDRtp(); + + TInt GetServiceProtocolID(); + + RSubConnection::TSubConnType GetLowerSubConnType(); + + TUint BandWidth() const; + + TUint MaxDropOut() const; + + TUint MaxMisorder() const; + + TUint MinSequencial() const; + + TUint RtptimeConversion() const; + + TUint RtpTimeNow() const; + + TBool RtpAutoSend() const; + + const TTimeIntervalMicroSeconds32& GetRtcpReportInterval() const; + + const TDesC8& GetCNAME() const; + + const TInetAddr& GetDefDestinationAddr() const; + + + DATA_VTABLE + + protected: + + CSubConRTPGenericParamSet(); + + /* UID of RTP Flow factory */ + TUid iRTPProtocolUiD; + /* Who will be RTP SCPR's Service Provider? */ + TInt iServiceProtocolID; + /* Give EAttachToDefault to stack on Default IpScrpr */ + RSubConnection::TSubConnType iSubConnType; + + /* Bandwdth Available to the RTP Application */ + TUint iBandWidth; + /* Max Drop Allowed */ + TUint iMaxDropout; + /* Max misorder allowed */ + TUint iMaxMisorder; + TUint iMinSequencial; + + /* mapping between RTP Time and "normal" time */ + TUint iRtpTimeConversion; + TUint iRtpTimeNow; + /* if ETrue sends RTCP report automatically */ + TBool iAutoSendRtcp; + /* The CName for RTP Session */ + RBuf8 iCName; + /* Set the default destination address */ + TInetAddr iDefDestAddr; + /* RTCP report interval. Overrides report calculation inside stack */ + TTimeIntervalMicroSeconds32 iRtcpInterval; + }; + + +class CSubConRTPParamFactory: public CBase +/** Factory used to create instances of the RTP SubConnection Parameter Extension Sets. + +@internalComponent +*/ + { +public: + enum { iUid = KSubConnRTPParamsImplUid }; + static CSubConParameterSet* NewL(TAny* aConstructionParameters); + }; + + +CSubConRTPGenericParamSet* CSubConRTPGenericParamSet::NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType) +/** Creates a generic RTP family parameters sub-connection. + +@param aFamily parameter sets. +@param aType parameter type (Requested/Acceptable/Granted) +@return a CSubConRTPGenericParamSet object pointer if successful, +otherwise leaves with system error code. +*/ + { + CSubConRTPGenericParamSet* obj = NewL(); + CleanupStack::PushL(obj); + aFamily.SetGenericSetL(*obj, aType); + CleanupStack::Pop(obj); + return obj; + } + +CSubConRTPGenericParamSet* CSubConRTPGenericParamSet::NewL() +/** Creates a generic RTP family parameters sub-connection. + +@return a CSubConRTPGenericParamSet object pointer if successful, +otherwise leaves with system error code. +*/ + { + STypeId typeId = STypeId::CreateSTypeId(CSubConRTPParamFactory::iUid, KSubConnRTPGenericParamsType); + return static_cast(CSubConParameterSet::NewL(typeId)); + } + +#endif // __RTP_SUBCONPARAMS_H__