williamr@2: /* williamr@2: * Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * Name : SdpRtpmapValue.h williamr@2: * Part of : SDP Codec williamr@2: * Interface : SDK API, SDP Codec API williamr@2: * Version : 1.0 williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef TSDPRTPMAPVALUE_H williamr@2: #define TSDPRTPMAPVALUE_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: #include "_sdpdefs.h" williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class RWriteStream; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: /** williamr@2: * @publishedAll williamr@2: * @released williamr@2: * williamr@2: * Utility class for manipulating the value of an rtpmap-attribute. williamr@2: * williamr@2: * The normative reference for correct formatting and values is williamr@2: * draft-ietf-mmusic-sdp-new-14 unless specified otherwise in williamr@2: * member documentation. The implementation supports this normative williamr@2: * reference, but does not enforce it fully. williamr@2: * williamr@2: * @lib sdpcodec.lib williamr@2: */ williamr@2: class TSdpRtpmapValue williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: williamr@2: /** williamr@2: * Initializes the instance to refer to the given rtpmap components. williamr@2: * The parameters must stay in scope as long as this instance exists. williamr@2: * Otherwise, the member variables of this class will point to williamr@2: * a released memory. williamr@2: * williamr@2: * @param aEncodingName Valid rtpmap encoding name value. williamr@2: * @param aClockrate Valid rtpmap clockrate value. williamr@2: * @param aEncodingParameters Valid rtpmap encoding williamr@2: * parameter list. williamr@2: */ williamr@2: IMPORT_C TSdpRtpmapValue( williamr@2: const TPtrC8& aEncodingName, williamr@2: const TPtrC8& aClockrate, williamr@2: const TPtrC8& aEncodingParameters ); williamr@2: williamr@2: public: // New functions williamr@2: williamr@2: /** williamr@2: * Tries to parse a string as an rtpmap attribute value up to the end williamr@2: * of the string or CRLF, whichever comes first, and set pointers to williamr@2: * the components found. The parameter must stay in scope as long as williamr@2: * this instance exists. Otherwise, the member variables of this class williamr@2: * will point to a released memory. williamr@2: * williamr@2: * @param aText String containing the value of an rtpmap attribute. williamr@2: * @return a new instance williamr@2: * @leave KErrArgument if parsing fails. williamr@2: */ williamr@2: IMPORT_C static TSdpRtpmapValue DecodeL( const TDesC8& aText ); williamr@2: williamr@2: /** williamr@2: * Outputs the attribute value formatted according to SDP syntax. williamr@2: * The field terminating CRLF is not included in the output. williamr@2: * When constructing CSdpFmtAttributeField, return value of this williamr@2: * function can be used as aValue in CSdpFmtAttributeField::NewL williamr@2: * (RStringF aAttribute, const TDesC8& aFormat, const TDesC8& aValue) williamr@2: * function. williamr@2: * williamr@2: * @return Encoded value. Ovnership of buffer is changed to caller. williamr@2: */ williamr@2: IMPORT_C HBufC8* EncodeL() const; williamr@2: williamr@2: public: // Data williamr@2: williamr@2: /** williamr@2: * Encoding name part of an rtpmap value williamr@2: * @internalComponent williamr@2: */ williamr@2: TPtrC8 iEncName; williamr@2: williamr@2: /** williamr@2: * Clockrate part of an rtpmap value. williamr@2: * @internalComponent williamr@2: */ williamr@2: TPtrC8 iClockrate; williamr@2: williamr@2: /** williamr@2: * Encoding parameters part of an rtpmap value. williamr@2: * @internalComponent williamr@2: */ williamr@2: TPtrC8 iEncParams; williamr@2: }; williamr@2: williamr@2: #endif // TSDPRTPMAPVALUE_H