Add even more of the source
This should be about everything needed to build so far?
This commit is contained in:
parent
af3619d4fa
commit
849723c9cf
547 changed files with 149239 additions and 0 deletions
139
CommonUtilitiesLib/SDPUtils.h
Normal file
139
CommonUtilitiesLib/SDPUtils.h
Normal file
|
@ -0,0 +1,139 @@
|
|||
/*
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* Copyright (c) 1999-2008 Apple Inc. All Rights Reserved.
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*
|
||||
*/
|
||||
/*
|
||||
File: SDPUtils.h
|
||||
|
||||
Contains: Some static routines for dealing with SDPs
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __SDPUtilsH__
|
||||
#define __SDPUtilsH__
|
||||
|
||||
#include "OS.h"
|
||||
#include "StrPtrLen.h"
|
||||
#include "ResizeableStringFormatter.h"
|
||||
#include "StringParser.h"
|
||||
#include "OSMemory.h"
|
||||
|
||||
class SDPLine : public StrPtrLen
|
||||
{
|
||||
public:
|
||||
SDPLine() {}
|
||||
virtual ~SDPLine() {}
|
||||
|
||||
char GetHeaderType() {if (Ptr && Len) return this->Ptr[0]; return 0;}
|
||||
};
|
||||
|
||||
class SDPContainer
|
||||
{
|
||||
enum { kBaseLines = 20, kLineTypeArraySize = 256};
|
||||
|
||||
enum {
|
||||
kVPos = 0,
|
||||
kSPos,
|
||||
kTPos,
|
||||
kOPos
|
||||
};
|
||||
|
||||
enum {
|
||||
kV = 1 << kVPos,
|
||||
kS = 1 << kSPos,
|
||||
kT = 1 << kTPos,
|
||||
kO = 1 << kOPos,
|
||||
kAllReq = kV | kS | kT | kO
|
||||
};
|
||||
|
||||
|
||||
public:
|
||||
|
||||
SDPContainer(UInt32 numStrPtrs = SDPContainer::kBaseLines) :
|
||||
fNumSDPLines(numStrPtrs),
|
||||
fSDPLineArray(NULL)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
~SDPContainer() {delete [] fSDPLineArray;}
|
||||
void Initialize();
|
||||
SInt32 AddHeaderLine (StrPtrLen *theLinePtr);
|
||||
SInt32 FindHeaderLineType(char id, SInt32 start);
|
||||
SDPLine* GetNextLine();
|
||||
SDPLine* GetLine(SInt32 lineIndex);
|
||||
void SetLine(SInt32 index);
|
||||
void Parse();
|
||||
Bool16 SetSDPBuffer(char *sdpBuffer);
|
||||
Bool16 SetSDPBuffer(StrPtrLen *sdpBufferPtr);
|
||||
Bool16 IsSDPBufferValid() {return fValid;}
|
||||
Bool16 HasReqLines() { return (Bool16) (fReqLines == kAllReq) ; }
|
||||
Bool16 HasLineType( char lineType ) { return (Bool16) (lineType == fFieldStr[ (UInt8) lineType]) ; }
|
||||
char* GetReqLinesArray;
|
||||
void PrintLine(SInt32 lineIndex);
|
||||
void PrintAllLines();
|
||||
SInt32 GetNumLines() { return fNumUsedLines; }
|
||||
|
||||
SInt32 fCurrentLine;
|
||||
SInt32 fNumSDPLines;
|
||||
SInt32 fNumUsedLines;
|
||||
SDPLine* fSDPLineArray;
|
||||
Bool16 fValid;
|
||||
StrPtrLen fSDPBuffer;
|
||||
UInt16 fReqLines;
|
||||
|
||||
char fFieldStr[kLineTypeArraySize]; //
|
||||
char* fLineSearchTypeArray;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class SDPLineSorter {
|
||||
|
||||
public:
|
||||
SDPLineSorter(): fSessionLineCount(0),fSDPSessionHeaders(NULL,0), fSDPMediaHeaders(NULL,0) {};
|
||||
SDPLineSorter(SDPContainer *rawSDPContainerPtr, Float32 adjustMediaBandwidthPercent = 1.0, SDPContainer *insertMediaLinesArray = NULL);
|
||||
|
||||
StrPtrLen* GetSessionHeaders() { return &fSessionHeaders; }
|
||||
StrPtrLen* GetMediaHeaders() { return &fMediaHeaders; }
|
||||
char* GetSortedSDPCopy();
|
||||
Bool16 ValidateSessionHeader(StrPtrLen *theHeaderLinePtr);
|
||||
|
||||
|
||||
StrPtrLen fullSDPBuffSPL;
|
||||
SInt32 fSessionLineCount;
|
||||
SDPContainer fSessionSDPContainer;
|
||||
ResizeableStringFormatter fSDPSessionHeaders;
|
||||
ResizeableStringFormatter fSDPMediaHeaders;
|
||||
StrPtrLen fSessionHeaders;
|
||||
StrPtrLen fMediaHeaders;
|
||||
static char sSessionOrderedLines[];// = "vosiuepcbtrzka"; // chars are order dependent: declared by rfc 2327
|
||||
static char sessionSingleLines[];// = "vosiuepcbzk"; // return only 1 of each of these session field types
|
||||
static StrPtrLen sEOL;
|
||||
static StrPtrLen sMaxBandwidthTag;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue