--- /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 <e32base.h>
+#include <e32std.h>
+#include <comms-infras/metadata.h>
+#include <comms-infras/metatype.h>
+#include <comms-infras/metabuffer.h>
+#include <comms-infras/ss_protocolparameterset.h>
+
+#include <es_sock.h>
+
+#include <rtp_uid.h>
+
+
+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<CSubConRTPGenericParamSet*>(CSubConParameterSet::NewL(typeId));
+ }
+
+#endif // __RTP_SUBCONPARAMS_H__