realtimenetprots/rtp/cfrtp/inc/rtp_subconparams.h
changeset 0 307788aac0a8
--- /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__