/**
* Codec encoding errors for SDP fields
*/
const TInt KSdpCodecErrorBase = -17875;
const TInt KErrSdpCodecVersionField = KSdpCodecErrorBase;
const TInt KErrSdpCodecOriginField = KSdpCodecErrorBase - 1;
const TInt KErrSdpCodecSessionField = KSdpCodecErrorBase - 2;
const TInt KErrSdpCodecInfoField = KSdpCodecErrorBase - 3;
const TInt KErrSdpCodecUriField = KSdpCodecErrorBase - 4;
const TInt KErrSdpCodecEmailField = KSdpCodecErrorBase - 5;
const TInt KErrSdpCodecPhoneField = KSdpCodecErrorBase - 6;
const TInt KerrSdpCodecConnectionField = KSdpCodecErrorBase - 7;
const TInt KErrSdpCodecBandwidthField = KSdpCodecErrorBase - 8;
const TInt KErrSdpCodecTimeField = KSdpCodecErrorBase - 9;
const TInt KErrSdpCodecRepeatField = KSdpCodecErrorBase - 10;
const TInt KErrSdpCodecZoneField = KSdpCodecErrorBase - 11;
const TInt KErrSdpCodecKeyField = KSdpCodecErrorBase - 12;
const TInt KErrSdpCodecAttributeField = KSdpCodecErrorBase - 13;
const TInt KErrSdpCodecMediaField = KSdpCodecErrorBase - 14;
const TInt KErrSdpCodecMediaInfoField = KSdpCodecErrorBase - 15;
const TInt KErrSdpCodecMediaConnectionField = KSdpCodecErrorBase - 16;
const TInt KErrSdpCodecMediaBandwidthField = KSdpCodecErrorBase - 17;
const TInt KErrSdpCodecMediaKeyField = KSdpCodecErrorBase - 18;
const TInt KErrSdpCodecMediaAttributeField = KSdpCodecErrorBase - 19;
const TInt KErrSdpCodecTypedTime = KSdpCodecErrorBase - 20;
const TInt KErrSdpCodecStringPool = KSdpCodecErrorBase - 21;
const TInt KErrSdpCodecDecode = KSdpCodecErrorBase - 22;
/** Predefined values in SDP codec String table */
class SdpCodecStringConstants
{
public:
enum TStrings
{
// SDP field names:
/** v= */
EVersion,
/** o= */
EOrigin,
/** s= */
ESession,
/** i= */
EInfo,
/** u= */
EUri,
/** e= */
EEmail,
/** p= */
EPhone,
/** c= */
EConnection,
/** b= */
EBandwidth,
/** z= */
EZone,
/** k= */
EKey,
/** a= */
EAttribute,
/** t= */
ETime,
/** r= */
ERepeat,
/** m= */
EMedia,
// Predefined bandwidth modifiers:
/** CT */
EModifierCT,
/** AS */
EModifierAS,
// Typed time units:
/** d */
ETimeUnitDays,
/** h */
ETimeUnitHours,
/** m */
ETimeUnitMinutes,
/** s */
ETimeUnitSeconds,
/** No typed time unit defined */
ETimeUnitNone,
// Predefined encryption methods:
/** clear */
EMethodClear,
/** base64 */
EMethodBase64,
/** uri */
EMethodUri,
/** prompt */
EMethodPrompt,
// Predefined attributes:
/** cat */
EAttributeCat,
/** keywds */
EAttributeKeywds,
/** tool */
EAttributeTool,
/** ptime */
EAttributePtime,
/** maxptime */
EAttributeMaxptime,
/** recvonly */
EAttributeRecvonly,
/** sendrecv */
EAttributeSendrecv,
/** sendonly */
EAttributeSendonly,
/** inactive */
EAttributeInactive,
/** orient */
EAttributeOrient,
/** portrait */
EAttributeOrientValuePortrait,
/** landscape */
EAttributeOrientValueLandscape,
/** seascape */
EAttributeOrientValueSeascape,
/** type */
EAttributeType,
/** charset */
EAttributeCharset,
/** sdplang */
EAttributeSdplang,
/** lang */
EAttributeLang,
/** framerate */
EAttributeFramerate,
/** quality */
EAttributeQuality,
/** control */
EAttributeControl,
/** range */
EAttributeRange,
/** etag */
EAttributeEtag,
/** des */
EAttributeDes,
/** curr */
EAttributeCurr,
/** conf */
EAttributeConf,
/** mandatory */
EAttributeStatusStrengthTagMandatory,
/** optional */
EAttributeStatusStrengthTagOptional,
/** none */
EAttributeStatusStrengthTagNone,
/** failure */
EAttributeStatusStrengthTagFailure,
/** unknown */
EAttributeStatusStrengthTagUnknown,
// Predefined Status type for Curr, Conf and Des attributes:
/** e2e */
EAttributeStatusTypeE2e,
/** local */
EAttributeStatusTypeLocal,
/** remote */
EAttributeStatusTypeRemote,
/** none */
EAttributeStatusDirectionTagNone,
/** send */
EAttributeStatusDirectionTagSend,
/** recv */
EAttributeStatusDirectionTagRecv,
/** sendrecv */
EAttributeStatusDirectionTagSendrecv,
/** mid */
EAttributeMid,
/** group */
EAttributeGroup,
// Predefined semantics for Group attribute:
/** LS */
EAttributeGroupSemanticLS,
/** FID */
EAttributeGroupSemanticFID,
/** SRF */
EAttributeGroupSemanticSRF,
/** rtpmap */
EAttributeRtpmap,
/** fmtp */
EAttributeFmtp,
// Predefined media types:
/** audio */
EMediaAudio,
/** video */
EMediaVideo,
/** application */
EMediaApplication,
/** data */
EMediaData,
/** control */
EMediaControl,
/** image */
EMediaImage,
// Predefined media transport protocols:
/** RTP/AVP */
EProtocolRtpAvp,
/** udp */
EProtocolUdp,
/** TCP */
EProtocolTcp,
// Network type:
/** IN */
ENetType,
// Address types:
/** IP4 */
EAddressTypeIP4,
/** IP6 */
EAddressType
};
static const TStringTable Table;
};
TSdpTypedTime includes the following enumeration list:
enum TUnit
{
/** d */
ETimeUnitDays,
/** h */
ETimeUnitHours,
/** m */
ETimeUnitMinutes,
/** s */
ETimeUnitSeconds,
/** none */
ETimeUnitNone
};
IMPORT_C ~CSdpAttributeField();
IMPORT_C void AssignTo(const CSdpFmtAttributeField& aFmtAttribute);
IMPORT_C RStringF Attribute() const;
IMPORT_C TBool BelongsTo(const CSdpFmtAttributeField& aFmtAttribute) const;
IMPORT_C CSdpAttributeField* CloneL() const;
IMPORT_C static CSdpAttributeField* DecodeL( const TDesC8& aText );
IMPORT_C static CSdpAttributeField* DecodeLC( const TDesC8& aText );
IMPORT_C void EncodeL( RWriteStream& aStream ) const;
IMPORT_C static CSdpAttributeField* NewL(RStringF aAttribute,
const TDesC8& aValue );
IMPORT_C static CSdpAttributeField* NewLC(RStringF aAttribute,
const TDesC8& aValue );
IMPORT_C TBool operator == ( const CSdpAttributeField& aObj ) const;
IMPORT_C void SetL( RStringF aAttribute, const TDesC8& aValue );
IMPORT_C const TDesC8& Value() const;
IMPORT_C ~CSdpBandwidthField(); IMPORT_C CSdpBandwidthField * CloneL() const; IMPORT_C static CSdpBandwidthField* DecodeL(const TDesC8& aText); IMPORT_C static CSdpBandwidthField* DecodeLC(const TDesC8& aText); IMPORT_C void EncodeL(RWriteStream& aStream) const; IMPORT_C RStringF Modifier() const; IMPORT_C static CSdpBandwidthField* NewL(RStringF aModifier, TUint32 aValue); IMPORT_C static CSdpBandwidthField* NewLC(RStringF aModifier, TUint32 aValue); IMPORT_C TBool operator == (const CSdpBandwidthField& aObj) const; IMPORT_C void SetModifier(RStringF aModifier); IMPORT_C void SetValue(TUint32 aValue); IMPORT_C TUint32 Value() const;
IMPORT_C static void Close(); IMPORT_C static void OpenL(); IMPORT_C static RStringPool StringPoolL(); IMPORT_C static const TStringTable& StringTableL();
IMPORT_C ~CSdpConnectionField();
IMPORT_C const TDesC8& Address() const;
IMPORT_C RStringF AddressType() const;
IMPORT_C CSdpConnectionField* CloneL() const;
IMPORT_C static CSdpConnectionField* DecodeL( const TDesC8& aText );
IMPORT_C static CSdpConnectionField* DecodeLC( const TDesC8& aText );
IMPORT_C void EncodeL( RWriteStream& aStream ) const;
IMPORT_C const TInetAddr* InetAddress() const;
IMPORT_C RStringF NetType() const;
IMPORT_C static CSdpConnectionField* NewL(
const TInetAddr& aAddress,
TInt aTTL = KErrNotFound,
TUint aNumOfAddress = KDefaultNumOfAddress );
IMPORT_C static CSdpConnectionField* NewL(RStringF aNetType,
RStringF aAddressType,
const TDesC8& aAddress );
IMPORT_C static CSdpConnectionField* NewLC(
const TInetAddr& aAddress,
TInt aTTL = KErrNotFound,
TUint aNumOfAddress = KDefaultNumOfAddress );
IMPORT_C static CSdpConnectionField* NewLC( RStringF aNetType,
RStringF aAddressType,
const TDesC8& aAddress );
IMPORT_C TInt NumOfAddress() const;
IMPORT_C TBool operator== ( const CSdpConnectionField& aObj ) const;
IMPORT_C void SetAddressL( RStringF aNetType,
RStringF aAddressType,
const TDesC8& aAddress );
IMPORT_C void SetInetAddressL( const TInetAddr& aValue,
TInt aTTL = KErrNotFound,
TUint aNumOfAddress = KDefaultNumOfAddress);
IMPORT_C void SetNumOfAddressL( TUint aNumOfAddress );
IMPORT_C void SetTTLL( TInt aTTL );
IMPORT_C TInt TTLValue() const;
IMPORT_C ~CSdpDocument(); IMPORT_C RPointerArray<CSdpAttributeField>& AttributeFields() ; IMPORT_C RPointerArray<CSdpBandwidthField>& BandwidthFields(); IMPORT_C CSdpDocument* CloneL() const; IMPORT_C CSdpConnectionField* ConnectionField(); IMPORT_C const CSdpConnectionField* ConnectionField() const; IMPORT_C static CSdpDocument* DecodeL(const TDesC8& aText); IMPORT_C static CSdpDocument* DecodeLC(const TDesC8& aText); IMPORT_C CDesC8Array& EmailFields(); IMPORT_C void EncodeL(RWriteStream& aStream) const; IMPORT_C void ExternalizeL(RWriteStream& aStream) const; IMPORT_C const TDesC8& Info() const; IMPORT_C static CSdpDocument* InternalizeL(RReadStream& aStream); IMPORT_C TBool IsValid() const; IMPORT_C CSdpKeyField* Key(); IMPORT_C const CSdpKeyField* Key() const; IMPORT_C RPointerArray<CSdpMediaField>& MediaFields(); IMPORT_C static CSdpDocument* NewL(); IMPORT_C static CSdpDocument* NewLC(); IMPORT_C CSdpOriginField* OriginField(); IMPORT_C const CSdpOriginField* OriginField() const; IMPORT_C CDesC8Array& PhoneFields(); IMPORT_C TUint SdpVersion() const; IMPORT_C const TDesC8& SessionName() const; IMPORT_C void SetConnectionField(CSdpConnectionField* aObj); IMPORT_C void SetInfoL(const TDesC8& aValue); IMPORT_C void SetKey(CSdpKeyField* aObj); IMPORT_C void SetOriginField(CSdpOriginField* aObj); IMPORT_C void SetSessionNameL(const TDesC8& aValue); IMPORT_C void SetUri(CUri8* aValue); IMPORT_C void SetZoneAdjustmentsL(const TDesC8& aValue); IMPORT_C RPointerArray<CSdpTimeField>& TimeFields(); IMPORT_C CUri8* Uri(); IMPORT_C const CUri8* Uri() const; IMPORT_C const TDesC8& ZoneAdjustments() const;
IMPORT_C ~CSdpFmtAttributeField();
IMPORT_C RStringF Attribute() const;
IMPORT_C CSdpFmtAttributeField * CloneL() const;
IMPORT_C static CSdpFmtAttributeField* DecodeL( const TDesC8& aText );
IMPORT_C static CSdpFmtAttributeField* DecodeLC( const TDesC8& aText);
IMPORT_C void EncodeL( RWriteStream& aStream ) const;
IMPORT_C const TDesC8& Format() const;
IMPORT_C static CSdpFmtAttributeField* NewL( RStringF aAttribute,
const TDesC8& aFormat,
const TDesC8& aValue );
IMPORT_C static CSdpFmtAttributeField* NewLC(RStringF aAttribute,
const TDesC8& aFormat,
const TDesC8& aValue );
IMPORT_C TBool operator== ( const CSdpFmtAttributeField& aObj ) const;
IMPORT_C void SetL(RStringF aAttribute,
const TDesC8& aFormat,
const TDesC8& aValue );
IMPORT_C const TDesC8& Value() const;
IMPORT_C ~CSdpKeyField();
IMPORT_C CSdpKeyField * CloneL() const;
IMPORT_C static CSdpKeyField* DecodeL(const TDesC8& aFieldValue);
IMPORT_C static CSdpKeyField* DecodeLC(const TDesC8& aFieldValue);
IMPORT_C void EncodeL(RWriteStream& aStream) const;
IMPORT_C const TDesC8& EncryptionKey() const;
IMPORT_C RStringF Method() const;
IMPORT_C static CSdpKeyField* NewL(RStringF aMethod,
const TDesC8& aEncryptionKey);
IMPORT_C static CSdpKeyField* NewLC(RStringF aMethod,
const TDesC8& aEncryptionKey);
IMPORT_C TBool operator == (const CSdpKeyField& aObj) const;
IMPORT_C void SetL(RStringF aMethod, const TDesC8& aEncryptionKey);
IMPORT_C ~CSdpMediaField();
IMPORT_C RPointerArray<CSdpAttributeField>& AttributeFields();
IMPORT_C RPointerArray<CSdpBandwidthField>& BandwidthFields();
IMPORT_C CSdpMediaField * CloneL(TBool aRecurse = ETrue) const;
IMPORT_C RPointerArray<CSdpConnectionField>& ConnectionFields();
IMPORT_C static CSdpMediaField* DecodeL(const TDesC8& aText,
TBool aRecurse = ETrue);
IMPORT_C static CSdpMediaField* DecodeLC(const TDesC8& aText,
TBool aRecurse = ETrue);
IMPORT_C void EncodeL(RWriteStream& aStream, TBool aRecurse = ETrue) const;
IMPORT_C RPointerArray<CSdpFmtAttributeField>& FormatAttributeFields();
IMPORT_C const TDesC8& FormatList() const;
IMPORT_C const TDesC8& Info() const;
IMPORT_C TBool IsValid() const;
IMPORT_C void KeepFormatL(const TDesC8& aFormat);
IMPORT_C CSdpKeyField* Key();
IMPORT_C const CSdpKeyField* Key() const;
IMPORT_C RStringF Media() const;
IMPORT_C static CSdpMediaField* NewL(RStringF aMedia,
TUint aPort,
RStringF aProtocol,
const TDesC8& aFormatList);
IMPORT_C static CSdpMediaField* NewLC(RStringF aMedia,
TUint aPort,
RStringF aProtocol,
const TDesC8& aFormatList);
IMPORT_C TBool operator == (const CSdpMediaField& aObj) const;
IMPORT_C TUint Port() const;
IMPORT_C TUint PortCount() const;
IMPORT_C RStringF Protocol() const;
IMPORT_C void RejectMedia();
IMPORT_C void RemoveFormatL(const TDesC8& aFormat);
IMPORT_C void SetFormatListL(const TDesC8& aValue);
IMPORT_C void SetInfoL(const TDesC8& aValue);
IMPORT_C void SetKey(CSdpKeyField* aObj);
IMPORT_C void SetMediaL(RStringF aMedia);
IMPORT_C void SetPortCountL(TUint aCount);
IMPORT_C void SetPortL(TUint aPort);
IMPORT_C void SetProtocolL(RStringF aProtocol);
IMPORT_C ~CSdpOriginField();
IMPORT_C const TDesC8& Address() const;
IMPORT_C RStringF AddressType() const;
IMPORT_C CSdpOriginField* CloneL() const;
IMPORT_C static CSdpOriginField* DecodeL( const TDesC8& aText );
IMPORT_C static CSdpOriginField* DecodeLC( const TDesC8& aText );
IMPORT_C void EncodeL( RWriteStream& aStream ) const;
IMPORT_C const TInetAddr* InetAddress() const;
IMPORT_C RStringF NetType() const;
IMPORT_C static CSdpOriginField* NewL( const TDesC8& aUserName,
TInt64 aSessionId,
TInt64 aSessionVersion,
TInetAddr& aAddress );
IMPORT_C static CSdpOriginField* NewL( const TDesC8& aUserName,
TInt64 aSessionId,
TInt64 aSessionVersion,
RStringF aNetType,
RStringF aAddressType,
const TDesC8& aAddress );
IMPORT_C static CSdpOriginField* NewLC( const TDesC8& aUserName,
TInt64 aSessionId,
TInt64 aSessionVersion,
TInetAddr& aAddress );
IMPORT_C static CSdpOriginField* NewLC( const TDesC8& aUserName,
TInt64 aSessionId,
TInt64 aSessionVersion,
RStringF aNetType,
RStringF aAddressType,
const TDesC8& aAddress );
IMPORT_C TBool operator == ( const CSdpOriginField & aObj ) const;
IMPORT_C TInt64 SessionId() const;
IMPORT_C void SetAddressL( const TDesC8& aAddress,
RStringF aNetType,
RStringF aAddressType );
IMPORT_C void SetInetAddress( const TInetAddr& aValue );
IMPORT_C void SetSessionId( TInt64 aValue );
IMPORT_C void SetUserNameL( const TDesC8& aValue );
IMPORT_C void SetVersion( TInt64 aValue );
IMPORT_C const TDesC8& UserName() const;
IMPORT_C TInt64 Version() const;
IMPORT_C ~CSdpRepeatField();
IMPORT_C const TSdpTypedTime ActiveDuration() const;
IMPORT_C CSdpRepeatField * CloneL() const;
IMPORT_C void EncodeL(RWriteStream& aStream) const;
IMPORT_C static CSdpRepeatField* DecodeL(const TDesC8& aText);
IMPORT_C static CSdpRepeatField* DecodeLC(const TDesC8& aText);
IMPORT_C static CSdpRepeatField* NewL(const TSdpTypedTime aRepeatInterval,
const TSdpTypedTime aActiveDuration,
const RArray<TSdpTypedTime>& aOffsets);
IMPORT_C static CSdpRepeatField* NewLC(const TSdpTypedTime aRepeatInterval,
const TSdpTypedTime aActiveDuration,
const RArray<TSdpTypedTime>& aOffsets);
IMPORT_C TBool operator == (const CSdpRepeatField & aObj) const;
IMPORT_C const TSdpTypedTime RepeatInterval() const;
IMPORT_C void SetActiveDuration(const TSdpTypedTime aValue);
IMPORT_C void SetRepeatIntervalL(const TSdpTypedTime aValue);
IMPORT_C void SetTimeOffsetsL(const RArray<TSdpTypedTime>& aValue);
IMPORT_C const RArray<TSdpTypedTime>& TimeOffsets() const;
IMPORT_C ~CSdpTimeField();
IMPORT_C CSdpTimeField * CloneL(TBool aRecurse = ETrue) const;
IMPORT_C void EncodeL(RWriteStream& aStream, TBool aRecurse = ETrue) const;
IMPORT_C static CSdpTimeField * DecodeL(const TDesC8& aText,
IMPORT_C static CSdpTimeField * DecodeLC(const TDesC8& aText,
TBool aRecurse = ETrue);
IMPORT_C TBool IsValid() const;
IMPORT_C static CSdpTimeField * NewL(const TDesC8& aStartTime,
TBool aRecurse = ETrue);
IMPORT_C static CSdpTimeField * NewLC(const TDesC8& aStartTime,
TBool aRecurse = ETrue);
IMPORT_C TBool operator == (const CSdpTimeField & aObj) const;
IMPORT_C RPointerArray<CSdpRepeatField>& RepeatFields();
IMPORT_C void SetTimesL(const TDesC8& aStartTime, const TDesC8& aStopTime);
IMPORT_C const TDesC8& StartTime() const;
IMPORT_C const TDesC8& StopTime() const;
IMPORT_C HBufC8* EncodeL() const;
IMPORT_C static TSdpRtpmapValue DecodeL( const TDesC8& aText );
IMPORT_C TSdpRtpmapValue(const TPtrC8& aEncodingName,
const TPtrC8& aClockrate,
const TPtrC8& aEncodingParameters );
IMPORT_C TBool operator == (const TSdpTypedTime& aObj) const;
IMPORT_C void SetValue(TInt64 aValue, TUnit aUnit);
IMPORT_C TSdpTypedTime();
IMPORT_C TSdpTypedTime(TInt64 aValue, TUnit aUnit);